Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-38711

slave.jar should install UncaughtExceptionHandler

      The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

       

      Plan of action:

      Remoting

      Threads  Expected Behavior
      SynchronousCommandTransport.ReaderThread  Log, terminate channel (see current generic error handling here
      PortForwarder  Log, call close()
      CopyThread  Log
      Engine  Log, kill remoting
      PingThread  Log, call onDead(Throwable)

       

      Core

      Threads  Expected Behavior
      PlainCLIProtocol.EitherSide.Reader  
      TaskThread  
      ViewJob.ReloadThread  
      Executor  
      Proc.LocalProc.StdinCopyThread  
      AbstractNodeMonitorDescriptor.Record  
      TcpSlaveAgentListener  Log, call shutdown()
      TcpSlaveAgentListener.ConnectionHandler  Log, close socket
      UDPBroadcastThread  
      StreamCopyThread  
      AsynchronousAdministrativeMonitor.FixThread  

          [JENKINS-38711] slave.jar should install UncaughtExceptionHandler

          Ryan Campbell created issue -
          Ryan Campbell made changes -
          Link New: This issue relates to JENKINS-33395 [ JENKINS-33395 ]
          Ryan Campbell made changes -
          Description New: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.
          Oleg Nenashev made changes -
          Assignee New: Oleg Nenashev [ oleg_nenashev ]
          Oleg Nenashev made changes -
          Epic Link New: JENKINS-38833 [ 175240 ]
          Rebecca Ysteboe made changes -
          Assignee Original: Oleg Nenashev [ oleg_nenashev ] New: Rebecca Ysteboe [ rysteboe ]
          Rebecca Ysteboe made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Rebecca Ysteboe made changes -
          Description Original: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost. New: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*

           
          ||Threads ||Expected Behavior||
          |SynchronousCommandTransport.ReaderThread| |
          |PortForwarder| |
          |CopyThread| |
          |Engine| |
          |PingThread| |
          |Copier| |

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |TcpSlaveAgentListener| |
          |TcpSlaveAgentListener.ConnectionHandler| |
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          Rebecca Ysteboe made changes -
          Description Original: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*

           
          ||Threads ||Expected Behavior||
          |SynchronousCommandTransport.ReaderThread| |
          |PortForwarder| |
          |CopyThread| |
          |Engine| |
          |PingThread| |
          |Copier| |

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |TcpSlaveAgentListener| |
          |TcpSlaveAgentListener.ConnectionHandler| |
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          New: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*
          ||Threads ||Expected Behavior||
          |SynchronousCommandTransport.ReaderThread| Log, terminate channel (see current generic error handling [here|https://github.com/jenkinsci/remoting/blob/94e90bbdf656d9b2695aa27282d5ad86deda342e/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L97-L100]) |
          |PortForwarder| Log, call close()|
          |CopyThread| Log|
          |Engine| Log, kill remoting|
          |PingThread| Log, call onDead(Throwable)|

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ViewJob.ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |TcpSlaveAgentListener| Log, call shutdown()|
          |TcpSlaveAgentListener.ConnectionHandler| Log, close socket|
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          Rebecca Ysteboe made changes -
          Description Original: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*
          ||Threads ||Expected Behavior||
          |SynchronousCommandTransport.ReaderThread| Log, terminate channel (see current generic error handling [here|https://github.com/jenkinsci/remoting/blob/94e90bbdf656d9b2695aa27282d5ad86deda342e/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L97-L100]) |
          |PortForwarder| Log, call close()|
          |CopyThread| Log|
          |Engine| Log, kill remoting|
          |PingThread| Log, call onDead(Throwable)|

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ViewJob.ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |TcpSlaveAgentListener| Log, call shutdown()|
          |TcpSlaveAgentListener.ConnectionHandler| Log, close socket|
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          New: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*
          ||Threads ||Expected Behavior||
          |[SynchronousCommandTransport.ReaderThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L42]| Log, terminate channel (see current generic error handling [here|https://github.com/jenkinsci/remoting/blob/94e90bbdf656d9b2695aa27282d5ad86deda342e/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L97-L100]) |
          |[PortForwarder|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/PortForwarder.java]| Log, call close()|
          |[CopyThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/CopyThread.java#L14]| Log|
          |[Engine|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Engine.java]| Log, kill remoting|
          |[PingThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/PingThread.java#L51]| Log, call onDead(Throwable)|

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ViewJob.ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |[TcpSlaveAgentListener|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L81]| Log, call shutdown()|
          |[TcpSlaveAgentListener.ConnectionHandler|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L190]| Log, close socket|
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          Rebecca Ysteboe made changes -
          Description Original: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action (not started yet):

          *Remoting*
          ||Threads ||Expected Behavior||
          |[SynchronousCommandTransport.ReaderThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L42]| Log, terminate channel (see current generic error handling [here|https://github.com/jenkinsci/remoting/blob/94e90bbdf656d9b2695aa27282d5ad86deda342e/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L97-L100]) |
          |[PortForwarder|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/PortForwarder.java]| Log, call close()|
          |[CopyThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/CopyThread.java#L14]| Log|
          |[Engine|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Engine.java]| Log, kill remoting|
          |[PingThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/PingThread.java#L51]| Log, call onDead(Throwable)|

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ViewJob.ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |[TcpSlaveAgentListener|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L81]| Log, call shutdown()|
          |[TcpSlaveAgentListener.ConnectionHandler|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L190]| Log, close socket|
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |
          New: The slave.jar should setup an UncaughtExceptionHandler to make it easier to diagnose things like NoClassDefFoundErrors which are impossible to debug once the original stack trace is lost.

           

          Plan of action:

          *Remoting*
          ||Threads ||Expected Behavior||
          |[SynchronousCommandTransport.ReaderThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L42]| Log, terminate channel (see current generic error handling [here|https://github.com/jenkinsci/remoting/blob/94e90bbdf656d9b2695aa27282d5ad86deda342e/src/main/java/hudson/remoting/SynchronousCommandTransport.java#L97-L100]) |
          |[PortForwarder|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/PortForwarder.java]| Log, call close()|
          |[CopyThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/forward/CopyThread.java#L14]| Log|
          |[Engine|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Engine.java]| Log, kill remoting|
          |[PingThread|https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/PingThread.java#L51]| Log, call onDead(Throwable)|

           

          *Core*
          ||Threads ||Expected Behavior||
          |PlainCLIProtocol.EitherSide.Reader| |
          |TaskThread| |
          |ViewJob.ReloadThread| |
          |Executor| |
          |Proc.LocalProc.StdinCopyThread| |
          |AbstractNodeMonitorDescriptor.Record| |
          |[TcpSlaveAgentListener|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L81]| Log, call shutdown()|
          |[TcpSlaveAgentListener.ConnectionHandler|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/TcpSlaveAgentListener.java#L190]| Log, close socket|
          |UDPBroadcastThread| |
          |StreamCopyThread| |
          |AsynchronousAdministrativeMonitor.FixThread| |

            rysteboe Rebecca Ysteboe
            recampbell Ryan Campbell
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: