Patch provided by: Jason Dillaman <dillaman@redhat.com>.
Fixes BZ #357871.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15756
return ret;
}
#if defined(VGO_linux)
- PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy
+ PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy
pthread_spinlock_t *lock) {
return pthread_spin_destroy_WRK(lock);
}
#elif defined(VGO_darwin)
#elif defined(VGO_solaris)
- PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy
+ PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy
pthread_spinlock_t *lock) {
return pthread_spin_destroy_WRK(lock);
}
#endif
#endif /* __sun__ */
+typedef union {
+ pthread_spinlock_t spinlock;
+ pthread_rwlock_t rwlock;
+} spin_rw_lock;
+
short unprotected = 0;
void* lazy_child ( void* v ) {
r= pthread_rwlock_init( &rwl3, NULL ); assert(!r);
r= pthread_rwlock_rdlock( &rwl3 ); assert(!r);
+ /* --------- pthread_spin_* --------- */
+
+ fprintf(stderr,
+ "\n---------------- pthread_spin_* ----------------\n\n");
+
+ /* The following sequence verifies correct wrapping of pthread_spin_init()
+ and pthread_spin_destroy(). */
+ spin_rw_lock srwl1;
+ pthread_spin_init(&srwl1.spinlock, PTHREAD_PROCESS_PRIVATE);
+ pthread_spin_destroy(&srwl1.spinlock);
+
+ pthread_rwlock_init(&srwl1.rwlock, NULL);
+ pthread_rwlock_destroy(&srwl1.rwlock);
+
/* ------------- sem_* ------------- */
/* This is pretty lame, and duplicates tc18_semabuse.c. */
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 35 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 16 (EBUSY: Device or resource busy)
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
Location 0x........ is 0 bytes inside local var "rwl"
- declared at tc20_verifywrap.c:52, in frame #x of thread x
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
(1) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
(4) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:248)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:262)
+ by 0x........: main (tc20_verifywrap.c:281)
----------------------------------------------------------------
at 0x........: sem_post_WRK (hg_intercepts.c:...)
by 0x........: sem_post (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:265)
+ by 0x........: main (tc20_verifywrap.c:284)
FIXME: can't figure out how to verify wrap of sem_post
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 35 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
(1) no error on next line
(2) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
(4) no error on next line
(5) no error on next line
Thread #x unlocked a not-locked lock at 0x........
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
+
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:243)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:257)
+ by 0x........: main (tc20_verifywrap.c:281)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_post_WRK (hg_intercepts.c:...)
by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:260)
+ by 0x........: main (tc20_verifywrap.c:284)
FIXME: can't figure out how to verify wrap of sem_post
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 35 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 16 (EBUSY: Device or resource busy)
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
Location 0x........ is 0 bytes inside local var "rwl"
- declared at tc20_verifywrap.c:52, in frame #x of thread x
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
(1) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
(4) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:248)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:262)
+ by 0x........: main (tc20_verifywrap.c:281)
FIXME: can't figure out how to verify wrap of sem_post
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 45 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 122 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 16 (EBUSY: Device or resource busy)
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
Location 0x........ is 0 bytes inside local var "rwl"
- declared at tc20_verifywrap.c:52, in frame #x of thread x
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
(1) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
(4) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:248)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:262)
+ by 0x........: main (tc20_verifywrap.c:281)
FIXME: can't figure out how to verify wrap of sem_post
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 45 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 122 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 16 (EBUSY: Device or resource busy)
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
Location 0x........ is 0 bytes inside local var "rwl"
- declared at tc20_verifywrap.c:52, in frame #x of thread x
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
(1) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
(4) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside local var "rwl2"
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:248)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:262)
+ by 0x........: main (tc20_verifywrap.c:281)
----------------------------------------------------------------
at 0x........: sem_post_WRK (hg_intercepts.c:...)
by 0x........: sem_post (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:265)
+ by 0x........: main (tc20_verifywrap.c:284)
FIXME: can't figure out how to verify wrap of sem_post
...
by 0x........: pthread_create_WRK (hg_intercepts.c:...)
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
-declared at tc20_verifywrap.c:32
+declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 35 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to pthread_mutex_init failed
with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 16 (EBUSY: Device or resource busy)
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
(1) no error on next line
(2) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
(4) no error on next line
(5) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
+
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sem_init_WRK (hg_intercepts.c:...)
by 0x........: sem_init@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:243)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy
Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
by 0x........: sem_wait (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:257)
+ by 0x........: main (tc20_verifywrap.c:281)
FIXME: can't figure out how to verify wrap of sem_post
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:81)
+ by 0x........: main (tc20_verifywrap.c:86)
----------------------------------------------------------------
Possible data race during write of size 2 at 0x........ by thread #x
Locks held: none
- at 0x........: main (tc20_verifywrap.c:83)
+ at 0x........: main (tc20_verifywrap.c:88)
This conflicts with a previous write of size 2 by thread #x
Locks held: none
- at 0x........: racy_child (tc20_verifywrap.c:39)
+ at 0x........: racy_child (tc20_verifywrap.c:44)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
Location 0x........ is 0 bytes inside global var "unprotected"
- declared at tc20_verifywrap.c:32
+ declared at tc20_verifywrap.c:37
----------------------------------------------------------------
with error code 45 (EDEADLK: Resource deadlock would occur)
at 0x........: pthread_join_WRK (hg_intercepts.c:...)
by 0x........: pthread_join (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:88)
+ by 0x........: main (tc20_verifywrap.c:93)
---------------- pthread_mutex_lock et al ----------------
Thread #x's call to mutex_init failed
with error code 22 (EINVAL: Invalid argument)
at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:102)
+ by 0x........: main (tc20_verifywrap.c:107)
----------------------------------------------------------------
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: mutex_destroy_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:112)
+ by 0x........: main (tc20_verifywrap.c:117)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: mutex_lock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:118)
+ by 0x........: main (tc20_verifywrap.c:123)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: mutex_trylock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:126)
+ by 0x........: main (tc20_verifywrap.c:131)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:131)
+ by 0x........: main (tc20_verifywrap.c:136)
----------------------------------------------------------------
Thread #x unlocked an invalid lock at 0x........
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: mutex_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:135)
+ by 0x........: main (tc20_verifywrap.c:140)
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:157)
+ by 0x........: main (tc20_verifywrap.c:162)
----------------------------------------------------------------
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_signal@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:162)
+ by 0x........: main (tc20_verifywrap.c:167)
FIXME: can't figure out how to verify wrap of pthread_cond_signal
Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread
at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:168)
+ by 0x........: main (tc20_verifywrap.c:173)
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
----------------------------------------------------------------
with error code 1 (EPERM: Operation not permitted)
at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:175)
+ by 0x........: main (tc20_verifywrap.c:180)
---------------- pthread_rwlock_* ----------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:188)
+ by 0x........: main (tc20_verifywrap.c:193)
Location 0x........ is 0 bytes inside rwl.__pthread_rwlock_readers,
- declared at tc20_verifywrap.c:52, in frame #x of thread x
+ declared at tc20_verifywrap.c:57, in frame #x of thread x
----------------------------------------------------------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:189)
+ by 0x........: main (tc20_verifywrap.c:194)
(1) no error on next line
(2) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
----------------------------------------------------------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:206)
+ by 0x........: main (tc20_verifywrap.c:211)
(4) no error on next line
(5) no error on next line
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
Lock at 0x........ was first observed
at 0x........: pthread_rwlock_init (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:196)
+ by 0x........: main (tc20_verifywrap.c:201)
Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers,
- declared at tc20_verifywrap.c:53, in frame #x of thread x
+ declared at tc20_verifywrap.c:58, in frame #x of thread x
----------------------------------------------------------------
at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...)
by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:227)
+ by 0x........: main (tc20_verifywrap.c:232)
+
+
+
+---------------- pthread_spin_* ----------------
---------------- sem_* ----------------
with error code 22 (EINVAL: Invalid argument)
at 0x........: sema_init (hg_intercepts.c:...)
...
- by 0x........: main (tc20_verifywrap.c:248)
+ by 0x........: main (tc20_verifywrap.c:267)
FIXME: can't figure out how to verify wrap of sem_destroy