• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • remoting
    • None

      When JNLP v4 protocol is in use with non blocking IO when there is more than one buffers worth of data to read we re-add the OP_READ to the selector for each read buffer even though we drain until we have read all the data available.
      This causes a new Thread to be created to handles the callback (when the selector wakes up) - but each thread will be blocked as the current thread is still reading and holding the read lock.

      see https://github.com/jenkinsci/remoting/blob/c3e675c9f1dc29a8fd99eca191c1ce1e5ebb2a7e/src/main/java/org/jenkinsci/remoting/protocol/impl/NIONetworkLayer.java#L150-L155

          [JENKINS-38690] JNLPv4 Thread storm

          James Nord created issue -
          James Nord made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Jesse Glick made changes -
          Status Original: In Progress [ 3 ] New: In Review [ 10005 ]
          Jesse Glick made changes -
          Remote Link New: This issue links to "PR 117 (Web Link)" [ 14930 ]
          James Nord made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Review [ 10005 ] New: Resolved [ 5 ]
          Oleg Nenashev made changes -
          Epic Link New: JENKINS-37564 [ 173676 ]
          CloudBees Inc. made changes -
          Remote Link New: This issue links to "CloudBees Internal OSS-1518 (Web Link)" [ 18669 ]
          James Nord made changes -
          Assignee Original: James Nord [ teilo ]

            Unassigned Unassigned
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: