James Duong created ARROW-15876:
-----------------------------------

             Summary: [FlightRPC][Java] CallbackBackpressureStrategy should not 
rely on listener.isReady()
                 Key: ARROW-15876
                 URL: https://issues.apache.org/jira/browse/ARROW-15876
             Project: Apache Arrow
          Issue Type: Bug
          Components: FlightRPC, Java
            Reporter: James Duong


According to the spec for 
[https://grpc.github.io/grpc-java/javadoc/io/grpc/stub/CallStreamObserver.html#setOnReadyHandler-java.lang.Runnable-]
 , we can get into a state where the ready flag on the listener has already 
switched back to false by the time we execute the on ready handler.

We currently use the listener's ready flag after the ready handler to check if 
we received a spurious wake, but it's not reliable because of this. Instead we 
should use our own readiness flag that gets set within a synchronized block 
local to the CallbackBackpressureStrategy.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to