Github user joshelser commented on the pull request:

    https://github.com/apache/accumulo/pull/54#issuecomment-160772542
  
    > Let me test what actually happens in the client code when the oneway 
throws an exception. I have a little test harness that I used to play around 
with this.
    
    So this is funny :). Let's define some stuff:
    
    * Given a request A with response A' over a "normal" synchronous thrift call
    * Given a request B with response B' over a oneway thrift call
    * Both of these requests are submitted over the same connection
    * A is run in one thread, B in another (with a latch to ensure they start 
at the same time)
    
    1. If A is not submitted and the computation of B' in the server throws an 
exception, the caller of B does not see this exception. Only side-effect is a 
server-side log message.
    2. If the order of execution as seen by the client is `A, B, B', A'`, the 
client will typically get an exception trying to read A'
    3. If the order of execution as seen by the client is `B, A, A', B'`, then 
both threads see exceptions.
    4. If the order of execution as seen by the client is `B, A, B', A'`, then 
an exception is seen reading A'
    
    Does this help, @keith-turner?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to