Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-1030

Replace Apache Http Components with jetty http client (was Roll forward the apache http components dependency to 4.3.3)

    XMLWordPrintable

    Details

      Description

      Some errors have been observed by a customer using the current bundled version of the Apache http components. At least some of these exceptions would appear to be related to fixed issues between the current bundled version and 4.3.3.

      Failed to get namespace list
      java.lang.IndexOutOfBoundsException: endIndex: 1 > length: 0
      	at org.apache.http.util.CharArrayBuffer.substringTrimmed(CharArrayBuffer.java:445) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:249) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:206) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:169) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:198) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:287) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.execchain.ResponseEntityWrapper.streamClosed(ResponseEntityWrapper.java:120) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:227) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:174) ~[httpclient-4.3.3.jar:4.3.3]
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:87) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.bigdata.rdf.sail.webapp.client.RemoteRepository$2.close(RemoteRepository.java:2014) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.inforbix.backend.storage.rdf.bigdata.benchmark.LoadTest$3.run(LoadTest.java:120) ~[benchmark.jar:na]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_55]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
      	at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
      
      Failed to get namespace list
      org.openrdf.query.QueryEvaluationException: java.net.SocketException: Socket closed
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:89) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.bigdata.rdf.sail.webapp.client.RemoteRepository$2.close(RemoteRepository.java:2014) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.inforbix.backend.storage.rdf.bigdata.benchmark.LoadTest$3.run(LoadTest.java:120) ~[benchmark.jar:na]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_55]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
      	at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
      Caused by: java.net.SocketException: Socket closed
      	at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.7.0_55]
      	at java.net.SocketInputStream.read(SocketInputStream.java:152) ~[na:1.7.0_55]
      	at java.net.SocketInputStream.read(SocketInputStream.java:122) ~[na:1.7.0_55]
      	at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.AbstractMessageParser.parseHeaders(AbstractMessageParser.java:192) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.AbstractMessageParser.parseHeaders(AbstractMessageParser.java:145) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.parseTrailerHeaders(ChunkedInputStream.java:264) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:214) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:169) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:198) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:287) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.execchain.ResponseEntityWrapper.streamClosed(ResponseEntityWrapper.java:120) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:227) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:174) ~[httpclient-4.3.3.jar:4.3.3]
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:87) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	... 9 common frames omitted
      
      Failed to get namespace list
      org.openrdf.query.QueryEvaluationException: org.apache.http.MalformedChunkCodingException: Unexpected content at the end of chunk
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:89) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.bigdata.rdf.sail.webapp.client.RemoteRepository$2.close(RemoteRepository.java:2014) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.inforbix.backend.storage.rdf.bigdata.benchmark.LoadTest$3.run(LoadTest.java:120) ~[benchmark.jar:na]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_55]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
      	at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
      Caused by: org.apache.http.MalformedChunkCodingException: Unexpected content at the end of chunk
      	at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:233) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:206) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:169) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:198) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:287) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.execchain.ResponseEntityWrapper.streamClosed(ResponseEntityWrapper.java:120) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:227) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:174) ~[httpclient-4.3.3.jar:4.3.3]
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:87) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	... 9 common frames omitted
      
      Failed to get namespace list
      org.openrdf.query.QueryEvaluationException: org.apache.http.TruncatedChunkException: Truncated chunk ( expected size: 0; actual size: 0)
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:89) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.bigdata.rdf.sail.webapp.client.RemoteRepository$2.close(RemoteRepository.java:2014) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	at com.inforbix.backend.storage.rdf.bigdata.benchmark.LoadTest$3.run(LoadTest.java:120) ~[benchmark.jar:na]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_55]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_55]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
      	at java.lang.Thread.run(Thread.java:744) [na:1.7.0_55]
      Caused by: org.apache.http.TruncatedChunkException: Truncated chunk ( expected size: 0; actual size: 0)
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:183) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:198) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:287) ~[httpcore-4.3.2.jar:4.3.2]
      	at org.apache.http.impl.execchain.ResponseEntityWrapper.streamClosed(ResponseEntityWrapper.java:120) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:227) ~[httpclient-4.3.3.jar:4.3.3]
      	at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:174) ~[httpclient-4.3.3.jar:4.3.3]
      	at com.bigdata.rdf.sail.webapp.client.BackgroundGraphResult.close(BackgroundGraphResult.java:87) ~[bigdata-1.3.0.8345.20140516.jar:na]
      	... 9 common frames omitted
      

      See http://www.apache.org/dist/httpcomponents/httpclient/RELEASE_NOTES-4.3.x.txt

      See BLZG-1007 (HA LBS Gateway errors under heavy load) which was closed as a duplicate of this ticket.

      Notes for merge of branch:
      - There are new and distinct test classes for jetty. We need to make sure that any new tests written to the pre-existing http layer test suites have been captured in the jetty variations or they will be lost when the non-jetty variations are removed. This will require either diffing the apache test classes against the jetty test classes to find the differences and making sure that they are captured.
      - See http://wiki.bigdata.com/wiki/index.php/JettyHttpClient for notes on the jetty client integration.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              martyncutcher martyncutcher
              Reporter:
              bryanthompson bryanthompson
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: