diff options
author | Erlang/OTP <[email protected]> | 2017-12-18 15:36:32 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2017-12-18 15:36:32 +0100 |
commit | 3ed6eaf7541f861fbeb9a7e847474ad671aae7f5 (patch) | |
tree | 506601181df7f51245dc2b1c2f70f5ef6f7dc625 | |
parent | 59fbff220a6b2ac2f59eaecd480a417b4e24b8bf (diff) | |
parent | e038b56530804a3e59cc8832db64e021b4b33d25 (diff) | |
download | otp-3ed6eaf7541f861fbeb9a7e847474ad671aae7f5.tar.gz otp-3ed6eaf7541f861fbeb9a7e847474ad671aae7f5.tar.bz2 otp-3ed6eaf7541f861fbeb9a7e847474ad671aae7f5.zip |
Merge branch 'dgud/mnesia/checkpoint-crash/OTP-14841' into maint-20
* dgud/mnesia/checkpoint-crash/OTP-14841:
mnesia: Fix checkpoint crash
-rw-r--r-- | lib/mnesia/src/mnesia_checkpoint.erl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/mnesia/src/mnesia_checkpoint.erl b/lib/mnesia/src/mnesia_checkpoint.erl index 2ff77326a9..8112378ffd 100644 --- a/lib/mnesia/src/mnesia_checkpoint.erl +++ b/lib/mnesia/src/mnesia_checkpoint.erl @@ -857,9 +857,9 @@ retainer_loop(Cp = #checkpoint_args{is_activated=false, name=Name}) -> retainer_loop(Cp = #checkpoint_args{name=Name}) -> receive {_From, {retain, Tid, Tab, Key, OldRecs}} -> - R = val({Tab, {retainer, Name}}), + R = ?catch_val({Tab, {retainer, Name}}), PendingTab = Cp#checkpoint_args.pending_tab, - case R#retainer.really_retain of + case is_record(R, retainer) andalso R#retainer.really_retain of true -> Store = R#retainer.store, try true = ets:member(PendingTab, Tid), |