-
Notifications
You must be signed in to change notification settings - Fork 61
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
MessageSender and ReplayableWorkItem are not thread-safe but got accessed from various threads #4
Comments
jtaubensee
changed the title
JavaClient: MessageSender and ReplayableWorkItem are not thread-dase but got accessed from various threads
MessageSender and ReplayableWorkItem are not thread-dase but got accessed from various threads
Nov 1, 2016
SreeramGarlapati
changed the title
MessageSender and ReplayableWorkItem are not thread-dase but got accessed from various threads
MessageSender and ReplayableWorkItem are not thread-safe but got accessed from various threads
Jan 9, 2017
SreeramGarlapati
added a commit
to SreeramGarlapati/azure-event-hubs-java
that referenced
this issue
Apr 5, 2017
SreeramGarlapati
added a commit
to SreeramGarlapati/azure-event-hubs-java
that referenced
this issue
Apr 5, 2017
SreeramGarlapati
added a commit
to SreeramGarlapati/azure-event-hubs-java
that referenced
this issue
Apr 6, 2017
Please see if you can review the PR #93 which is the last round to address all the feedback you provided (sorry about the delay)... |
SreeramGarlapati
added a commit
to SreeramGarlapati/azure-event-hubs-java
that referenced
this issue
Apr 6, 2017
Closing based on PR #93 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
From @ialexandrov on October 21, 2016 11:32
MessageSender has set of fields which are not final. At the same time methods of MessageSender are called from different threads without any state synchronization. This will lead to ocasional phantom isssues.
Either make MessageSender thread safe or make sure all members of it are only accessed from reactor thread,
For example:
MessageSender.lastKnownLinkError is set by reactor thread in onError method and read in sendCore() method which is called from ForJoinPool due to (probably) bug in EventHubClient.send(..,) methods where thenComposeAsync is called instead on thenCompose.
More of less the same problem is with ReplayableWorkItem.lastKnownException which is again is set by reactor thread but read from timer thread pool thread:
java / azure-eventhubs / src / main / java / com / microsoft / azure / servicebus / MessageSender.java
778 MessageSender.this.throwSenderTimeout(sendData.getWork(), sendData.getLastKnownException());
Copied from original issue: Azure/azure-event-hubs#284
The text was updated successfully, but these errors were encountered: