frostfs-node/pkg/local_object_storage/writecache
Evgenii Stratonikov e0309e398c [#2239] writecache: Fix possible deadlock
LRU `Peek`/`Contains` take LRU mutex _inside_ of a `View` transaction.
`View` transaction itself takes `mmapLock` [1], which is lifted after tx
finishes (in `tx.Commit()` -> `tx.close()` -> `tx.db.removeTx`)

When we evict items from LRU cache mutex order is different:
first we take LRU mutex and then execute `Batch` which _does_ take
`mmapLock` in case we need to remap. Thus the deadlock.

[1] 8f4a7e1f92/db.go (L708)

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-02-20 13:53:27 +03:00
..
delete.go [#2167] write-cache: Add "write-cache" to its logs 2022-12-30 11:07:35 +03:00
doc.go [#1745] writecache: Actualize docs 2022-09-02 11:59:53 +03:00
flush.go [#2239] writecache: Fix possible deadlock 2023-02-20 13:53:27 +03:00
flush_test.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
generic_test.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
get.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
init.go [#2167] write-cache: Add "write-cache" to its logs 2022-12-30 11:07:35 +03:00
iterate.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
mode.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
options.go Move to frostfs-node 2022-12-28 15:04:29 +03:00
put.go [#2167] write-cache: Add "write-cache" to its logs 2022-12-30 11:07:35 +03:00
state.go [#1745] writecache: Simplify object counters 2022-09-02 11:59:53 +03:00
storage.go [#2239] writecache: Fix possible deadlock 2023-02-20 13:53:27 +03:00
util.go [#1647] writecache: Open DB in sync mode 2022-08-16 15:27:18 +04:00
writecache.go [#2167] write-cache: Add "write-cache" to its logs 2022-12-30 11:07:35 +03:00