[CSHARP-4159] Make ThreadStaticBuffer resilient to OutOfMemoryException Created: 29/Apr/22  Updated: 16/Aug/22  Resolved: 12/Aug/22

Status: Closed
Project: C# Driver
Component/s: Serialization
Affects Version/s: 2.15.0
Fix Version/s: 2.18.0

Type: Bug Priority: Unknown
Reporter: Matthias Dittrich Assignee: Boris Dogadov
Resolution: Done Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Summary

See https://github.com/mongodb/mongo-csharp-driver/pull/777

It should be quite obvious to understand that when an Exception happens on one of the lines after the __isBufferRented flag is set the flag will never be reset, and ALL FUTURE CALLS in the same Thread will throw  "Thread static buffer is already in use."

One example is an OutOfMemoryException on one of the lines with an allocation.

We actually have seen this in a 32bit application.



 Comments   
Comment by PM Bot [ 12/Jul/22 ]

There hasn't been any recent activity on this ticket, so we're resolving it. Thanks for reaching out! Please feel free to comment on this if you're able to provide more information.

Comment by PM Bot [ 24/May/22 ]

There hasn't been any recent activity on this ticket, so we're resolving it. Thanks for reaching out! Please feel free to comment on this if you're able to provide more information.

Generated at Wed Feb 07 21:47:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.