aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_lock_count.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-06-04 20:43:06 +0200
committerSverker Eriksson <[email protected]>2018-06-04 21:15:14 +0200
commit8eeb653417b839f34e9a778820fc3f18395a3d8a (patch)
tree006f5fa90b8ee49ef2a146c1e40ad1fa646f0368 /erts/emulator/beam/erl_lock_count.h
parenta113f6117fd696ea6f84ed754055b4ec97a7ccb2 (diff)
downloadotp-8eeb653417b839f34e9a778820fc3f18395a3d8a.tar.gz
otp-8eeb653417b839f34e9a778820fc3f18395a3d8a.tar.bz2
otp-8eeb653417b839f34e9a778820fc3f18395a3d8a.zip
erts: Fix race between ets table deletion and auto-unfix
Problem: 1. Process A fixates table T. 2. Process B starts deleting table T (either by ets:delete or exit) and does tid_clear(). 3. Process A exits and does proc_cleanup_fixed_table() and get NULL from btid2tab() and deallocates DbFixation. 4. Process B continues deleting table in free_fixations_locked() and finds the deallocated DbFixation in the fixing_procs tree. Solution: Wait with tid_clear() until after free_fixations_locked() has traversed the fixing_procs tree.
Diffstat (limited to 'erts/emulator/beam/erl_lock_count.h')
0 files changed, 0 insertions, 0 deletions