Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-8895

Deadlock instead of timeout with new HttpClientHTTPConduit using large payloads

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.6.0, 3.6.1
    • 3.6.2, 4.0.3
    • None
    • None
    • Unknown

    Description

      Hello,

       

      we discovered an issue that causes a deadlock with large payloads which exceed the chunk-length (that is used as buffer size for an PipedInputStream) when sending a message to a currently offline/not-available server.

      Even when setting the ConnectionTimeout for the HTTPConduit to e.g., 1000ms, the timeout does not occur. (the ReceiveTimeout works as expected though)

      The feature that introduced the new HttpClientHTTPConduit was CXF-8840 with commit 1e7169.

       

      What was expected:

      Any type of timeout-related exception.

       

      What actually happened:

      The thread runs into a deadlock.

       

      How to reproduce:

      Run org.apache.cxf.systest.dispatch.DispatchClientServerTest.testTimeout()  and increase the payload of resources/GreetMeDocLiteralReq.xml (or use the attachment provided). The test will not terminate after the given timeout, the test will run indefinitely.

      The PipedInputStream's read method was never called (server offline), hence the PipedOutputStream's write method can't continue to write the data -> Deadlock.

       

      Regards,

      Manuel

      Attachments

        Activity

          People

            dkulp Daniel Kulp
            ḿanuel Manuel
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: