2 Thread #x is the program's root thread
4 Thread #x unlocked a not-locked lock at 0x........
5 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
6 by 0x........: nearly_main (tc09_bad_unlock.c:27)
7 by 0x........: main (tc09_bad_unlock.c:49)
8 Lock at 0x........ was first observed
9 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
10 by 0x........: nearly_main (tc09_bad_unlock.c:23)
11 by 0x........: main (tc09_bad_unlock.c:49)
15 by 0x........: pthread_create@* (hg_intercepts.c:...)
16 by 0x........: nearly_main (tc09_bad_unlock.c:35)
17 by 0x........: main (tc09_bad_unlock.c:49)
19 Thread #x unlocked lock at 0x........ currently held by thread #x
20 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
21 by 0x........: child_fn (tc09_bad_unlock.c:11)
22 by 0x........: mythread_wrapper (hg_intercepts.c:...)
24 Lock at 0x........ was first observed
25 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
26 by 0x........: nearly_main (tc09_bad_unlock.c:31)
27 by 0x........: main (tc09_bad_unlock.c:49)
29 Thread #x unlocked an invalid lock at 0x........
30 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
31 by 0x........: nearly_main (tc09_bad_unlock.c:41)
32 by 0x........: main (tc09_bad_unlock.c:49)
34 Thread #x's call to pthread_mutex_unlock failed
35 with error code 22 (EINVAL: Invalid argument)
36 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
37 by 0x........: nearly_main (tc09_bad_unlock.c:41)
38 by 0x........: main (tc09_bad_unlock.c:49)
41 Thread #x unlocked a not-locked lock at 0x........
42 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
43 by 0x........: nearly_main (tc09_bad_unlock.c:27)
44 by 0x........: main (tc09_bad_unlock.c:50)
45 Lock at 0x........ was first observed
46 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
47 by 0x........: nearly_main (tc09_bad_unlock.c:23)
48 by 0x........: main (tc09_bad_unlock.c:49)
50 Thread #x: Attempt to re-lock a non-recursive lock I already hold
51 at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
52 by 0x........: nearly_main (tc09_bad_unlock.c:32)
53 by 0x........: main (tc09_bad_unlock.c:50)
54 Lock was previously acquired
55 at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
56 by 0x........: nearly_main (tc09_bad_unlock.c:32)
57 by 0x........: main (tc09_bad_unlock.c:49)
59 Thread #x: Bug in libpthread: recursive write lock granted on mutex/wrlock which does not support recursion
60 at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
61 by 0x........: nearly_main (tc09_bad_unlock.c:32)
62 by 0x........: main (tc09_bad_unlock.c:50)
66 by 0x........: pthread_create@* (hg_intercepts.c:...)
67 by 0x........: nearly_main (tc09_bad_unlock.c:35)
68 by 0x........: main (tc09_bad_unlock.c:50)
70 Thread #x unlocked lock at 0x........ currently held by thread #x
71 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
72 by 0x........: child_fn (tc09_bad_unlock.c:11)
73 by 0x........: mythread_wrapper (hg_intercepts.c:...)
75 Lock at 0x........ was first observed
76 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
77 by 0x........: nearly_main (tc09_bad_unlock.c:31)
78 by 0x........: main (tc09_bad_unlock.c:49)
80 Thread #x unlocked an invalid lock at 0x........
81 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
82 by 0x........: nearly_main (tc09_bad_unlock.c:41)
83 by 0x........: main (tc09_bad_unlock.c:50)
85 Thread #x's call to pthread_mutex_unlock failed
86 with error code 22 (EINVAL: Invalid argument)
87 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
88 by 0x........: nearly_main (tc09_bad_unlock.c:41)
89 by 0x........: main (tc09_bad_unlock.c:50)
91 Thread #x: Exiting thread still holds 1 lock
95 ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)