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
165(1) no error on next line
166(2) no error on next line
167(3)    ERROR on next line
168----------------------------------------------------------------
169
170Thread #x unlocked a not-locked lock at 0x........
171   at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
172   by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
173   by 0x........: main (tc20_verifywrap.c:196)
174  Lock at 0x........ was first observed
175   at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
176   by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
177   by 0x........: main (tc20_verifywrap.c:186)
178
179(4) no error on next line
180(5) no error on next line
181(6) no error on next line
182(7) no error on next line
183(8)    ERROR on next line
184----------------------------------------------------------------
185
186Thread #x unlocked a not-locked lock at 0x........
187   at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
188   by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
189   by 0x........: main (tc20_verifywrap.c:212)
190  Lock at 0x........ was first observed
191   at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
192   by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
193   by 0x........: main (tc20_verifywrap.c:186)
194
195
196---------------- sem_* ----------------
197
198----------------------------------------------------------------
199
200Thread #x's call to sem_init failed
201   with error code 22 (EINVAL: Invalid argument)
202   at 0x........: sem_init_WRK (hg_intercepts.c:...)
203   by 0x........: sem_init@* (hg_intercepts.c:...)
204   by 0x........: main (tc20_verifywrap.c:228)
205
206
207FIXME: can't figure out how to verify wrap of sem_destroy
208
209----------------------------------------------------------------
210
211Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
212   at 0x........: sem_wait_WRK (hg_intercepts.c:...)
213   by 0x........: sem_wait (hg_intercepts.c:...)
214   by 0x........: main (tc20_verifywrap.c:242)
215
216----------------------------------------------------------------
217
218Thread #x's call to sem_post failed
219   with error code 22 (EINVAL: Invalid argument)
220   at 0x........: sem_post_WRK (hg_intercepts.c:...)
221   by 0x........: sem_post (hg_intercepts.c:...)
222   by 0x........: main (tc20_verifywrap.c:245)
223
224
225FIXME: can't figure out how to verify wrap of sem_post
226
227
228------------ dealloc of mem holding locks ------------
229
230----------------------------------------------------------------
231
232Thread #x: Exiting thread still holds 1 lock
233   ...
234
235
236ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
237