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:76)
20 ----------------------------------------------------------------
22 Possible data race during write of size 2 at 0x........ by thread #x
24 at 0x........: main (tc20_verifywrap.c:78)
26 This conflicts with a previous write of size 2 by thread #x
28 at 0x........: racy_child (tc20_verifywrap.c:34)
29 by 0x........: mythread_wrapper (hg_intercepts.c:...)
32 Location 0x........ is 0 bytes inside global var "unprotected"
33 declared at tc20_verifywrap.c:27
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:83)
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:92)
53 ----------------------------------------------------------------
55 Thread #x: pthread_mutex_destroy of a locked mutex
56 at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
57 by 0x........: main (tc20_verifywrap.c:102)
59 ----------------------------------------------------------------
61 Thread #x's call to pthread_mutex_destroy failed
62 with error code 16 (EBUSY: Device or resource busy)
63 at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
64 by 0x........: main (tc20_verifywrap.c:102)
66 ----------------------------------------------------------------
68 Thread #x's call to pthread_mutex_lock failed
69 with error code 22 (EINVAL: Invalid argument)
70 at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
71 by 0x........: main (tc20_verifywrap.c:108)
73 ----------------------------------------------------------------
75 Thread #x's call to pthread_mutex_trylock failed
76 with error code 22 (EINVAL: Invalid argument)
77 at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
78 by 0x........: main (tc20_verifywrap.c:116)
80 ----------------------------------------------------------------
82 Thread #x's call to pthread_mutex_timedlock failed
83 with error code 22 (EINVAL: Invalid argument)
84 at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
85 by 0x........: main (tc20_verifywrap.c:121)
87 ----------------------------------------------------------------
89 Thread #x unlocked an invalid lock at 0x........
90 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
91 by 0x........: main (tc20_verifywrap.c:125)
93 ----------------------------------------------------------------
95 Thread #x's call to pthread_mutex_unlock failed
96 with error code 22 (EINVAL: Invalid argument)
97 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
98 by 0x........: main (tc20_verifywrap.c:125)
101 ---------------- pthread_cond_wait et al ----------------
103 ----------------------------------------------------------------
105 Thread #x: pthread_cond_{timed}wait called with un-held mutex
106 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
107 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
108 by 0x........: main (tc20_verifywrap.c:147)
110 ----------------------------------------------------------------
112 Thread #x's call to pthread_cond_wait failed
113 with error code 1 (EPERM: Operation not permitted)
114 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
115 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
116 by 0x........: main (tc20_verifywrap.c:147)
118 ----------------------------------------------------------------
120 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
121 at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
122 by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
123 by 0x........: main (tc20_verifywrap.c:152)
126 FIXME: can't figure out how to verify wrap of pthread_cond_signal
128 ----------------------------------------------------------------
130 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
131 at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
132 by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
133 by 0x........: main (tc20_verifywrap.c:158)
136 FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
138 ----------------------------------------------------------------
140 Thread #x: pthread_cond_{timed}wait called with un-held mutex
141 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
142 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
143 by 0x........: main (tc20_verifywrap.c:165)
145 ----------------------------------------------------------------
147 Thread #x's call to pthread_cond_timedwait failed
148 with error code 22 (EINVAL: Invalid argument)
149 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
150 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
151 by 0x........: main (tc20_verifywrap.c:165)
154 ---------------- pthread_rwlock_* ----------------
156 ----------------------------------------------------------------
158 Thread #x unlocked a not-locked lock at 0x........
159 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
160 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
161 by 0x........: main (tc20_verifywrap.c:179)
162 Lock at 0x........ was first observed
163 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
164 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
165 by 0x........: main (tc20_verifywrap.c:178)
167 (1) no error on next line
168 (2) no error on next line
169 (3) ERROR on next line
170 ----------------------------------------------------------------
172 Thread #x unlocked a not-locked lock at 0x........
173 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
174 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
175 by 0x........: main (tc20_verifywrap.c:196)
176 Lock at 0x........ was first observed
177 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
178 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
179 by 0x........: main (tc20_verifywrap.c:186)
181 (4) no error on next line
182 (5) no error on next line
183 (6) no error on next line
184 (7) no error on next line
185 (8) ERROR on next line
186 ----------------------------------------------------------------
188 Thread #x unlocked a not-locked lock at 0x........
189 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
190 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
191 by 0x........: main (tc20_verifywrap.c:212)
192 Lock at 0x........ was first observed
193 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
194 by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
195 by 0x........: main (tc20_verifywrap.c:186)
198 ---------------- sem_* ----------------
200 ----------------------------------------------------------------
202 Thread #x's call to sem_init failed
203 with error code 22 (EINVAL: Invalid argument)
204 at 0x........: sem_init_WRK (hg_intercepts.c:...)
205 by 0x........: sem_init@* (hg_intercepts.c:...)
206 by 0x........: main (tc20_verifywrap.c:228)
209 FIXME: can't figure out how to verify wrap of sem_destroy
211 ----------------------------------------------------------------
213 Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
214 at 0x........: sem_wait_WRK (hg_intercepts.c:...)
215 by 0x........: sem_wait (hg_intercepts.c:...)
216 by 0x........: main (tc20_verifywrap.c:242)
219 FIXME: can't figure out how to verify wrap of sem_post
222 ------------ dealloc of mem holding locks ------------
224 ----------------------------------------------------------------
226 Thread #x: Exiting thread still holds 1 lock
230 ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0)