Opened 18 months ago
Closed 18 months ago
#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 , 18 months ago
comment:2 by , 18 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 , 18 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 , 18 months ago
Milestone: | Unscheduled → R1/beta5 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fix merged in hrev57076.
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).