fresh-borzoni opened a new pull request, #145:
URL: https://github.com/apache/fluss-rust/pull/145

   ### Purpose
   
     Linked issue: close #135
   
     Fix critical bug where DashMap shard lock was held across `.await` points 
in the record accumulator, which could cause deadlocks via lock inversion and 
make futures `!Send`.
   
     ### Brief change log
   
     - Changed `batches` field type in `BucketAndWriteBatches` from 
`HashMap<BucketId, Mutex<VecDeque<WriteBatch>>>` to `HashMap<BucketId, 
Arc<Mutex<VecDeque<WriteBatch>>>>>`
     - Updated `append()`, `re_enqueue()`, `drain_batches_for_one_node()`, and 
`bucket_ready()` methods to clone the `Arc` before awaiting, ensuring DashMap 
locks are dropped before async suspension points
     - Fixed unrelated test compilation error in `datum.rs`
   
     ### Tests
   
     - Existing test `re_enqueue_increments_attempts` passes
     - All accumulator unit tests pass
     - Full build and clippy pass with no warnings
   
     ### API and Format
   
     No API or storage format changes.
   
     ### Documentation
   
     No new features introduced - this is a bug fix.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to