- 
    Type:Bug 
- 
    Resolution: Fixed
- 
    Priority:Major - P3 
- 
    Affects Version/s: None
- 
    Component/s: None
- 
    None
- 
        Storage Execution NAMER
- 
        Fully Compatible
- 
        ALL
- 
        Execution NAMR Team 2023-09-04, Execution NAMR Team 2023-09-18
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
Suppose two threads have reached this point in waitForDurable:
Each has obtained a journal token, one of which is older than the other. If the thread with the older token proceeds first, the thread with the newer token will exit here:
without having called onDurable on the newer token, resulting in the newer token not being marked durable (though it is). I think this can be fixed by calling onDurable in the early exit path.
This was discovered during code inspection.
- is related to
- 
                    SERVER-20176 Deletes with j:true slower on WT than MMAPv1 -         
- Closed
 
-         
- 
                    SERVER-48144 waitUntilDurable should not take a mutex before taking locks -         
- Closed
 
-         
- 
                    SERVER-46067 Internal code interface changes for Replicate Before Journaling -         
- Closed
 
-         
- 
                    SERVER-46334 Eliminate the mutex held across JournalListener accesses -         
- Closed
 
-         
- related to
- 
                    SERVER-80670 call JournalListener::onDurable outside mutex in WiredTigerSessionCache::waitUntilDurable -         
- Closed
 
-         
- 
                    SERVER-80657 clean up JournalListener access in WiredTigerSessionCache::waitUntilDurable -         
- Closed
 
-