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 45 (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 122 (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