diff options
author | Sverker Eriksson <[email protected]> | 2018-06-07 20:15:07 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-06-07 20:15:07 +0200 |
commit | 6ccf40d1b46a3e880134994bd71836f15a3358d4 (patch) | |
tree | 006f5fa90b8ee49ef2a146c1e40ad1fa646f0368 /erts/emulator/beam/erl_vm.h | |
parent | a113f6117fd696ea6f84ed754055b4ec97a7ccb2 (diff) | |
download | otp-6ccf40d1b46a3e880134994bd71836f15a3358d4.tar.gz otp-6ccf40d1b46a3e880134994bd71836f15a3358d4.tar.bz2 otp-6ccf40d1b46a3e880134994bd71836f15a3358d4.zip |
erts: Fix race between ets table deletion and auto-unfix
Bug exists since ets-refs were introduced in 20.0
0d6dc895744c34c9c52fd42f4801a8a941864ae3.
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_vm.h')
0 files changed, 0 insertions, 0 deletions