-
Notifications
You must be signed in to change notification settings - Fork 60
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
EventHubClient (with transportType=Websockets) creation times out when running on java-x86_64 (mixed mode) #385
Comments
@dak0ta - yes, this is the first request and it failed (timed out). Here's how to tell that: This (59999) part of the squid proxy log
shows the time taken for the request - which is ~60s - which is the I have 2 ideas to make progress: Suggestion-1please double check if the CURL request that succeeded is going via port 443 ? With these symptoms - I would definitely double check the restrictions on outbound connections for the environment where the proxy server is running - Suggestion-2To test this one out - we set up an Azure VM running Ubuntu 18.04 with Squid installed. Please see what's different from this configuration: Here's just what we had to do - to get this to work (when we tested this a while back with Squid proxy):
Here's how our successful proxy
|
squid.txt In this file , on line 981, acl my_network src 131.107.0.0/16 is added which is IP range of local machine and on line 1176 http_access allow my_network which basically allows access for that network. I used above squid configuration and was able to send/receive messages through the proxy |
Thanks for the info, so I've tried these settings and still running into the same issue. I've even gone as far as just setting Here's a connect from CURL, followed by a connect from the Azure test app followed by curl again from another host:
So the request made it in to the proxy and wasn't denied, but the one from the client software is timing out. I can play with settings a bit more but this is definitely odd. |
@dak0ta - can you bump up the logging level to understand what went on in this squid request. |
@SreeramGarlapati I agree with your approach, unless we get more information in logs, it would be tricky to debug what exactly is going on |
So part of that is a me problem for sure, I bumped up the debugging in Squid but I didn't seem to get any more logging. Squid docs say it goes to stderr but I didn't see the logs in any of the usual suspects... I'll chase that down. What I did do is get the test client run with java.net.debug=all on to have a look at what was requested and what the response was. So there's an initial tunnel request, certificate exchange, TLS negotiation, etc... Then there's the main request/response:
After this there's a 60 second hang and the connection is closed. |
At a glance everything on the server side appears to following https://tools.ietf.org/html/rfc6455, but it seems the test Client doesn't actually post the data once the This data was captured from the JVM of the machine running the eventhubs test code (to post an event) - so this request definitely left that machine and made it to the eventhubs endpoint via the proxy and the response had to have made it back as well otherwise it wouldn't be visible in the javax.net.debug output. So what's the next steps? I'm not bound to Squid but I'm guessing many of our customers will also be using it, and there's no reason it shouldn't work from a feature perspective. Thanks in advance for your assistance with this issue! |
@dak0ta - the client is blocked on response for 101. Then, this is really just websocket layer. Can you please run your testClient without any proxy settings but, keeping the setting |
Looks to be the same:
And then a timeout with the same stack trace. |
Were you able to re-create this at all @SreeramGarlapati? |
No. |
@dak0ta - can you please build using Azure/qpid-proton-j-extensions#9 - and acknowledge if this fix unblocks you? |
@dak0ta - I revamped the release notes for proxy support to help with setting proxy properties; appreciate your eye & any comments! |
This is now a legacy client in maintenance mode and we will not be making enhancements. You can find the new Java client azure-messaging-eventhubs at https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/eventhubs/azure-messaging-eventhubs |
Issue raised by @dak0ta - #264
we had an older squid that wasn't working great with HTTP CONNECT tunnelling so I setup a newer one.
New one works fine with CURL to test, but when trying out the sample EventHubs code we get
Squid logs show a request to the eventhubs on 443, but I don't think that's what this request here is.
1537807898.328 59999 X.X.X.X TCP_TUNNEL/200 4011 CONNECT XXXXXXXXXXXX.servicebus.windows.net:443 - HIER_DIRECT/40.86.225.142 -
Is this first request succeeding then a subsequent AMQP request failing? Or is this first one actually failing?
adding our squid proxy expert - @lee0c - can you please help @dak0ta - with the Squid proxy configuration to get EventHubs java library talking to it.
The text was updated successfully, but these errors were encountered: