#18436 closed bug (fixed)

pthread_mutex: double lock possible

Reported by: jessicah Owned by: nobody
Priority: normal Milestone: R1/beta5
Component: System/libroot.so Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

GHC's RTS triggers a double lock condition with pthread_mutex fairly reliably.

begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 901
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 998
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 901
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 795
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 901
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 901
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 723
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 783
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 792
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2505
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Schedule.c 2511
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 719
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 750
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 547; rts/Capability.c 897
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
  ^-- Thread A: Beginning acquire mutex
RELEASE_LOCK(0x0x5eee73c6b4): owner == 547; rts/Capability.c 904
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 546; rts/Capability.c 897
RELEASE_LOCK(0x0x5eee73c6b4): owner == 546; rts/Capability.c 904
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
  ^-- Thread B: Beginning acquire mutex
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 545; rts/Capability.c 988
  ^-- Thread B: Acquired mutex
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 719
  ^-- Thread A: Acquired mutex
  *** State now inconsistent ***
RELEASE_LOCK(0x0x5eee73c6b4): owner == 548; rts/Capability.c 750
  ^-- Thread A: Released mutex
begin ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
  ^-- Thread A: Beginning acquire mutex
RELEASE_LOCK(0x0x5eee73c6b4): owner == 545; rts/Capability.c 998
  ^-- Thread B: Released mutex
end ACQUIRE_LOCK...(0x0x5eee73c6b4): owner == 548; rts/Capability.c 988
  ^-- Thread A: Acquired mutex
pthread_mutex_unlock (0x5eee73c6b4): invalid owner: 548 != 545

Change History (5)

comment:1 by pulkomandy, 17 months ago

There was some incorrect error checking on GHC side which has been fixed in this change: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6231/diffs

This can potentially result in OS_ACQUIRE_LOCK thinking the lock is held by the thread, when in fact it isn't.

From our IRC discussions I think your test is made with a version before this change.

I think it would be a good idea to check if that changes the behavior, before digging deeper into the Haiku side of things?

A few other notes about this from the IRC discussion:

The involved code is: https://gist.github.com/jessicah/49ce38312ea20462165233a876f12e17

In the logs, the "owner" is not the current mutex owner, but it is the thread emitting the log (this makes a difference in "begin ACQUIRE_LOCK", where we don't know who the previous owner is, and in "end ACQUIRE_LOCK" and "RELEASE LOCK" if the lock acquisition failed cleanly (in that case the "owner" field in the mutex would be -1 or point to the thread previously owning the lock).

comment:2 by jessicah, 17 months ago

Applied the commits mentioned, acquire lock still succeeds in all cases, resulting in double lock behaviour, although my logging from GHC's RTS doesn't seem to indicate an out-of-order condition, which is weirder still. Probably need to move the logging into pthread_mutex itself...

comment:3 by pulkomandy, 17 months ago

I thought of something tonight: ghc also has condition variables, which will temporarily unlock mutexes without going through the "release" log. Are they in use here? Just to make sure we're looking at a complete log of what's happening

comment:5 by waddlesplash, 17 months ago

Milestone: UnscheduledR1/beta5
Resolution: fixed
Status: newclosed

Fix merged in hrev57076.

Note: See TracTickets for help on using tickets.