diff options
author | Dan Gudmundsson <[email protected]> | 2014-05-26 12:19:08 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2014-05-26 12:19:08 +0200 |
commit | a83b75d99ae51963b054d74c9203966c8e6878fb (patch) | |
tree | 4be91ceda9980815a24fa9a5f32d628ed81991f7 /lib/mnesia | |
parent | 3c95f2613cc7030576f28dae73129dffc1962b96 (diff) | |
parent | 720f33780dfac4f5ec0889d5fcfb1428ec157482 (diff) | |
download | otp-a83b75d99ae51963b054d74c9203966c8e6878fb.tar.gz otp-a83b75d99ae51963b054d74c9203966c8e6878fb.tar.bz2 otp-a83b75d99ae51963b054d74c9203966c8e6878fb.zip |
Merge branch 'dgud/mnesia/force-load-hangs/OTP-11948' into maint
* dgud/mnesia/force-load-hangs/OTP-11948:
mnesia: Handle failed net_loads better
Diffstat (limited to 'lib/mnesia')
-rw-r--r-- | lib/mnesia/src/mnesia_controller.erl | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/mnesia/src/mnesia_controller.erl b/lib/mnesia/src/mnesia_controller.erl index a83e55ac62..fe2fd67d71 100644 --- a/lib/mnesia/src/mnesia_controller.erl +++ b/lib/mnesia/src/mnesia_controller.erl @@ -1208,7 +1208,14 @@ handle_info(Done = #loader_done{worker_pid=WPid, table_name=Tab}, State0) -> {value,{_,Worker}} = lists:keysearch(WPid,1,get_loaders(State0)), add_loader(Tab,Worker,State1); _ -> - State1 + DelState = State1#state{late_loader_queue=gb_trees:delete_any(Tab, LateQueue0)}, + case ?catch_val({Tab, storage_type}) of + ram_copies -> + cast({disc_load, Tab, ram_only}), + DelState; + _ -> + DelState + end end end, State3 = opt_start_worker(State2), |