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_lock failed 60 with error code 22 (EINVAL: Invalid argument) 61 at 0x........: pthread_mutex_lock (hg_intercepts.c:...) 62 by 0x........: main (tc20_verifywrap.c:108) 63 64---------------------------------------------------------------- 65 66Thread #x's call to pthread_mutex_trylock failed 67 with error code 22 (EINVAL: Invalid argument) 68 at 0x........: pthread_mutex_trylock (hg_intercepts.c:...) 69 by 0x........: main (tc20_verifywrap.c:116) 70 71---------------------------------------------------------------- 72 73Thread #x's call to pthread_mutex_timedlock failed 74 with error code 22 (EINVAL: Invalid argument) 75 at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) 76 by 0x........: main (tc20_verifywrap.c:121) 77 78---------------------------------------------------------------- 79 80Thread #x unlocked an invalid lock at 0x........ 81 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 82 by 0x........: main (tc20_verifywrap.c:125) 83 84---------------------------------------------------------------- 85 86Thread #x's call to pthread_mutex_unlock failed 87 with error code 22 (EINVAL: Invalid argument) 88 at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) 89 by 0x........: main (tc20_verifywrap.c:125) 90 91 92---------------- pthread_cond_wait et al ---------------- 93 94---------------------------------------------------------------- 95 96Thread #x: pthread_cond_{timed}wait called with un-held mutex 97 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) 98 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) 99 by 0x........: main (tc20_verifywrap.c:147) 100 101---------------------------------------------------------------- 102 103Thread #x's call to pthread_cond_wait failed 104 with error code 1 (EPERM: Operation not permitted) 105 at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) 106 by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) 107 by 0x........: main (tc20_verifywrap.c:147) 108 109---------------------------------------------------------------- 110 111Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread 112 at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) 113 by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) 114 by 0x........: main (tc20_verifywrap.c:152) 115 116 117FIXME: can't figure out how to verify wrap of pthread_cond_signal 118 119---------------------------------------------------------------- 120 121Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread 122 at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) 123 by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) 124 by 0x........: main (tc20_verifywrap.c:158) 125 126 127FIXME: can't figure out how to verify wrap of pthread_broadcast_signal 128 129---------------------------------------------------------------- 130 131Thread #x: pthread_cond_{timed}wait called with un-held mutex 132 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) 133 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) 134 by 0x........: main (tc20_verifywrap.c:165) 135 136---------------------------------------------------------------- 137 138Thread #x's call to pthread_cond_timedwait failed 139 with error code 22 (EINVAL: Invalid argument) 140 at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) 141 by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) 142 by 0x........: main (tc20_verifywrap.c:165) 143 144 145---------------- pthread_rwlock_* ---------------- 146 147---------------------------------------------------------------- 148 149Thread #x unlocked a not-locked lock at 0x........ 150 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) 151 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) 152 by 0x........: main (tc20_verifywrap.c:179) 153 Lock at 0x........ was first observed 154 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) 155 by 0x........: pthread_rwlock_init (hg_intercepts.c:...) 156 by 0x........: main (tc20_verifywrap.c:178) 157 158(1) no error on next line 159(2) no error on next line 160(3) ERROR on next line 161---------------------------------------------------------------- 162 163Thread #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:...) 166 by 0x........: main (tc20_verifywrap.c:196) 167 Lock at 0x........ was first observed 168 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) 169 by 0x........: pthread_rwlock_init (hg_intercepts.c:...) 170 by 0x........: main (tc20_verifywrap.c:186) 171 172(4) no error on next line 173(5) no error on next line 174(6) no error on next line 175(7) no error on next line 176(8) ERROR on next line 177---------------------------------------------------------------- 178 179Thread #x unlocked a not-locked lock at 0x........ 180 at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) 181 by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) 182 by 0x........: main (tc20_verifywrap.c:212) 183 Lock at 0x........ was first observed 184 at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) 185 by 0x........: pthread_rwlock_init (hg_intercepts.c:...) 186 by 0x........: main (tc20_verifywrap.c:186) 187 188 189---------------- sem_* ---------------- 190 191---------------------------------------------------------------- 192 193Thread #x's call to sem_init failed 194 with error code 22 (EINVAL: Invalid argument) 195 at 0x........: sem_init_WRK (hg_intercepts.c:...) 196 by 0x........: sem_init@* (hg_intercepts.c:...) 197 by 0x........: main (tc20_verifywrap.c:228) 198 199 200FIXME: can't figure out how to verify wrap of sem_destroy 201 202---------------------------------------------------------------- 203 204Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post 205 at 0x........: sem_wait_WRK (hg_intercepts.c:...) 206 by 0x........: sem_wait (hg_intercepts.c:...) 207 by 0x........: main (tc20_verifywrap.c:242) 208 209---------------------------------------------------------------- 210 211Thread #x's call to sem_post failed 212 with error code 22 (EINVAL: Invalid argument) 213 at 0x........: sem_post_WRK (hg_intercepts.c:...) 214 by 0x........: sem_post (hg_intercepts.c:...) 215 by 0x........: main (tc20_verifywrap.c:245) 216 217 218FIXME: can't figure out how to verify wrap of sem_post 219 220 221------------ dealloc of mem holding locks ------------ 222 223---------------------------------------------------------------- 224 225Thread #x: Exiting thread still holds 1 lock 226 ... 227 228 229ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0) 230