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_WRK (hg_intercepts.c:...)
17   by 0x........: pthread_create@* (hg_intercepts.c:...)
18   by 0x........: main (tc20_verifywrap.c:76)
19
20----------------------------------------------------------------
21
22Possible data race during write of size 2 at 0x........ by thread #x
23Locks held: none
24   at 0x........: main (tc20_verifywrap.c:78)
25
26This conflicts with a previous write of size 2 by thread #x
27Locks held: none
28   at 0x........: racy_child (tc20_verifywrap.c:34)
29   by 0x........: mythread_wrapper (hg_intercepts.c:...)
30   ...
31
32Location 0x........ is 0 bytes inside global var "unprotected"
33declared at tc20_verifywrap.c:27
34
35----------------------------------------------------------------
36
37Thread #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)
42
43
44---------------- pthread_mutex_lock et al ----------------
45
46----------------------------------------------------------------
47
48Thread #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)
52
53----------------------------------------------------------------
54
55Thread #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)
58
59----------------------------------------------------------------
60
61Thread #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)
65
66----------------------------------------------------------------
67
68Thread #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)
72
73----------------------------------------------------------------
74
75Thread #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)
79
80----------------------------------------------------------------
81
82Thread #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)
86
87----------------------------------------------------------------
88
89Thread #x unlocked an invalid lock at 0x........
90   at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
91   by 0x........: main (tc20_verifywrap.c:125)
92
93----------------------------------------------------------------
94
95Thread #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)
99
100
101---------------- pthread_cond_wait et al ----------------
102
103----------------------------------------------------------------
104
105Thread #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)
109
110----------------------------------------------------------------
111
112Thread #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)
117
118----------------------------------------------------------------
119
120Thread #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)
124
125
126FIXME: can't figure out how to verify wrap of pthread_cond_signal
127
128----------------------------------------------------------------
129
130Thread #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)
134
135
136FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
137
138----------------------------------------------------------------
139
140Thread #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)
144
145----------------------------------------------------------------
146
147Thread #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)
152
153
154---------------- pthread_rwlock_* ----------------
155
156----------------------------------------------------------------
157
158Thread #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)
166
167(1) no error on next line
168(2) no error on next line
169(3)    ERROR on next line
170----------------------------------------------------------------
171
172Thread #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)
180
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----------------------------------------------------------------
187
188Thread #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)
196
197
198---------------- sem_* ----------------
199
200----------------------------------------------------------------
201
202Thread #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)
207
208
209FIXME: can't figure out how to verify wrap of sem_destroy
210
211----------------------------------------------------------------
212
213Thread #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)
217
218
219FIXME: can't figure out how to verify wrap of sem_post
220
221
222------------ dealloc of mem holding locks ------------
223
224----------------------------------------------------------------
225
226Thread #x: Exiting thread still holds 1 lock
227   ...
228
229
230ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0)
231