-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Race on NettyClientTransport.start #2015
Comments
Looks like a race in |
Motivation: A race detector found that DefaultPromise.listeners is improperly synchronized [1]. Worst case a listener will not be executed when the promise is completed. Modifications: Make DefaultPromise.listeners a volatile. Result: Hopefully, DefaultPromise is more correct under concurrent execution. [1] grpc/grpc-java#2015
Motivation: A race detector found that DefaultPromise.listeners is improperly synchronized [1]. Worst case a listener will not be executed when the promise is completed. Modifications: Make DefaultPromise.listeners a volatile. Result: Hopefully, DefaultPromise is more correct under concurrent execution. [1] grpc/grpc-java#2015
Motivation: A race detector found that DefaultPromise.listeners is improperly synchronized [1]. Worst case a listener will not be executed when the promise is completed. Modifications: Make DefaultPromise.listeners a volatile. Result: Hopefully, DefaultPromise is more correct under concurrent execution. [1] grpc/grpc-java#2015
Should be fixed once we upgrade to Netty 4.1.3.Final (will be released end of week). |
@buchgr thanks! I can test this once it has been rolled out into a named release. It's currently rather difficult to pull in unreleased builds. |
@carl-mastrangelo can't you just pull in a snapshot ? |
@normanmaurer Surprisingly no. its somewhat of a manual endeavor, hampered by the fact that Google's version of Java is different enough from the OpenJDK to make the process not straight forward. Prefabbed jars are okay though (which is why we typically wait for full releases). |
@carl-mastrangelo bummer... I hoped you could just grab a snapshot jar from sonatype and go with it: https://oss.sonatype.org/content/repositories/snapshots/io/netty/ |
fixed by 0ad5948 |
Motivation: A race detector found that DefaultPromise.listeners is improperly synchronized [1]. Worst case a listener will not be executed when the promise is completed. Modifications: Make DefaultPromise.listeners a volatile. Result: Hopefully, DefaultPromise is more correct under concurrent execution. [1] grpc/grpc-java#2015
Bootstrap.connect seems to add a listener to a ChannelFuture that is concurrently modified by the NioEventLoop and the client provided executor in ConcurrencyTest
Conflicting accesses:
The text was updated successfully, but these errors were encountered: