Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding stronger pooling config for client #42

Merged
merged 2 commits into from
Aug 23, 2017
Merged

Conversation

ajs6f
Copy link
Contributor

@ajs6f ajs6f commented Aug 15, 2017

689: (Islandora/documentation#689)

  • Other Relevant Links (Google Groups discussion, related pull requests, Release pull requests, etc.)

fcrepo4-labs/fcrepo-api-x#126

What does this Pull Request do?

Adds config to CLAW's API-X HTTP client to prevent connection pool interactions.

What's new?

Add an independent connection pool and keep it open

  • Does this change require documentation to be updated?

No.

  • Does this change add any new dependencies?

No.

  • Does this change require any other modifications to be made to the repository (ie. Regeneration activity, etc.)?

No.

  • Could this change impact execution of existing code?

No.

How should this be tested?

GOOD QUESTION! @dannylamb -- thoughts?

A description of what steps someone could take to:

  • Reproduce the problem you are fixing (if applicable)
  • Test that the Pull Request does what is intended.
  • Please be as detailed as possible.
  • Good testing instructions help get your PR completed faster.

Interested parties

@dannylamb @DiegoPino @birkland

Copy link

@DiegoPino DiegoPino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how to test, but code looks good

@codecov
Copy link

codecov bot commented Aug 15, 2017

Codecov Report

Merging #42 into master will decrease coverage by 0.41%.
The diff coverage is 0%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master      #42      +/-   ##
============================================
- Coverage     92.15%   91.74%   -0.42%     
  Complexity       58       58              
============================================
  Files             8        8              
  Lines           663      666       +3     
  Branches          3        3              
============================================
  Hits            611      611              
- Misses           49       52       +3     
  Partials          3        3
Impacted Files Coverage Δ Complexity Δ
...aca/http/client/StaticTokenRequestInterceptor.java 73.33% <0%> (-18.34%) 6 <0> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2c35c55...5eeb3ac. Read the comment docs.

@dannylamb
Copy link
Contributor

@ajs6f I'm performing a clean vagrant up to give this a proper test. I'll just do it a boatload of times and see what happens If I really feel unsure I can try and script something.

Things like these are basically impossible to test for, so I'll just do what I can.

@dannylamb
Copy link
Contributor

Trying this after fcrepo4-labs/fcrepo-api-x#127 has landed makes it far easier to reproduce. Unfortunately, setting the connection pool to shared doesn't seem to have any effect.

From what I can tell, the issue only happens on a fresh install. If I get the error, I can uninstall and re-install the feature, leaving the alpaca features in place, and everything is fine. So I'm wondering if the timing issue is on the availability of our custom client?

I'm going to add a sleep into our script for installing the features, which we all know won't last forever, but might plug the hole for the time being.

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

  1. We aren't setting the pool to shared-- we're using a completely independent pool which is intentionally not shared, but we can certainly try sharing it instead. Want me to bump this PR in that direction?

  2. The client should appear really quick-- it doesn't take much time to build one, but… maybe we are getting API-X confused by our client appearing after it starts?

@birkland
Copy link

It could be a timing issue. It's hard to reason about OSGi's dynamism sometimes. I'm wondering if some internal components are holding on to the old client, and some the new? Let me look into that

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

@birkland ++ That's just the sort of thing I was wondering about.

@birkland
Copy link

Yeah. If that's the case, then I think the easiest solution would have blueprint reload bundles whenever the new service binds. I know how to specify that in Declarative Services (i.e. static vs dynamic), but not Blueprint. That might be worth trying right off the bat.

@dannylamb
Copy link
Contributor

dannylamb commented Aug 16, 2017

@ajs6f We are installing the feature for our custom client before installing any api-x feature, so it should be available, but you never know with Karaf sometimes.

@birkland And the sleep doesn't really seem to be doing anything, but cycling the feature appears to work 100% of the time. That seems to support your theory.

@dannylamb
Copy link
Contributor

Hrm... before I get too down on the sleep idea, I'm going to give it something crazy like a full 60 seconds and see what that does.

@DiegoPino
Copy link

@dannylamb even 90 seconds would be not too crazy 😄

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

Speaking as a parent of young kids, you can never have too much sleep.

@birkland
Copy link

@dannylamb Can you set log level to DEBUG (for org.fcrepo.apix), and attach or send a copy of the Karaf logs? There's a proxy for HttpClient that is supposed to deal with the dynamism. I just want to make sure I understand what it's doing, in the context of when this error occurs.

@dannylamb
Copy link
Contributor

@birkland Getting this on repeat:

2017-08-16 16:24:16,477 | DEBUG | (0x1c780a40)-372 | BlueprintPropertiesParser        | 61 - org.apache.camel.camel-core - 2.18.4 | Blueprint parsed property key: extension.load.maximumRedeliveries as value: 60
2017-08-16 16:24:16,477 | DEBUG | (0x1c780a40)-372 | BlueprintPropertiesParser        | 61 - org.apache.camel.camel-core - 2.18.4 | Delegate property parser parsed the property key: extension.load.maximumRedeliveries as value: 60
2017-08-16 16:24:16,477 | DEBUG | (0x1c780a40)-372 | BlueprintCamelContext            | 61 - org.apache.camel.camel-core - 2.18.4 | Resolved text: {{extension.load.maximumRedeliveries}} -> 60
2017-08-16 16:24:16,477 | INFO  | (0x1c780a40)-372 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-45439-1502900552792-9-1 on ExchangeId: ID-claw-45439-1502900552792-9-2). On delivery attempt: 58 caught: org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://localhost:32080/load with statusCode: 500
2017-08-16 16:24:16,477 | DEBUG | (0x1c780a40)-372 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Redelivery delay calculated as 1000
2017-08-16 16:24:17,100 | INFO  | pool-51-thread-1 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/extensions
2017-08-16 16:24:17,100 | INFO  | pool-51-thread-1 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-16 16:24:17,111 | INFO  | pool-51-thread-3 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/services
2017-08-16 16:24:17,112 | INFO  | pool-51-thread-3 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-16 16:24:17,160 | INFO  | pool-51-thread-2 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/ontologies
2017-08-16 16:24:17,160 | INFO  | pool-51-thread-2 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-16 16:24:17,478 | DEBUG | erRedeliveryTask | SendProcessor                    | 61 - org.apache.camel.camel-core - 2.18.4 | >>>> jetty:http://localhost:32080/load?okStatusCodeRange=200-399 Exchange[ID-claw-45439-1502900552792-9-2]
2017-08-16 16:24:17,478 | DEBUG | erRedeliveryTask | JettyHttpProducer                | 134 - org.apache.camel.camel-jetty-common - 2.18.4 | Sending HTTP request to: http://localhost:32080/load
2017-08-16 16:24:17,480 | DEBUG | qtp358166009-381 | FilterProcessor                  | 61 - org.apache.camel.camel-core - 2.18.4 | Filter matches: false for exchange: Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,483 | DEBUG | qtp358166009-381 | FilterProcessor                  | 61 - org.apache.camel.camel-core - 2.18.4 | Filter matches: true for exchange: Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,484 | DEBUG | qtp358166009-381 | SendProcessor                    | 61 - org.apache.camel.camel-core - 2.18.4 | >>>> direct://prepare_load Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,484 | DEBUG | qtp358166009-381 | FilterProcessor                  | 61 - org.apache.camel.camel-core - 2.18.4 | Filter matches: true for exchange: Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,484 | DEBUG | qtp358166009-381 | FilterProcessor                  | 61 - org.apache.camel.camel-core - 2.18.4 | Filter matches: false for exchange: Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,485 | DEBUG | qtp358166009-381 | SendProcessor                    | 61 - org.apache.camel.camel-core - 2.18.4 | >>>> direct://load Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,485 | INFO  | qtp358166009-381 | LoaderRoutes                     | 126 - fcrepo-api-x-loader - 0.3.0.SNAPSHOT | Execution OPTIONS to service URI http://localhost:32080/load
2017-08-16 16:24:17,489 | DEBUG | qtp358166009-381 | SendProcessor                    | 61 - org.apache.camel.camel-core - 2.18.4 | >>>> http://localhost?httpClient=%23httpClient Exchange[ID-claw-45439-1502900552792-9-121]
2017-08-16 16:24:17,490 | DEBUG | qtp358166009-381 | HttpProducer                     | 105 - org.apache.camel.camel-http4 - 2.18.4 | Executing http OPTIONS method: http://localhost:32080/load
2017-08-16 16:24:17,490 | DEBUG | qtp358166009-381 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-45439-1502900552792-9-122 on ExchangeId: ID-claw-45439-1502900552792-9-121). On delivery attempt: 0 caught: java.lang.IllegalStateException: Connection pool shut down
2017-08-16 16:24:17,494 | ERROR | qtp358166009-381 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-45439-1502900552792-9-122 on ExchangeId: ID-claw-45439-1502900552792-9-121). Exhausted after delivery attempt: 1 caught: java.lang.IllegalStateException: Connection pool shut down

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
[loader-http       ] [loader-http       ] [jetty:http://0.0.0.0:32080/load?httpMethodRestrict=GET%2COPTIONS%2CPOST&matchO] [        11]
[loader-http       ] [choice18          ] [when[{header{header(CamelHttpMethod)} == GET}]choice[when[{header{header(Camel] [        11]
[loader-http       ] [to52              ] [direct:prepare_load                                                           ] [         7]
[load-prepare      ] [choice19          ] [when[{header{header(Content-Type)} == text/plain}]choice[]                    ] [         0]
[load-prepare      ] [setHeader50       ] [setHeader[service.uri]                                                        ] [         0]
[load-prepare      ] [choice20          ] [when[{header{header(service.uri)} is null}]choice[]                           ] [         7]
[load-prepare      ] [to56              ] [direct:load                                                                   ] [         6]
[load-service-uri  ] [setHeader51       ] [setHeader[ApixLoaderRequestUri]                                               ] [         0]
[load-service-uri  ] [removeHeaders14   ] [removeHeaders[*]                                                              ] [         0]
[load-service-uri  ] [setBody7          ] [setBody[{null}]                                                               ] [         0]
[load-service-uri  ] [setHeader52       ] [setHeader[CamelHttpMethod]                                                    ] [         0]
[load-service-uri  ] [setHeader53       ] [setHeader[CamelHttpUri]                                                       ] [         0]
[load-service-uri  ] [setHeader54       ] [setHeader[Accept]                                                             ] [         0]
[load-service-uri  ] [process24         ] [Processor@0x6eafe246                                                          ] [         0]
[load-service-uri  ] [to57              ] [http://localhost?httpClient=#httpClient                                       ] [         6]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)[128:fcrepo-api-x-registry:0.3.0.SNAPSHOT]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.camel.component.http4.HttpProducer.executeMethod(HttpProducer.java:306)[105:org.apache.camel.camel-http4:2.18.4]
	at org.apache.camel.component.http4.HttpProducer.process(HttpProducer.java:178)[105:org.apache.camel.camel-http4:2.18.4]
	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:191)[134:org.apache.camel.camel-jetty-common:2.18.4]
	at org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:74)[104:org.apache.camel.camel-http-common:2.18.4]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[97:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:146)[155:org.eclipse.jetty.servlets:9.2.19.v20160908]
	at org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:43)[134:org.apache.camel.camel-jetty-common:2.18.4]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.Server.handle(Server.java:499)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[145:org.eclipse.jetty.io:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[156:org.eclipse.jetty.util:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[156:org.eclipse.jetty.util:9.2.19.v20160908]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-16 16:24:17,495 | DEBUG | qtp358166009-381 | Pipeline                         | 61 - org.apache.camel.camel-core - 2.18.4 | Message exchange has failed: so breaking out of pipeline for exchange: Exchange[ID-claw-45439-1502900552792-9-121] Exception: java.lang.IllegalStateException: Connection pool shut down
2017-08-16 16:24:17,496 | DEBUG | qtp358166009-381 | Pipeline                         | 61 - org.apache.camel.camel-core - 2.18.4 | Message exchange has failed: so breaking out of pipeline for exchange: Exchange[ID-claw-45439-1502900552792-9-121] Exception: java.lang.IllegalStateException: Connection pool shut down
2017-08-16 16:24:17,503 | DEBUG | (0x1c780a40)-367 | DefaultJettyHttpBinding          | 134 - org.apache.camel.camel-jetty-common - 2.18.4 | HTTP responseCode: 500
2017-08-16 16:24:17,503 | DEBUG | (0x1c780a40)-367 | PropertiesComponent              | 61 - org.apache.camel.camel-core - 2.18.4 | Parsed location: blueprint:.cm-8 
2017-08-16 16:24:17,504 | DEBUG | (0x1c780a40)-367 | BlueprintPropertiesParser        | 61 - org.apache.camel.camel-core - 2.18.4 | Blueprint parsed property key: extension.load.maximumRedeliveries as value: 60
2017-08-16 16:24:17,504 | DEBUG | (0x1c780a40)-367 | BlueprintPropertiesParser        | 61 - org.apache.camel.camel-core - 2.18.4 | Delegate property parser parsed the property key: extension.load.maximumRedeliveries as value: 60
2017-08-16 16:24:17,504 | DEBUG | (0x1c780a40)-367 | BlueprintCamelContext            | 61 - org.apache.camel.camel-core - 2.18.4 | Resolved text: {{extension.load.maximumRedeliveries}} -> 60
2017-08-16 16:24:17,504 | INFO  | (0x1c780a40)-367 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-45439-1502900552792-9-1 on ExchangeId: ID-claw-45439-1502900552792-9-2). On delivery attempt: 59 caught: org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://localhost:32080/load with statusCode: 500
2017-08-16 16:24:17,504 | DEBUG | (0x1c780a40)-367 | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Redelivery delay calculated as 1000

@birkland
Copy link

That's bizarre. Where are the logging messages from HttpClientFetcher?

I was hoping to see the logging messages from HttpClientFetcher to see when the new service was swapped in, when the new client was being used for requests, and how that relates to the exception.

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

@dannylamb @birkland That's on repeat-- is that what shows up the first time you try to load the API-X features?

@dannylamb
Copy link
Contributor

@ajs6f @DiegoPino Even a 90 second sleep didn't do it :( Guess we're not Batman here:

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

"Doctor Death" should be the code name for the CLAW 1.0 release.

@dannylamb
Copy link
Contributor

@ajs6f Yes, only on the first time. If I uninstall and re-install then I get normal looking logs.

@birkland That's from the console with limited output, let me grep the file manually out of the /data directory.

@birkland
Copy link

I hope it's there. I don't much like going in the direction of "am I running the code I think I'm running?", followed by "Is instruction actually being executed when I think it is?", and "What is the thing in the black box actually doing?"

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

@birkland If you don't like those things I have no idea why you got into the line of work you did. :)

@DiegoPino
Copy link

@dannylamb does it matter what you reinstall (I mean if you don't touch API-X, and "reinstall" Alpaca, does it work also, or do you need to redeploy api-X to get it running?) or do you bootstrap/reload/cleaning all related bundles including API-X and Alpaca... again, in between meetings so just a quick question probably without any effect at all. I mean, if its a matter of just Alpaca with a reload strategy for changed configs in blueprint, that could be easily forced during install.. as a workaround.. eh-- bad idea..

@dannylamb
Copy link
Contributor

@birkland, It's there, but the log rollover is making it hard for me to line things up. I'm clearing the data directory and starting over so it's a bit cleaner. Just a moment.

@birkland
Copy link

@DiegoPino That's a good question re: which one really matters to reload

@dannylamb
Copy link
Contributor

@birkland

Got some good and bad news. Good news is there are logging statements pertaining to the HttpClientFetcher, but unfortunately I can't actually find any entries from the line you posted above.

grep -rn "Executing with client" /opt/karaf/data/log/ gets me nothing.

What I do have is this:

2017-08-16 16:57:17,636 | DEBUG | pool-2-thread-1  | BlueprintCamelContext            | 58 - org.apache.camel.camel-blueprint - 2.18.4 | Service org.osgi.framework.ServiceEvent[source=[org.fcrepo.apix.registry.HttpClientFetcher]] changed to 1

Later followed by:

2017-08-16 16:57:17,636 | DEBUG | pool-2-thread-1  | BlueprintCamelContext            | 58 - org.apache.camel.camel-blueprint - 2.18.4 | Service org.osgi.framework.ServiceEvent[source=[org.fcrepo.apix.registry.HttpClientFetcher]] changed to 1

and

2017-08-16 16:57:17,636 | DEBUG | pool-2-thread-1  | BlueprintCamelContext            | 58 - org.apache.camel.camel-blueprint - 2.18.4 | Service org.osgi.framework.ServiceEvent[source=[org.fcrepo.apix.registry.HttpClientFetcher]] changed to 1

And then finally the error message I posted above.

So not much to go on other than we know the service is getting published and having its priority set (at least that's what I think is going on).

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 16, 2017

But at some point, somehow, API-X must be picking up the CLAW client or it would never be able to act against the Syn-guarded LDP API, right?

@dannylamb
Copy link
Contributor

@ajs6f When it works successfully, yes. But when we're experiencing this, I guess it never gets to that point. I'm testing by wiping the data directory and starting over, so it doesn't have to bootstrap the resources (they're already in Fedora).

@birkland Let me try poking it by loading a service and seeing what happens.

@birkland
Copy link

Let me wrap something up, and see if I can at least observe it logging what it should. There's an IT that uses an OSGi-published service, so it's the same pattern (though without the errors)

@DiegoPino
Copy link

@ajs6f question: could https://github.com/fcrepo4-labs/fcrepo-api-x/blob/9fe9028bc82fd5e7a6f3f0c1393a78688d0af6a8/fcrepo-api-x-jena/src/main/java/org/fcrepo/apix/jena/impl/JenaServiceRegistry.java called here https://github.com/fcrepo4-labs/fcrepo-api-x/blob/9fe9028bc82fd5e7a6f3f0c1393a78688d0af6a8/fcrepo-api-x-jena/src/main/resources/OSGI-INF/blueprint/blueprint.xml be taken out of the "bootstrap" process, as a separate state (in case you have all the LDP containers/RDF resource needed to start in place?) or even something that runs way before the actual services that make use of the services is initialized?

Also, I see some init.await around (before each resource creation etc). defined here
https://github.com/fcrepo4-labs/fcrepo-api-x/blob/9fe9028bc82fd5e7a6f3f0c1393a78688d0af6a8/fcrepo-api-x-jena/src/main/java/org/fcrepo/apix/jena/impl/InitMgr.java#L42

used at fcrepo4-labs/fcrepo-api-x@9fe9028#diff-04b47325da2011264c3e37a2c41bd1eaR101 just before we pass our client..

I really don´t know enough java (or anything) but that seems a complex "awaiting" logic, with some thread pool thing , could that be possibly associated with this? multi threaded stuff could have that effect.

@birkland
Copy link

@DiegoPino It's complex because of limitations of the Blueprint lifecycle. We eventually gave up on relying on the framework to start things in order; With Blueprint, it's "everything in the bundle starts" or "everything waits", not "any service inside the bundle that is satisfied can start".. which is what Declarative services (and just about everything else, I bet) does. The twist: There's no way a priori to know that we need to wait for a specific HttpClient before starting; so it can and does start with the one we don't want, then swaps implementations once it's available.

@DiegoPino
Copy link

@birkland makes sense, agree. It's just me getting a bit late into the game (and preparing my mind for next week´s install sprint) so probably some of my questions can be pretty naive. Sorry for that. I do like (hat off) what you have done with API-X it is really huge =)

@birkland
Copy link

@DiegoPino No worries. It's the result of a lot of trial, error, and pain!

@dannylamb So logging works for me. If logging is globally set to DEBUG, you should see something like the below:
cat karaf.log | grep HttpClientFetcher | grep -v aries

2017-08-16 16:27:31,931 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Set default client org.apache.http.impl.client.InternalHttpClient@e24a76b
2017-08-16 16:27:31,931 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Got new HttpClient service.
2017-08-16 16:27:31,932 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Using new HttpClient service org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:31,936 | DEBUG | pool-2-thread-1  | BlueprintCamelContext            | 38 - org.apache.camel.camel-blueprint - 2.18.4 | Service org.osgi.framework.ServiceEvent[source=[org.fcrepo.apix.registry.HttpClientFetcher]] changed to 1
2017-08-16 16:27:31,938 | DEBUG | pool-2-thread-1  | fcrepo-api-x-registry            | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | ServiceEvent REGISTERED - [org.fcrepo.apix.registry.HttpClientFetcher] - fcrepo-api-x-registry
2017-08-16 16:27:32,029 | DEBUG | pool-29-thread-1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,030 | DEBUG | pool-29-thread-2 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,031 | DEBUG | pool-29-thread-3 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,529 | DEBUG | pool-29-thread-2 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,529 | DEBUG | pool-29-thread-3 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,572 | DEBUG | pool-29-thread-1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:32,925 | DEBUG | pool-29-thread-4 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:33,112 | DEBUG | pool-29-thread-6 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:33,409 | DEBUG | pool-29-thread-5 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:33,516 | DEBUG | pool-29-thread-5 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,213 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,249 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,287 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,320 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,353 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,386 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,423 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,471 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,498 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,521 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:34,666 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,060 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,083 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,106 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,128 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,151 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,174 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,198 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,220 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,259 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,295 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,327 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,347 | DEBUG | ion(1)-127.0.0.1 | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,462 | DEBUG | dalityIT/objects | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,474 | DEBUG | dalityIT/objects | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,491 | DEBUG | dalityIT/objects | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,679 | DEBUG | ceptingServiceIT | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,686 | DEBUG | ceptingServiceIT | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,700 | DEBUG | ceptingServiceIT | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,747 | DEBUG | ceptingServiceIT | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:35,780 | DEBUG | ceptingServiceIT | HttpClientFetcher                | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1ceb3015
2017-08-16 16:27:36,090 | DEBUG | FelixShutdown    | BlueprintCamelContext            | 38 - org.apache.camel.camel-blueprint - 2.18.4 | Service org.osgi.framework.ServiceEvent[source=[org.fcrepo.apix.registry.HttpClientFetcher]] changed to 4
2017-08-16 16:27:36,090 | DEBUG | FelixShutdown    | fcrepo-api-x-registry            | 17 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | ServiceEvent UNREGISTERING - [org.fcrepo.apix.registry.HttpClientFetcher] - fcrepo-api-x-registry

@dannylamb
Copy link
Contributor

@birkland Ok, I did a log:set debug and am now drinking from the fire hose:

2017-08-17 14:03:25,861 | INFO  | 6348-460 - /load | LoaderRoutes                     | 126 - fcrepo-api-x-loader - 0.3.0.SNAPSHOT | Execution OPTIONS to service URI http://localhost:32080/load
2017-08-17 14:03:25,876 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 272 bytes
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 272 bytes
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 352 bytes
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 256 bytes
2017-08-17 14:03:25,877 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,878 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,878 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,879 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,881 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,882 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,883 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 288 bytes
2017-08-17 14:03:25,885 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,885 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,886 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 272 bytes
2017-08-17 14:03:25,886 | DEBUG | 6348-460 - /load | SendProcessor                    | 61 - org.apache.camel.camel-core - 2.18.4 | >>>> http://localhost?httpClient=%23httpClient Exchange[ID-claw-46644-1502978544201-9-5]
2017-08-17 14:03:25,889 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:25,889 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:25,892 | DEBUG | 6348-460 - /load | HttpProducer                     | 105 - org.apache.camel.camel-http4 - 2.18.4 | Executing http OPTIONS method: http://localhost:32080/load
2017-08-17 14:03:25,896 | DEBUG | 6348-460 - /load | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1420511
2017-08-17 14:03:25,897 | DEBUG | 6348-460 - /load | RequestAddCookies                | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | CookieSpec selected: default
2017-08-17 14:03:25,899 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 320 bytes
2017-08-17 14:03:25,907 | DEBUG | 6348-460 - /load | RequestAuthCache                 | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Auth cache not set in the context
2017-08-17 14:03:25,907 | DEBUG | 6348-460 - /load | olingHttpClientConnectionManager | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Connection request: [route: {}->http://localhost:32080][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2017-08-17 14:03:25,908 | DEBUG | 6348-460 - /load | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-46644-1502978544201-9-6 on ExchangeId: ID-claw-46644-1502978544201-9-5). On delivery attempt: 0 caught: java.lang.IllegalStateException: Connection pool shut down
2017-08-17 14:03:25,910 | ERROR | 6348-460 - /load | DefaultErrorHandler              | 61 - org.apache.camel.camel-core - 2.18.4 | Failed delivery for (MessageId: ID-claw-46644-1502978544201-9-6 on ExchangeId: ID-claw-46644-1502978544201-9-5). Exhausted after delivery attempt: 1 caught: java.lang.IllegalStateException: Connection pool shut down

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
[loader-http       ] [loader-http       ] [jetty:http://0.0.0.0:32080/load?httpMethodRestrict=GET%2COPTIONS%2CPOST&matchO] [       274]
[loader-http       ] [choice18          ] [when[{header{header(CamelHttpMethod)} == GET}]choice[when[{header{header(Camel] [       255]
[loader-http       ] [to52              ] [direct:prepare_load                                                           ] [       234]
[load-prepare      ] [choice19          ] [when[{header{header(Content-Type)} == text/plain}]choice[]                    ] [        89]
[load-prepare      ] [setHeader50       ] [setHeader[service.uri]                                                        ] [        55]
[load-prepare      ] [choice20          ] [when[{header{header(service.uri)} is null}]choice[]                           ] [       122]
[load-prepare      ] [to56              ] [direct:load                                                                   ] [       118]
[load-service-uri  ] [setHeader51       ] [setHeader[ApixLoaderRequestUri]                                               ] [        10]
[load-service-uri  ] [removeHeaders14   ] [removeHeaders[*]                                                              ] [         3]
[load-service-uri  ] [setBody7          ] [setBody[{null}]                                                               ] [        13]
[load-service-uri  ] [setHeader52       ] [setHeader[CamelHttpMethod]                                                    ] [         4]
[load-service-uri  ] [setHeader53       ] [setHeader[CamelHttpUri]                                                       ] [         4]
[load-service-uri  ] [setHeader54       ] [setHeader[Accept]                                                             ] [        16]
[load-service-uri  ] [process24         ] [Processor@0x1bd7c66a                                                          ] [         7]
[load-service-uri  ] [to57              ] [http://localhost?httpClient=#httpClient                                       ] [        47]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)[128:fcrepo-api-x-registry:0.3.0.SNAPSHOT]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.camel.component.http4.HttpProducer.executeMethod(HttpProducer.java:306)[105:org.apache.camel.camel-http4:2.18.4]
	at org.apache.camel.component.http4.HttpProducer.process(HttpProducer.java:178)[105:org.apache.camel.camel-http4:2.18.4]
	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:117)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)[61:org.apache.camel.camel-core:2.18.4]
	at org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:191)[134:org.apache.camel.camel-jetty-common:2.18.4]
	at org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:74)[104:org.apache.camel.camel-http-common:2.18.4]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[97:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:146)[155:org.eclipse.jetty.servlets:9.2.19.v20160908]
	at org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:43)[134:org.apache.camel.camel-jetty-common:2.18.4]
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[154:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.Server.handle(Server.java:499)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[153:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[145:org.eclipse.jetty.io:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[156:org.eclipse.jetty.util:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[156:org.eclipse.jetty.util:9.2.19.v20160908]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]


...

2017-08-17 14:03:26,563 | INFO  | pool-69-thread-1 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/extensions
2017-08-17 14:03:26,563 | DEBUG | pool-69-thread-1 | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1420511
2017-08-17 14:03:26,563 | DEBUG | pool-69-thread-1 | RequestAddCookies                | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | CookieSpec selected: default
2017-08-17 14:03:26,564 | DEBUG | pool-69-thread-1 | RequestAuthCache                 | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Auth cache not set in the context
2017-08-17 14:03:26,565 | DEBUG | pool-69-thread-1 | olingHttpClientConnectionManager | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Connection request: [route: {}->http://localhost:8080][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2017-08-17 14:03:26,566 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,569 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 240 bytes
2017-08-17 14:03:26,570 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,571 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,565 | INFO  | pool-69-thread-1 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-17 14:03:26,573 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 288 bytes
2017-08-17 14:03:26,577 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,578 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,584 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 288 bytes
2017-08-17 14:03:26,585 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,585 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,586 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,587 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,588 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,588 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,589 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,590 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,590 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 240 bytes
2017-08-17 14:03:26,592 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,593 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,593 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,594 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,595 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,595 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,600 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,601 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,602 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 240 bytes
2017-08-17 14:03:26,603 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,603 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,604 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,607 | INFO  | pool-69-thread-3 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/services
2017-08-17 14:03:26,608 | DEBUG | pool-69-thread-3 | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1420511
2017-08-17 14:03:26,609 | DEBUG | pool-69-thread-3 | RequestAddCookies                | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | CookieSpec selected: default
2017-08-17 14:03:26,609 | INFO  | pool-69-thread-2 | LdpContainerRegistry             | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Looking for container http://localhost:8080/fcrepo/rest/apix/ontologies
2017-08-17 14:03:26,609 | DEBUG | pool-69-thread-2 | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@1420511
2017-08-17 14:03:26,610 | DEBUG | pool-69-thread-2 | RequestAddCookies                | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | CookieSpec selected: default
2017-08-17 14:03:26,611 | DEBUG | pool-69-thread-2 | RequestAuthCache                 | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Auth cache not set in the context
2017-08-17 14:03:26,611 | DEBUG | pool-69-thread-2 | olingHttpClientConnectionManager | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Connection request: [route: {}->http://localhost:8080][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2017-08-17 14:03:26,612 | DEBUG | pool-69-thread-3 | RequestAuthCache                 | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Auth cache not set in the context
2017-08-17 14:03:26,612 | DEBUG | pool-69-thread-3 | olingHttpClientConnectionManager | 53 - org.apache.httpcomponents.httpclient - 4.5.3 | Connection request: [route: {}->http://localhost:8080][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2017-08-17 14:03:26,619 | INFO  | pool-69-thread-2 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-08-17 14:03:26,621 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,621 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,621 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 288 bytes
2017-08-17 14:03:26,623 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,623 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,623 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,634 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,634 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,634 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 240 bytes
2017-08-17 14:03:26,636 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,636 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,637 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,638 | DEBUG | d]-nio2-thread-2 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,638 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,639 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 224 bytes
2017-08-17 14:03:26,640 | DEBUG | d]-nio2-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Finished writing
2017-08-17 14:03:26,641 | DEBUG | pool-70-thread-1 | ChannelSession                   | 48 - org.apache.sshd.core - 0.14.0 | Send SSH_MSG_CHANNEL_DATA on channel 0
2017-08-17 14:03:26,641 | DEBUG | pool-70-thread-1 | Nio2Session                      | 48 - org.apache.sshd.core - 0.14.0 | Writing 240 bytes
2017-08-17 14:03:26,612 | INFO  | pool-69-thread-3 | InitMgr                          | 124 - fcrepo-api-x-jena - 0.3.0.SNAPSHOT | Caught exception while initializing.  Trying again in 1000 ms
java.lang.IllegalStateException: Connection pool shut down
	at org.apache.http.util.Asserts.check(Asserts.java:34)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:185)[54:org.apache.httpcomponents.httpcore:4.4.5]
	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:257)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:176)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.registry.HttpClientFetcher$CloseableHttpClientProxy.doExecute(HttpClientFetcher.java:116)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)[53:org.apache.httpcomponents.httpclient:4.5.3]
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.exists(LdpContainerRegistry.java:280)
	at org.fcrepo.apix.jena.impl.LdpContainerRegistry.lambda$init$8(LdpContainerRegistry.java:131)
	at org.fcrepo.apix.jena.impl.InitMgr$1.lambda$$11(InitMgr.java:70)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_131]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_131]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_131]
	at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]

@birkland
Copy link

@dannylamb Great! So now we want to see the debug logs from the beginning (i.e. when It starts making its first requests, gets the new HttpClient from OSGi, etc)

@dannylamb
Copy link
Contributor

@birkland After re-installing the feature and it working successfully, I'm now getting this:

ubuntu@claw:~$ cat /opt/karaf/data/log/karaf.log.9 | grep HttpClientFetcher | grep -v aries
2017-08-17 14:10:41,833 | DEBUG | Consumer[fedora] | HttpClientFetcher                | 180 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@4b2f7461
2017-08-17 14:10:41,881 | DEBUG | Consumer[fedora] | HttpClientFetcher                | 180 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@4b2f7461
2017-08-17 14:10:42,041 | DEBUG | Consumer[fedora] | HttpClientFetcher                | 180 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@4b2f7461
2017-08-17 14:10:42,148 | DEBUG | Consumer[fedora] | HttpClientFetcher                | 180 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Executing with client org.apache.http.impl.client.InternalHttpClient@4b2f7461

Which seems the same save @1420511 when it was failing and @4b2f7461 when it's working. So I guess we can tell it's using a different client, though those suffixes aren't terrible informative.

I'm going to try recreating the issue and see if it ever swaps clients.

@dannylamb
Copy link
Contributor

@birkland Gosh... my firefox caches too agressively. I never see your new posts.

I'm on it, give me a sec.

@dannylamb
Copy link
Contributor

@birkland Looks like Api-X is getting our custom client.

ubuntu@claw:~$ grep -rn HttpClientFetcher /opt/karaf/data/log | grep -v aries
/opt/karaf/data/log/karaf.log.7:3632:2017-08-17 14:24:05,332 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Set default client org.apache.http.impl.client.InternalHttpClient@28beb22c
/opt/karaf/data/log/karaf.log.7:3633:2017-08-17 14:24:05,335 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Got new HttpClient service.
/opt/karaf/data/log/karaf.log.7:3639:2017-08-17 14:24:05,346 | INFO  | pool-2-thread-1  | HttpClientFetcher                | 128 - fcrepo-api-x-registry - 0.3.0.SNAPSHOT | Using new HttpClient service org.apache.http.impl.client.InternalHttpClient@932f6aa

@ajs6f I'm going to try setting it to use a shared connection manager and see what happens.

@birkland
Copy link

@dannylamb Would it be possible to e-mail me (or otherwise make accessible) the whole log? I'm interested in seeing if any requests were made with the old client before the new, and other timing issues, etc.

@dannylamb
Copy link
Contributor

dannylamb commented Aug 17, 2017

@ajs6f Fingers crossed, but I'm on my fifth time wiping and re-installing and the issue has failed to present itself with a shared connection manager.

@birkland Sure, np. Let me finish trying this a few more times and then I'll recreate and send you the logs.

@dannylamb
Copy link
Contributor

@ajs6f I've cycled the features several times now and cannot reproduce the error with a shared connection manager.

setConnectionManagerShared(true) seems like the way to go. If you can update the PR I'll get it in.

@birkland
Copy link

@dannylamb Yaaaay! So does that mean that something, somewhere is attempting to close the httpclient itself? I don't have a good mental model of what's going on

@dannylamb
Copy link
Contributor

@birkland Yes that seems to be the case, and I'm not sure what the long-term ramifications of sharing the connection manager are going to be. But at least it will be working for the time being.

@ajs6f
Copy link
Contributor Author

ajs6f commented Aug 17, 2017 via email

Copy link

@DiegoPino DiegoPino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good @ajs6f

@dannylamb dannylamb merged commit 0906cc7 into Islandora:master Aug 23, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants