Uploaded image for project: 'HttpComponents HttpAsyncClient'
  1. HttpComponents HttpAsyncClient
  2. HTTPASYNC-85

ZeroCopyConsumer Hangs on SSL Download

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.0.2
    • 4.1-beta1
    • None

    Description

      When using the ZeroCopyConsumer class, but only when the target server is accessed over TLS, certain requests will result in it hanging indefinitely (until the other side resets the connection or the client times out), or for a couple minutes and then continue.

      This happens consistently against a .Net server in one of our partner's environments. I've also seen it when accessing a WebLogic 11g server, but with that, it will resume on its own after a couple minutes. I cannot reproduce it with a Jetty server.

      If I set up stunnel to do the TLS, and run exactly the same requests over plain text HTTP, we experience no issues. This is in fact our production workaround.

      Also, using the basic in-memory consumer (over TLS) works fine. I also wrote a simple async consumer that reads from the decoder to an array-based byte buffer and then writes to a file, and that works fine.

      Interestingly, I have another custom async consumer that we use for streaming back out to the original client, while HTTP Async Client is running in a servlet 3.1 container, and that hangs just like the ZeroCopyConsumer does (but again, no issue over plain text HTTP).

      I'll attach a client that can reproduce the error; unfortunately I can't provide the servers in question.

      Attachments

        1. DemoSSLHang.zip
          72 kB
          Charles Barber
        2. logOutput.txt
          7 kB
          Charles Barber

        Activity

          People

            Unassigned Unassigned
            cwbarber Charles Barber
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: