diff options
author | Sverker Eriksson <[email protected]> | 2018-06-04 20:43:06 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-06-04 21:15:14 +0200 |
commit | 8eeb653417b839f34e9a778820fc3f18395a3d8a (patch) | |
tree | 006f5fa90b8ee49ef2a146c1e40ad1fa646f0368 /HOWTO | |
parent | a113f6117fd696ea6f84ed754055b4ec97a7ccb2 (diff) | |
download | otp-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 'HOWTO')
0 files changed, 0 insertions, 0 deletions