1
2
3
4------ This is output for >= glibc 2.4 ------
5
6---------------- pthread_create/join ----------------
7
8---Thread-Announcement------------------------------------------
9
10Thread #x is the program's root thread
11
12---Thread-Announcement------------------------------------------
13
14Thread #x was created
15   ...
16   by 0x........: pthread_create@* (hg_intercepts.c:...)
17   by 0x........: main (tc20_verifywrap.c:76)
18
19----------------------------------------------------------------
20
21Possible data race during write of size 2 at 0x........ by thread #x
22Locks held: none
23   at 0x........: main (tc20_verifywrap.c:78)
24
25This conflicts with a previous write of size 2 by thread #x
26Locks held: none
27   at 0x........: racy_child (tc20_verifywrap.c:34)
28   by 0x........: mythread_wrapper (hg_intercepts.c:...)
29   ...
30 Location 0x........ is 0 bytes inside global var "unprotected"
31 declared at tc20_verifywrap.c:27
32
33----------------------------------------------------------------
34
35Thread #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:83)
40
41
42---------------- pthread_mutex_lock et al ----------------
43
44----------------------------------------------------------------
45
46Thread #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:92)
50
51----------------------------------------------------------------
52
53Thread #x: pthread_mutex_destroy of a locked mutex
54   at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
55   by 0x........: main (tc20_verifywrap.c:102)
56
57----------------------------------------------------------------
58
59Thread #x's call to pthread_mutex_destroy failed
60   with error code 16 (EBUSY: Device or resource busy)
61   at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
62   by 0x........: main (tc20_verifywrap.c:102)
63
64----------------------------------------------------------------
65
66Thread #x's call to pthread_mutex_lock failed
67   with error code 22 (EINVAL: Invalid argument)
68   at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
69   by 0x........: main (tc20_verifywrap.c:108)
70
71----------------------------------------------------------------
72
73Thread #x's call to pthread_mutex_trylock failed
74   with error code 22 (EINVAL: Invalid argument)
75   at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
76   by 0x........: main (tc20_verifywrap.c:116)
77
78----------------------------------------------------------------
79
80Thread #x's call to pthread_mutex_timedlock failed
81   with error code 22 (EINVAL: Invalid argument)
82   at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
83   by 0x........: main (tc20_verifywrap.c:121)
84
85----------------------------------------------------------------
86
87Thread #x unlocked an invalid lock at 0x........
88   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
89   by 0x........: main (tc20_verifywrap.c:125)
90
91----------------------------------------------------------------
92
93Thread #x's call to pthread_mutex_unlock failed
94   with error code 22 (EINVAL: Invalid argument)
95   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
96   by 0x........: main (tc20_verifywrap.c:125)
97
98
99---------------- pthread_cond_wait et al ----------------
100
101----------------------------------------------------------------
102
103Thread #x: pthread_cond_{timed}wait called with un-held mutex
104   at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
105   by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
106   by 0x........: main (tc20_verifywrap.c:147)
107
108----------------------------------------------------------------
109
110Thread #x's call to pthread_cond_wait failed
111   with error code 1 (EPERM: Operation not permitted)
112   at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
113   by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
114   by 0x........: main (tc20_verifywrap.c:147)
115
116----------------------------------------------------------------
117
118Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
119   at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
120   by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
121   by 0x........: main (tc20_verifywrap.c:152)
122
123
124FIXME: can't figure out how to verify wrap of pthread_cond_signal
125
126----------------------------------------------------------------
127
128Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
129   at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
130   by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
131   by 0x........: main (tc20_verifywrap.c:158)
132
133
134FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
135
136----------------------------------------------------------------
137
138Thread #x: pthread_cond_{timed}wait called with un-held mutex
139   at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
140   by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
141   by 0x........: main (tc20_verifywrap.c:165)
142
143----------------------------------------------------------------
144
145Thread #x's call to pthread_cond_timedwait failed
146   with error code 22 (EINVAL: Invalid argument)
147   at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
148   by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
149   by 0x........: main (tc20_verifywrap.c:165)
150
151
152---------------- pthread_rwlock_* ----------------
153
154----------------------------------------------------------------
155
156Thread #x unlocked a not-locked lock at 0x........
157   at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
158   by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
159   by 0x........: main (tc20_verifywrap.c:179)
160 Lock at 0x........ was first observed
161   at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
162   by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
163   by 0x........: main (tc20_verifywrap.c:178)
164 Location 0x........ is 0 bytes inside local var "rwl"
165 declared at tc20_verifywrap.c:47, in frame #x of thread x
166
167
168(1) no error on next line
169(2) no error on next line
170(3)    ERROR on next line
171----------------------------------------------------------------
172
173Thread #x unlocked a not-locked lock at 0x........
174   at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
175   by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
176   by 0x........: main (tc20_verifywrap.c:196)
177 Lock at 0x........ was first observed
178   at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
179   by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
180   by 0x........: main (tc20_verifywrap.c:186)
181 Location 0x........ is 0 bytes inside local var "rwl2"
182 declared at tc20_verifywrap.c:48, in frame #x of thread x
183
184
185(4) no error on next line
186(5) no error on next line
187(6) no error on next line
188(7) no error on next line
189(8)    ERROR on next line
190----------------------------------------------------------------
191
192Thread #x unlocked a not-locked lock at 0x........
193   at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
194   by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
195   by 0x........: main (tc20_verifywrap.c:212)
196 Lock at 0x........ was first observed
197   at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
198   by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
199   by 0x........: main (tc20_verifywrap.c:186)
200 Location 0x........ is 0 bytes inside local var "rwl2"
201 declared at tc20_verifywrap.c:48, in frame #x of thread x
202
203
204
205---------------- sem_* ----------------
206
207----------------------------------------------------------------
208
209Thread #x's call to sem_init failed
210   with error code 22 (EINVAL: Invalid argument)
211   at 0x........: sem_init_WRK (hg_intercepts.c:...)
212   by 0x........: sem_init@* (hg_intercepts.c:...)
213   by 0x........: main (tc20_verifywrap.c:228)
214
215
216FIXME: can't figure out how to verify wrap of sem_destroy
217
218----------------------------------------------------------------
219
220Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
221   at 0x........: sem_wait_WRK (hg_intercepts.c:...)
222   by 0x........: sem_wait (hg_intercepts.c:...)
223   by 0x........: main (tc20_verifywrap.c:242)
224
225----------------------------------------------------------------
226
227Thread #x's call to sem_post failed
228   with error code 22 (EINVAL: Invalid argument)
229   at 0x........: sem_post_WRK (hg_intercepts.c:...)
230   by 0x........: sem_post (hg_intercepts.c:...)
231   by 0x........: main (tc20_verifywrap.c:245)
232
233
234FIXME: can't figure out how to verify wrap of sem_post
235
236
237------------ dealloc of mem holding locks ------------
238
239----------------------------------------------------------------
240
241Thread #x: Exiting thread still holds 1 lock
242   ...
243
244
245ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
246