- 
    Type:Bug 
- 
    Resolution: Duplicate
- 
    Priority:Unknown 
- 
    None
- 
    Affects Version/s: None
- 
    Component/s: None
- 
    None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
Read concerns "linearizable" and "available" cannot be used in causally consistent sessions (see documentation here; see server code here). However, the Causal Consistency spec says that causal consistency should be enabled in sessions by default unless snapshot=true. Enabling causal consistency in implicit sessions can cause server errors when a user sets read concern "linearizable" or "available".
A specific case where this causes a problem is with retryable reads because they reuse the same session and set an "operation time". As a result, a retried read will send a read concern document that includes afterClusterTime. If a user has also set the read concern to "linearizable" or "available", that retried read will fail with error InvalidOptions(72) with message:
afterClusterTime field can be set only if level is equal to majority, local, or snapshotÂ
Update the Go driver to always set causalConsistency=false for implicit sessions to prevent sending afterClusterTime.
Note that the Causal Consistency spec isn't clear on whether implicit sessions should have causal consistency disabled and under what circumstances. DRIVERS-2369 is a ticket to clarify the behavior of implicit sessions in the Causal Consistency spec. The implementer of this ticket should check for updates on DRIVERS-2369 and for any related Causal Consistency spec changes. For now we chose to follow the implementation of the Java driver that always disables causal consistency in implicit sessions.
- duplicates
- 
                    GODRIVER-2497 Disable causal consistency in implicit sessions -         
- Closed
 
-         
- is related to
- 
                    DRIVERS-2369 Disable causal consistency in implicit sessions -         
- Closed
 
-         
- related to
- 
                    GODRIVER-2497 Disable causal consistency in implicit sessions -         
- Closed
 
-