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_WRK (hg_intercepts.c:...)
17 by 0x........: pthread_create@* (hg_intercepts.c:...)
18 by 0x........: main (tc20_verifywrap.c:86)
20 ----------------------------------------------------------------
22 Possible data race during write of size 2 at 0x........ by thread #x
24 at 0x........: main (tc20_verifywrap.c:88)
26 This conflicts with a previous write of size 2 by thread #x
28 at 0x........: racy_child (tc20_verifywrap.c:44)
29 by 0x........: mythread_wrapper (hg_intercepts.c:...)
32 Location 0x........ is 0 bytes inside global var "unprotected"
33 declared at tc20_verifywrap.c:37
35 ----------------------------------------------------------------
37 Thread #x's call to pthread_join failed
38 with error code 35 (EDEADLK: Resource deadlock would occur)
39 at 0x........: pthread_join_WRK (hg_intercepts.c:...)
40 by 0x........: pthread_join (hg_intercepts.c:...)
41 by 0x........: main (tc20_verifywrap.c:93)
44 ---------------- pthread_mutex_lock et al ----------------
46 ----------------------------------------------------------------
48 Thread #x's call to pthread_mutex_init failed
49 with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
50 at 0x........: pthread_mutex_init (hg_intercepts.c:...)
51 by 0x........: main (tc20_verifywrap.c:107)
53 ----------------------------------------------------------------
55 Thread #x: pthread_mutex_destroy of a locked mutex
56 at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
57 by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
58 by 0x........: main (tc20_verifywrap.c:117)
60 ----------------------------------------------------------------
62 Thread #x's call to pthread_mutex_destroy failed
63 with error code 16 (EBUSY: Device or resource busy)
64 at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
65 by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
66 by 0x........: main (tc20_verifywrap.c:117)
68 ----------------------------------------------------------------
70 Thread #x's call to pthread_mutex_lock failed
71 with error code 22 (EINVAL: Invalid argument)
72 at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
73 by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
74 by 0x........: main (tc20_verifywrap.c:123)
76 ----------------------------------------------------------------
78 Thread #x's call to pthread_mutex_trylock failed
79 with error code 22 (EINVAL: Invalid argument)
80 at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
81 by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
82 by 0x........: main (tc20_verifywrap.c:131)
84 ----------------------------------------------------------------
86 Thread #x's call to pthread_mutex_timedlock failed
87 with error code 22 (EINVAL: Invalid argument)
88 at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
89 by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
90 by 0x........: main (tc20_verifywrap.c:136)
92 ----------------------------------------------------------------
94 Thread #x unlocked an invalid lock at 0x........
95 at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
96 by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
97 by 0x........: main (tc20_verifywrap.c:140)
99 ----------------------------------------------------------------
101 Thread #x's call to pthread_mutex_unlock failed
102 with error code 22 (EINVAL: Invalid argument)
103 at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
104 by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
105 by 0x........: main (tc20_verifywrap.c:140)
108 ---------------- pthread_cond_wait et al ----------------
110 ----------------------------------------------------------------
112 Thread #x: pthread_cond_{timed}wait called with un-held mutex
113 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
114 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
115 by 0x........: main (tc20_verifywrap.c:162)
117 ----------------------------------------------------------------
119 Thread #x's call to pthread_cond_wait failed
120 with error code 1 (EPERM: Operation not permitted)
121 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
122 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
123 by 0x........: main (tc20_verifywrap.c:162)
125 ----------------------------------------------------------------
127 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
128 at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
129 by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
130 by 0x........: main (tc20_verifywrap.c:167)
133 FIXME: can't figure out how to verify wrap of pthread_cond_signal
135 ----------------------------------------------------------------
137 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
138 at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
139 by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
140 by 0x........: main (tc20_verifywrap.c:173)
143 FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
145 ----------------------------------------------------------------
147 Thread #x: pthread_cond_{timed}wait called with un-held mutex
148 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
149 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
150 by 0x........: main (tc20_verifywrap.c:180)
152 ----------------------------------------------------------------
154 Thread #x's call to pthread_cond_timedwait failed
155 with error code 22 (EINVAL: Invalid argument)
156 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
157 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
158 by 0x........: main (tc20_verifywrap.c:180)
161 ---------------- pthread_rwlock_* ----------------
163 ----------------------------------------------------------------
165 Thread #x unlocked a not-locked lock at 0x........
166 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
167 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
169 by 0x........: main (tc20_verifywrap.c:194)
170 Lock at 0x........ was first observed
171 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
172 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
173 by 0x........: main (tc20_verifywrap.c:193)
175 (1) no error on next line
176 (2) no error on next line
177 (3) ERROR on next line
178 ----------------------------------------------------------------
180 Thread #x unlocked a not-locked lock at 0x........
181 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
182 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
184 by 0x........: main (tc20_verifywrap.c:211)
185 Lock at 0x........ was first observed
186 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
187 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
188 by 0x........: main (tc20_verifywrap.c:201)
190 (4) no error on next line
191 (5) no error on next line
192 (6) no error on next line
193 (7) no error on next line
194 (8) ERROR on next line
195 ----------------------------------------------------------------
197 Thread #x unlocked a not-locked lock at 0x........
198 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
199 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
201 by 0x........: main (tc20_verifywrap.c:232)
202 Lock at 0x........ was first observed
203 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
204 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
205 by 0x........: main (tc20_verifywrap.c:201)
209 ---------------- pthread_spin_* ----------------
212 ---------------- sem_* ----------------
214 ----------------------------------------------------------------
216 Thread #x's call to sem_init failed
217 with error code 22 (EINVAL: Invalid argument)
218 at 0x........: sem_init_WRK (hg_intercepts.c:...)
219 by 0x........: sem_init@* (hg_intercepts.c:...)
220 by 0x........: main (tc20_verifywrap.c:267)
223 FIXME: can't figure out how to verify wrap of sem_destroy
225 ----------------------------------------------------------------
227 Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
228 at 0x........: sem_wait_WRK (hg_intercepts.c:...)
229 by 0x........: sem_wait (hg_intercepts.c:...)
230 by 0x........: main (tc20_verifywrap.c:281)
233 FIXME: can't figure out how to verify wrap of sem_post
236 ------------ dealloc of mem holding locks ------------
238 ----------------------------------------------------------------
240 Thread #x: Exiting thread still holds 1 lock
244 ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0)