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
35 (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 pthread_mutex_init failed
47 with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
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_destroy failed
61 with error code
16 (EBUSY
: Device or resource busy
)
62 at
0x........
: mutex_destroy_WRK
(hg_intercepts.c
:...
)
63 by
0x........
: pthread_mutex_destroy
(hg_intercepts.c
:...
)
64 by
0x........
: main
(tc20_verifywrap.c
:117)
66 ----------------------------------------------------------------
68 Thread #x
's call to pthread_mutex_lock failed
69 with error code 22 (EINVAL: Invalid argument)
70 at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
71 by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
72 by 0x........: main (tc20_verifywrap.c:123)
74 ----------------------------------------------------------------
76 Thread #x's
call to pthread_mutex_trylock failed
77 with error code
22 (EINVAL
: Invalid
argument)
78 at
0x........
: mutex_trylock_WRK
(hg_intercepts.c
:...
)
79 by
0x........
: pthread_mutex_trylock
(hg_intercepts.c
:...
)
80 by
0x........
: main
(tc20_verifywrap.c
:131)
82 ----------------------------------------------------------------
84 Thread #x
's call to pthread_mutex_timedlock failed
85 with error code 22 (EINVAL: Invalid argument)
86 at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
87 by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
88 by 0x........: main (tc20_verifywrap.c:136)
90 ----------------------------------------------------------------
92 Thread #x unlocked an invalid lock at 0x........
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)
97 ----------------------------------------------------------------
99 Thread #x's
call to pthread_mutex_unlock failed
100 with error code
22 (EINVAL
: Invalid
argument)
101 at
0x........
: mutex_unlock_WRK
(hg_intercepts.c
:...
)
102 by
0x........
: pthread_mutex_unlock
(hg_intercepts.c
:...
)
103 by
0x........
: main
(tc20_verifywrap.c
:140)
106 ---------------- pthread_cond_wait et al
----------------
108 ----------------------------------------------------------------
110 Thread #x
: pthread_cond_
{timed
}wait called with un
-held mutex
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
's call to pthread_cond_wait failed
118 with error code 1 (EPERM: Operation not permitted)
119 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
120 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
121 by 0x........: main (tc20_verifywrap.c:162)
123 ----------------------------------------------------------------
125 Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
126 at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
127 by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
128 by 0x........: main (tc20_verifywrap.c:167)
131 FIXME: can't figure out how to verify wrap of pthread_cond_signal
133 ----------------------------------------------------------------
135 Thread #x
: pthread_cond_
{signal,broadcast
}: dubious
: associated lock is not held by
any thread
136 at
0x........
: pthread_cond_broadcast_WRK
(hg_intercepts.c
:...
)
137 by
0x........
: pthread_cond_broadcast@
* (hg_intercepts.c
:...
)
138 by
0x........
: main
(tc20_verifywrap.c
:173)
141 FIXME
: can
't figure out how to verify wrap of pthread_broadcast_signal
143 ----------------------------------------------------------------
145 Thread #x: pthread_cond_{timed}wait called with un-held mutex
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)
150 ----------------------------------------------------------------
152 Thread #x's
call to pthread_cond_timedwait failed
153 with error code
22 (EINVAL
: Invalid
argument)
154 at
0x........
: pthread_cond_timedwait_WRK
(hg_intercepts.c
:...
)
155 by
0x........
: pthread_cond_timedwait@
* (hg_intercepts.c
:...
)
156 by
0x........
: main
(tc20_verifywrap.c
:180)
159 ---------------- pthread_rwlock_
* ----------------
161 ----------------------------------------------------------------
163 Thread #x unlocked a not
-locked lock at
0x........
164 at
0x........
: pthread_rwlock_unlock_WRK
(hg_intercepts.c
:...
)
165 by
0x........
: pthread_rwlock_unlock
(hg_intercepts.c
:...
)
167 by
0x........
: main
(tc20_verifywrap.c
:194)
168 Lock at
0x........ was first observed
169 at
0x........
: pthread_rwlock_init_WRK
(hg_intercepts.c
:...
)
170 by
0x........
: pthread_rwlock_init
(hg_intercepts.c
:...
)
171 by
0x........
: main
(tc20_verifywrap.c
:193)
172 Location
0x........ is
0 bytes inside local var
"rwl"
173 declared at tc20_verifywrap.c
:57, in frame #x of thread x
176 (1) no error
on next line
177 (2) no error
on next line
178 (3) ERROR
on next line
179 ----------------------------------------------------------------
181 Thread #x unlocked a not
-locked lock at
0x........
182 at
0x........
: pthread_rwlock_unlock_WRK
(hg_intercepts.c
:...
)
183 by
0x........
: pthread_rwlock_unlock
(hg_intercepts.c
:...
)
185 by
0x........
: main
(tc20_verifywrap.c
:211)
186 Lock at
0x........ was first observed
187 at
0x........
: pthread_rwlock_init_WRK
(hg_intercepts.c
:...
)
188 by
0x........
: pthread_rwlock_init
(hg_intercepts.c
:...
)
189 by
0x........
: main
(tc20_verifywrap.c
:201)
190 Location
0x........ is
0 bytes inside local var
"rwl2"
191 declared at tc20_verifywrap.c
:58, in frame #x of thread x
194 (4) no error
on next line
195 (5) no error
on next line
196 (6) no error
on next line
197 (7) no error
on next line
198 (8) ERROR
on next line
199 ----------------------------------------------------------------
201 Thread #x unlocked a not
-locked lock at
0x........
202 at
0x........
: pthread_rwlock_unlock_WRK
(hg_intercepts.c
:...
)
203 by
0x........
: pthread_rwlock_unlock
(hg_intercepts.c
:...
)
205 by
0x........
: main
(tc20_verifywrap.c
:232)
206 Lock at
0x........ was first observed
207 at
0x........
: pthread_rwlock_init_WRK
(hg_intercepts.c
:...
)
208 by
0x........
: pthread_rwlock_init
(hg_intercepts.c
:...
)
209 by
0x........
: main
(tc20_verifywrap.c
:201)
210 Location
0x........ is
0 bytes inside local var
"rwl2"
211 declared at tc20_verifywrap.c
:58, in frame #x of thread x
215 ---------------- pthread_spin_
* ----------------
218 ---------------- sem_
* ----------------
220 ----------------------------------------------------------------
222 Thread #x
's call to sem_init failed
223 with error code 22 (EINVAL: Invalid argument)
224 at 0x........: sem_init_WRK (hg_intercepts.c:...)
225 by 0x........: sem_init@* (hg_intercepts.c:...)
226 by 0x........: main (tc20_verifywrap.c:267)
229 FIXME: can't figure out how to verify wrap of sem_destroy
231 ----------------------------------------------------------------
233 Thread #x
: Bug in libpthread
: sem_wait succeeded
on semaphore without prior sem_post
234 at
0x........
: sem_wait_WRK
(hg_intercepts.c
:...
)
235 by
0x........
: sem_wait
(hg_intercepts.c
:...
)
236 by
0x........
: main
(tc20_verifywrap.c
:281)
238 ----------------------------------------------------------------
240 Thread #x
's call to sem_post failed
241 with error code 22 (EINVAL: Invalid argument)
242 at 0x........: sem_post_WRK (hg_intercepts.c:...)
243 by 0x........: sem_post (hg_intercepts.c:...)
245 by 0x........: main (tc20_verifywrap.c:284)
248 FIXME: can't figure out how to verify wrap of sem_post
251 ------------ dealloc of mem holding locks
------------
253 ----------------------------------------------------------------
255 Thread #x
: Exiting thread still holds
1 lock
259 ERROR SUMMARY
: 23 errors from
23 contexts
(suppressed
: 0 from
0)