You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let result = mdbx_result(unsafe{ ffi::mdbx_txn_abort(ptr)});
Recently, we saw double free or corruption (!prev) and Segmentation fault (core dumped) errors coming from the FFI boundary. Most likely, it's related to the race condition happening somewhere between read transactions monitor and the user-invoked transaction abort (either Drop or message listener).
Segmentation fault is most likely caused by the attempt to use a transaction that was already aborted
Double free is most likely caused by the attempt to abort the transaction twice
The text was updated successfully, but these errors were encountered:
Describe the bug
With the introduction of transaction manager, we now have three places where the transaction can be aborted:
Drop
implementation when it's a read-only transactionreth/crates/storage/libmdbx-rs/src/transaction.rs
Line 365 in 9d9d7ee
TxnManager
reth/crates/storage/libmdbx-rs/src/txn_manager.rs
Line 98 in 9d9d7ee
TxnManager
reth/crates/storage/libmdbx-rs/src/txn_manager.rs
Line 249 in 9d9d7ee
Recently, we saw
double free or corruption (!prev)
andSegmentation fault (core dumped)
errors coming from the FFI boundary. Most likely, it's related to the race condition happening somewhere between read transactions monitor and the user-invoked transaction abort (eitherDrop
or message listener).The text was updated successfully, but these errors were encountered: