4 ------ This is output for >= glibc 2.4 ------
6 ---------------- pthread_create/join ----------------
8 ---Thread-Announcement------------------------------------------
10 Thread #x is the program's root thread
12 ---Thread-Announcement------------------------------------------
16 by 0x........: pthread_create@* (hg_intercepts.c:...)
17 by 0x........: main (tc20_verifywrap.c:86)
19 ----------------------------------------------------------------
21 Possible data race during write of size 2 at 0x........ by thread #x
23 at 0x........: main (tc20_verifywrap.c:88)
25 This conflicts with a previous write of size 2 by thread #x
27 at 0x........: racy_child (tc20_verifywrap.c:44)
28 by 0x........: mythread_wrapper (hg_intercepts.c:...)
30 Location 0x........ is 0 bytes inside global var "unprotected"
31 declared at tc20_verifywrap.c:37
33 ----------------------------------------------------------------
35 Thread #x's call to pthread_join failed
36 with error code 45 (EDEADLK: Resource deadlock would occur)
37 at 0x........: pthread_join_WRK (hg_intercepts.c:...)
38 by 0x........: pthread_join (hg_intercepts.c:...)
39 by 0x........: main (tc20_verifywrap.c:93)
42 ---------------- pthread_mutex_lock et al ----------------
44 ----------------------------------------------------------------
46 Thread #x's call to mutex_init failed
47 with error code 22 (EINVAL: Invalid argument)
48 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
49 by 0x........: main (tc20_verifywrap.c:107)
51 ----------------------------------------------------------------
53 Thread #x: pthread_mutex_destroy of a locked mutex
54 at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
55 by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
56 by 0x........: main (tc20_verifywrap.c:117)
58 ----------------------------------------------------------------
60 Thread #x's call to pthread_mutex_lock failed
61 with error code 1 (EPERM: Operation not permitted)
62 at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
63 by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
64 by 0x........: main (tc20_verifywrap.c:123)
66 ----------------------------------------------------------------
68 Thread #x's call to pthread_mutex_trylock failed
69 with error code 1 (EPERM: Operation not permitted)
70 at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
71 by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
72 by 0x........: main (tc20_verifywrap.c:131)
74 ----------------------------------------------------------------
76 Thread #x's call to pthread_mutex_timedlock failed
77 with error code 1 (EPERM: Operation not permitted)
78 at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
79 by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
80 by 0x........: main (tc20_verifywrap.c:136)
82 ----------------------------------------------------------------
84 Thread #x unlocked an invalid lock at 0x........
85 at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
86 by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
87 by 0x........: main (tc20_verifywrap.c:140)
89 ----------------------------------------------------------------
91 Thread #x's call to pthread_mutex_unlock failed
92 with error code 1 (EPERM: Operation not permitted)
93 at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
94 by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
95 by 0x........: main (tc20_verifywrap.c:140)
98 ---------------- pthread_cond_wait et al ----------------
100 ----------------------------------------------------------------
102 Thread #x: pthread_cond_{timed}wait called with un-held mutex
103 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
104 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
105 by 0x........: main (tc20_verifywrap.c:162)
107 ----------------------------------------------------------------
109 Thread #x's call to pthread_cond_wait failed
110 with error code 1 (EPERM: Operation not permitted)
111 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
112 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
113 by 0x........: main (tc20_verifywrap.c:162)
115 ----------------------------------------------------------------
117 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
118 at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
119 by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
120 by 0x........: main (tc20_verifywrap.c:167)
123 FIXME: can't figure out how to verify wrap of pthread_cond_signal
125 ----------------------------------------------------------------
127 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
128 at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
129 by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
130 by 0x........: main (tc20_verifywrap.c:173)
133 FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
135 ----------------------------------------------------------------
137 Thread #x: pthread_cond_{timed}wait called with un-held mutex
138 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
139 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
140 by 0x........: main (tc20_verifywrap.c:180)
142 ----------------------------------------------------------------
144 Thread #x's call to pthread_cond_timedwait failed
145 with error code 1 (EPERM: Operation not permitted)
146 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
147 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
148 by 0x........: main (tc20_verifywrap.c:180)
151 ---------------- pthread_rwlock_* ----------------
153 ----------------------------------------------------------------
155 Thread #x unlocked a not-locked lock at 0x........
156 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
157 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
159 by 0x........: main (tc20_verifywrap.c:194)
160 Lock at 0x........ was first observed
161 at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
163 by 0x........: main (tc20_verifywrap.c:193)
164 Location 0x........ is 0 bytes inside rwl.__pthread_rwlock_readers,
165 declared at tc20_verifywrap.c:57, in frame #x of thread x
168 ----------------------------------------------------------------
170 Thread #x's call to pthread_rwlock_unlock failed
171 with error code 1 (EPERM: Operation not permitted)
172 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
173 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
175 by 0x........: main (tc20_verifywrap.c:194)
177 (1) no error on next line
178 (2) no error on next line
179 (3) ERROR on next line
180 ----------------------------------------------------------------
182 Thread #x unlocked a not-locked lock at 0x........
183 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
184 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
186 by 0x........: main (tc20_verifywrap.c:211)
187 Lock at 0x........ was first observed
188 at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
190 by 0x........: main (tc20_verifywrap.c:201)
191 Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
192 declared at tc20_verifywrap.c:58, in frame #x of thread x
195 ----------------------------------------------------------------
197 Thread #x's call to pthread_rwlock_unlock failed
198 with error code 1 (EPERM: Operation not permitted)
199 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
200 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
202 by 0x........: main (tc20_verifywrap.c:211)
204 (4) no error on next line
205 (5) no error on next line
206 (6) no error on next line
207 (7) no error on next line
208 (8) ERROR on next line
209 ----------------------------------------------------------------
211 Thread #x unlocked a not-locked lock at 0x........
212 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
213 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
215 by 0x........: main (tc20_verifywrap.c:232)
216 Lock at 0x........ was first observed
217 at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
219 by 0x........: main (tc20_verifywrap.c:201)
220 Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
221 declared at tc20_verifywrap.c:58, in frame #x of thread x
224 ----------------------------------------------------------------
226 Thread #x's call to pthread_rwlock_unlock failed
227 with error code 1 (EPERM: Operation not permitted)
228 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
229 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
231 by 0x........: main (tc20_verifywrap.c:232)
234 ---------------- pthread_spin_* ----------------
237 ---------------- sem_* ----------------
239 ----------------------------------------------------------------
241 Thread #x's call to sema_init failed
242 with error code 22 (EINVAL: Invalid argument)
243 at 0x........: sema_init (hg_intercepts.c:...)
245 by 0x........: main (tc20_verifywrap.c:267)
248 FIXME: can't figure out how to verify wrap of sem_destroy
251 FIXME: can't figure out how to verify wrap of sem_post
254 ------------ dealloc of mem holding locks ------------
256 ----------------------------------------------------------------
258 Thread #x: Exiting thread still holds 1 lock
262 ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)