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 added a comment -

          Noting that this is similar to JENKINS-33395 but is about the slave.jar on the agent.

          Ryan Campbell added a comment - Noting that this is similar to JENKINS-33395 but is about the slave.jar on the agent.
          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 ]

          Oleg Nenashev added a comment -

          Took the issue to the remoting EPIC. It's not exactly remoting, but it makes sense to do it as a part of the stability stories

          Oleg Nenashev added a comment - Took the issue to the remoting EPIC. It's not exactly remoting, but it makes sense to do it as a part of the stability stories
          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 ]

          Oleg Nenashev added a comment -

          Notes from the sync-up with rysteboe

          I propose to create a table of threads and expected behaviors ("Log & Restart", "Abort thread", "Abort Remoting") in this ticket

          Oleg Nenashev added a comment - Notes from the sync-up with rysteboe Threads in Remoting: https://github.com/jenkinsci/remoting/search?utf8=%E2%9C%93&q=%22extends+Thread%22&type= Threads in the Jenkins core: https://github.com/jenkinsci/jenkins/search?p=2&q=%22extends+Thread%22&type=&utf8=%E2%9C%93 We need to add handlers to several of them: CopyThread, Copier, PortForwarder, SynchronousCommandTransport, PingThread, Engne Also in the core: TcpSlaveAgentListener Other thread implementations are optional IMHO I propose to create a table of threads and expected behaviors ("Log & Restart", "Abort thread", "Abort Remoting") in this ticket

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

              Created:
              Updated:
              Resolved: