-
Notifications
You must be signed in to change notification settings - Fork 165
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
Failure to shutdown NettyEventLoopProvider.releaseEventLoop()
leaves bad executor in cache
#445
Comments
This is happening occasionally in some integration tests I have. I'm going to try a trivial fix:
I'll report back whether this works soon. Do with it what you wish. (I'm not going to sign your CLA for this trivial fix). |
Hi @philipa Unfortunately the patch you provided will very likely not fix this as the code is inside a synchronized method so the order of the code lines should not change anything. |
Hi Silvio, The good news is that the fix above does appear to stabilise our tests. They weren't failing every time, so let me monitor for a few more days. With the fix, I'm not even seeing the event loop exception logged. which is strange. This isn't a concurrency issue, so I have one integration test suite, with a handful of integration tests, run serially. Each test starts a MqttClient, connecting over TCP. There's little point in sharing the tests themselves because they rely on other unreleased, proprietary code. Clients that manage to connect successfully are explicitly disconnected. Searching for netty eventFDWrite and "Bad file descriptor" shows several matches for other netty users. Regardless of the underlying cause, ensuring the |
@philipa You are right, have overseen that it is the |
Thanks. I'll keep investigating and let you know. |
This seems to be the exact same problem: grpc/grpc-java#6002 |
@philipa Which version of |
Ahhh - dependency hell. Looks like I've got a version of littleproxy that shades in 4.1.34. I'm using the fork from https://github.com/mrog/LittleProxy. I see no reason to use the shaded version so I'll stop doing that, switch back to mqttt-cllient 1.2.1, and report back here if this also solves the problem. |
If you use maven, please use: <dependencies>
<dependency>
<groupId>com.hivemq</groupId>
<artifactId>hivemq-mqtt-client</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.hivemq</groupId>
<artifactId>hivemq-mqtt-client-epoll</artifactId>
<version>1.2.1</version>
<type>pom</type>
</dependency>
</dependencies> If you use gradle, please use: dependencies {
implementation("com.hivemq:hivemq-mqtt-client:1.2.1")
implementation(platform("com.hivemq:hivemq-mqtt-client-epoll:1.2.1"))
} |
Yes, that's what I'm using. Now I've straightened out my dependency conflicts, I can report hivemq-mqtt-client 1.2.1 / netty 4.1.3.5 is working fine. Thanks! |
|
If this happens...
Then all subsequent
connect
operations using the same netty executor fail:The text was updated successfully, but these errors were encountered: