Darrel Schneider created GEODE-9734:
---------------------------------------

             Summary: ClientPublisher has race causing it to never publish a 
single message
                 Key: GEODE-9734
                 URL: https://issues.apache.org/jira/browse/GEODE-9734
             Project: Geode
          Issue Type: Bug
          Components: redis
            Reporter: Darrel Schneider


 The ClientPublisher has a race condition that can cause it to add a message to 
the queue but not drain it right away. The msg will never be published unless 
that client publishes a second message.

The order of events that cause the race is:
1. drainerThread: set active and publishes current batch
2. drainerThread: calls batch.fill and gets nothing
3. publishThread: adds msg to queue
4. publishThread: tests "active" see it is true so it does not call 
fillBatchIfNeeded
5. drainerThread: sets "active" to false
We now have one msg in the queue that will not be published until we add 
another msg to the queue.
This should be easy to fix. All we need to do in the drainerThread is one more 
check of the queue after setting active to false



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to