Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
4254-Fix-sticky-sync-locks.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 4254-Fix-sticky-sync-locks.patch of Package erlang
From cad25ed4ca03d87713b865d9a50cef28e3460bbe Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson <dgud@erlang.org> Date: Wed, 8 Feb 2023 17:06:14 +0100 Subject: [PATCH 4/4] Fix sticky sync locks Needs to mark all sticky locks as sticky. Tests failed for the first lock. --- lib/mnesia/src/mnesia_locker.erl | 2 ++ lib/mnesia/test/mnesia_isolation_test.erl | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/mnesia/src/mnesia_locker.erl b/lib/mnesia/src/mnesia_locker.erl index 66f08580fa..d8ac39b393 100644 --- a/lib/mnesia/src/mnesia_locker.erl +++ b/lib/mnesia/src/mnesia_locker.erl @@ -761,12 +761,14 @@ do_sticky_lock(Tid, Store, {Tab, Key} = Oid, Lock) -> exit({aborted, Reason}); {?MODULE, N, not_stuck} -> not_stuck(Tid, Store, Tab, Key, Oid, Lock, N), + ?ets_insert(Store, {sticky, true}), dirty_sticky_lock(Tab, Key, [N], Lock); {mnesia_down, Node} -> EMsg = {aborted, {node_not_running, Node}}, flush_remaining([N], Node, EMsg); {?MODULE, N, {stuck_elsewhere, _N2}} -> stuck_elsewhere(Tid, Store, Tab, Key, Oid, Lock), + ?ets_insert(Store, {sticky, true}), dirty_sticky_lock(Tab, Key, [N], Lock) end. diff --git a/lib/mnesia/test/mnesia_isolation_test.erl b/lib/mnesia/test/mnesia_isolation_test.erl index b3f5e96e4b..9f427dbaa6 100644 --- a/lib/mnesia/test/mnesia_isolation_test.erl +++ b/lib/mnesia/test/mnesia_isolation_test.erl @@ -630,11 +630,6 @@ sticky_sync(Config) when is_list(Config) -> %% Fill 1000 dc records. At the end all dc records should have value 1. {Time, ok} = timer:tc(fun() -> lists:foreach(TestFun, lists:seq(1,200)) end), - io:format("200 trans done in ~p ~n",[Time div (1000000)]), - case (Time div (1000000)) < 20 of - true -> lists:foreach(TestFun, lists:seq(201,1000)); - false -> ignore %% Some virtual test machines are really slow.. - end, io:format("Written, check content~n",[]), All = fun() -> mnesia:select(dc, [ {{dc, '_', 0}, [] ,['$_']} ]) end, ?match({atomic, []}, rpc:call(N1, mnesia, sync_transaction, [All])), -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor