PTH_FUNC(ret_ty, zf ## ZDZa, implf, argl_decl, argl);
/*
- * Macros for controlling inlining explicitly such that call stacks in
- * regression tests do not depend on compiler optimization options.
+ * Not inlining one of the intercept functions will cause the regression
+ * tests to fail because this would cause an additional stackfram to appear
+ * in the output. The __always_inline macro guarantees that inlining will
+ * happen, even when compiling with optimization disabled.
*/
#undef __always_inline /* since already defined in <cdefs.h> */
#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 2
#else
#define __always_inline __inline__
#endif
-#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 2
-#define __never_inline __attribute__((noinline))
-#else
-#define __never_inline
-#endif
/* Local data structures. */
* glibc-2.9/nptl/pthread_create.c.
*/
-static __never_inline
+static __always_inline
int pthread_create_intercept(pthread_t* thread, const pthread_attr_t* attr,
void* (*start)(void*), void* arg)
{
void *(*start) (void *), void *arg),
(thread, attr, start, arg));
-static __never_inline
+static __always_inline
int pthread_join_intercept(pthread_t pt_joinee, void **thread_return)
{
int ret;
(pthread_t pt_joinee, void **thread_return),
(pt_joinee, thread_return));
-static __never_inline
+static __always_inline
int pthread_detach_intercept(pthread_t pt_thread)
{
int ret;
// NOTE: be careful to intercept only pthread_cancel() and not
// pthread_cancel_init() on Linux.
-static __never_inline
+static __always_inline
int pthread_cancel_intercept(pthread_t pt_thread)
{
int res;
PTH_FUNCS(int, pthreadZucancel, pthread_cancel_intercept,
(pthread_t thread), (thread))
-static __never_inline
+static __always_inline
int pthread_once_intercept(pthread_once_t *once_control,
void (*init_routine)(void))
{
(pthread_once_t *once_control, void (*init_routine)(void)),
(once_control, init_routine));
-static __never_inline
+static __always_inline
int pthread_mutex_init_intercept(pthread_mutex_t *mutex,
const pthread_mutexattr_t* attr)
{
(pthread_mutex_t *mutex, const pthread_mutexattr_t* attr),
(mutex, attr));
-static __never_inline
+static __always_inline
int pthread_mutex_destroy_intercept(pthread_mutex_t* mutex)
{
int ret;
PTH_FUNCS(int, pthreadZumutexZudestroy, pthread_mutex_destroy_intercept,
(pthread_mutex_t *mutex), (mutex));
-static __never_inline
+static __always_inline
int pthread_mutex_lock_intercept(pthread_mutex_t* mutex)
{
int ret;
PTH_FUNCS(int, pthreadZumutexZulock, pthread_mutex_lock_intercept,
(pthread_mutex_t *mutex), (mutex));
-static __never_inline
+static __always_inline
int pthread_mutex_trylock_intercept(pthread_mutex_t* mutex)
{
int ret;
PTH_FUNCS(int, pthreadZumutexZutrylock, pthread_mutex_trylock_intercept,
(pthread_mutex_t *mutex), (mutex));
-static __never_inline
+static __always_inline
int pthread_mutex_timedlock_intercept(pthread_mutex_t *mutex,
const struct timespec *abs_timeout)
{
(pthread_mutex_t *mutex, const struct timespec *abs_timeout),
(mutex, abs_timeout));
-static __never_inline
+static __always_inline
int pthread_mutex_unlock_intercept(pthread_mutex_t *mutex)
{
int ret;
PTH_FUNCS(int, pthreadZumutexZuunlock, pthread_mutex_unlock_intercept,
(pthread_mutex_t *mutex), (mutex));
-static __never_inline
+static __always_inline
int pthread_cond_init_intercept(pthread_cond_t* cond,
const pthread_condattr_t* attr)
{
(pthread_cond_t* cond, const pthread_condattr_t* attr),
(cond, attr));
-static __never_inline
+static __always_inline
int pthread_cond_destroy_intercept(pthread_cond_t* cond)
{
int ret;
PTH_FUNCS(int, pthreadZucondZudestroy, pthread_cond_destroy_intercept,
(pthread_cond_t* cond), (cond));
-static __never_inline
+static __always_inline
int pthread_cond_wait_intercept(pthread_cond_t *cond, pthread_mutex_t *mutex)
{
int ret;
(pthread_cond_t *cond, pthread_mutex_t *mutex),
(cond, mutex));
-static __never_inline
+static __always_inline
int pthread_cond_timedwait_intercept(pthread_cond_t *cond,
pthread_mutex_t *mutex,
const struct timespec* abstime)
// argument to be passed to pthread_cond_signal_np() and hence will cause this
// last function to crash.
-static __never_inline
+static __always_inline
int pthread_cond_signal_intercept(pthread_cond_t* cond)
{
int ret;
PTH_FUNCS(int, pthreadZucondZusignal, pthread_cond_signal_intercept,
(pthread_cond_t* cond), (cond));
-static __never_inline
+static __always_inline
int pthread_cond_broadcast_intercept(pthread_cond_t* cond)
{
int ret;
(pthread_cond_t* cond), (cond));
#if defined(HAVE_PTHREAD_SPIN_LOCK)
-static __never_inline
+static __always_inline
int pthread_spin_init_intercept(pthread_spinlock_t *spinlock, int pshared)
{
int ret;
PTH_FUNCS(int, pthreadZuspinZuinit, pthread_spin_init_intercept,
(pthread_spinlock_t *spinlock, int pshared), (spinlock, pshared));
-static __never_inline
+static __always_inline
int pthread_spin_destroy_intercept(pthread_spinlock_t *spinlock)
{
int ret;
PTH_FUNCS(int, pthreadZuspinZudestroy, pthread_spin_destroy_intercept,
(pthread_spinlock_t *spinlock), (spinlock));
-static __never_inline
+static __always_inline
int pthread_spin_lock_intercept(pthread_spinlock_t *spinlock)
{
int ret;
PTH_FUNCS(int, pthreadZuspinZulock, pthread_spin_lock_intercept,
(pthread_spinlock_t *spinlock), (spinlock));
-static __never_inline
+static __always_inline
int pthread_spin_trylock_intercept(pthread_spinlock_t *spinlock)
{
int ret;
PTH_FUNCS(int, pthreadZuspinZutrylock, pthread_spin_trylock_intercept,
(pthread_spinlock_t *spinlock), (spinlock));
-static __never_inline
+static __always_inline
int pthread_spin_unlock_intercept(pthread_spinlock_t *spinlock)
{
int ret;
#if defined(HAVE_PTHREAD_BARRIER_INIT)
-static __never_inline
+static __always_inline
int pthread_barrier_init_intercept(pthread_barrier_t* barrier,
const pthread_barrierattr_t* attr,
unsigned count)
(pthread_barrier_t* barrier, const pthread_barrierattr_t* attr,
unsigned count), (barrier, attr, count));
-static __never_inline
+static __always_inline
int pthread_barrier_destroy_intercept(pthread_barrier_t* barrier)
{
int ret;
PTH_FUNCS(int, pthreadZubarrierZudestroy, pthread_barrier_destroy_intercept,
(pthread_barrier_t* barrier), (barrier));
-static __never_inline
+static __always_inline
int pthread_barrier_wait_intercept(pthread_barrier_t* barrier)
{
int ret;
#endif // HAVE_PTHREAD_BARRIER_INIT
-static __never_inline
+static __always_inline
int sem_init_intercept(sem_t *sem, int pshared, unsigned int value)
{
int ret;
PTH_FUNCS(int, semZuinit, sem_init_intercept,
(sem_t *sem, int pshared, unsigned int value), (sem, pshared, value));
-static __never_inline
+static __always_inline
int sem_destroy_intercept(sem_t *sem)
{
int ret;
PTH_FUNCS(int, semZudestroy, sem_destroy_intercept, (sem_t *sem), (sem));
-static __never_inline
+static __always_inline
sem_t* sem_open_intercept(const char *name, int oflag, mode_t mode,
unsigned int value)
{
(const char *name, int oflag, mode_t mode, unsigned int value),
(name, oflag, mode, value));
-static __never_inline int sem_close_intercept(sem_t *sem)
+static __always_inline int sem_close_intercept(sem_t *sem)
{
int ret;
int res;
PTH_FUNCS(int, semZuclose, sem_close_intercept, (sem_t *sem), (sem));
-static __never_inline int sem_wait_intercept(sem_t *sem)
+static __always_inline int sem_wait_intercept(sem_t *sem)
{
int ret;
int res;
PTH_FUNCS(int, semZuwait, sem_wait_intercept, (sem_t *sem), (sem));
-static __never_inline int sem_trywait_intercept(sem_t *sem)
+static __always_inline int sem_trywait_intercept(sem_t *sem)
{
int ret;
int res;
PTH_FUNCS(int, semZutrywait, sem_trywait_intercept, (sem_t *sem), (sem));
-static __never_inline
+static __always_inline
int sem_timedwait_intercept(sem_t *sem, const struct timespec *abs_timeout)
{
int ret;
(sem_t *sem, const struct timespec *abs_timeout),
(sem, abs_timeout));
-static __never_inline int sem_post_intercept(sem_t *sem)
+static __always_inline int sem_post_intercept(sem_t *sem)
{
int ret;
int res;
PTH_FUNCS(int, semZupost, sem_post_intercept, (sem_t *sem), (sem));
-static __never_inline
+static __always_inline
int pthread_rwlock_init_intercept(pthread_rwlock_t* rwlock,
const pthread_rwlockattr_t* attr)
{
(pthread_rwlock_t* rwlock, const pthread_rwlockattr_t* attr),
(rwlock, attr));
-static __never_inline
+static __always_inline
int pthread_rwlock_destroy_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZudestroy, pthread_rwlock_destroy_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_rdlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZurdlock, pthread_rwlock_rdlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_wrlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZuwrlock, pthread_rwlock_wrlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_timedrdlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZutimedrdlock, pthread_rwlock_timedrdlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZutimedwrlock, pthread_rwlock_timedwrlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_tryrdlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZutryrdlock, pthread_rwlock_tryrdlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_trywrlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
pthreadZurwlockZutrywrlock, pthread_rwlock_trywrlock_intercept,
(pthread_rwlock_t* rwlock), (rwlock));
-static __never_inline
+static __always_inline
int pthread_rwlock_unlock_intercept(pthread_rwlock_t* rwlock)
{
int ret;
at 0x........: U_AnnotateHappensBefore (unified_annotations.h:?)
by 0x........: main (annotate_hb_err.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (annotate_hb_err.c:?)
wrong type of synchronization object
at 0x........: U_AnnotateHappensBefore (unified_annotations.h:?)
by 0x........: main (annotate_hb_err.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (annotate_hb_err.c:?)
wrong type of synchronization object
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (annotate_hb_err.c:?)
order annotation 0x........ was first observed at:
at 0x........: U_AnnotateHappensAfter (unified_annotations.h:?)
initialise a barrier with zero count
pthread_barrier_init: 'count' argument is zero: barrier 0x........
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
initialise a barrier twice
Barrier reinitialization: barrier 0x........
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
initialise a barrier which has threads waiting on it
Barrier reinitialization: barrier 0x........
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
destroy a barrier that has waiting threads
Destruction of a barrier with active waiters: barrier 0x........
- at 0x........: pthread_barrier_destroy_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
destroy a barrier that was never initialised
Not a barrier
- at 0x........: pthread_barrier_destroy_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
Destruction of barrier that is being waited upon: barrier 0x........
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (bar_bad.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
Locking mutex ...
Acquired at:
- at 0x........: pthread_mutex_lock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Lock on mutex 0x........ was held during ... ms (threshold: 500 ms).
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Locking rwlock exclusively ...
Acquired at:
- at 0x........: pthread_rwlock_wrlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_wrlock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Lock on rwlock 0x........ was held during ... ms (threshold: 500 ms).
- at 0x........: pthread_rwlock_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Locking rwlock shared ...
Locking rwlock exclusively ...
Locking rwlock shared ...
Acquired at:
- at 0x........: pthread_rwlock_rdlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_rdlock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Lock on rwlock 0x........ was held during ... ms (threshold: 500 ms).
- at 0x........: pthread_rwlock_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (hold_lock.c:?)
Done.
Destruction of barrier not synchronized with barrier wait call: barrier 0x........
- at 0x........: pthread_barrier_destroy_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
by 0x........: main (pth_barrier_race.c:?)
Conflicting wait call by thread 2:
- at 0x........: pthread_barrier_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_wait (drd_pthread_intercepts.c:?)
by 0x........: thread (pth_barrier_race.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_barrier_race.c:?)
Barrier reinitialization: barrier 0x........
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_barrier_reinit.c:?)
barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_barrier_reinit.c:?)
Mutex still locked at thread exit: mutex 0x........, recursion count 1, owner 2.
- at 0x........: pthread_join_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_join (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cancel_locked.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cancel_locked.c:?)
Test finished.
Mutex still locked at thread exit: mutex 0x........, recursion count 1, owner 2.
- at 0x........: pthread_join_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_join (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cancel_locked.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cancel_locked.c:?)
Mutex still locked at thread exit: mutex 0x........, recursion count 1, owner 2.
Thread 2:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: thread_func (pth_cond_race.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cond_race.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_cond_race.c:?)
Thread 3:
Inconsistent association of condition variable and mutex: condition variable 0x........, mutexes 0x........ and 0x........
- at 0x........: pthread_cond_timedwait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_timedwait (drd_pthread_intercepts.c:?)
by 0x........: thread_func (pth_inconsistent_cond_wait.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Thread 1:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Thread 2:
Inconsistent association of condition variable and mutex: condition variable 0x........, mutexes 0x........ and 0x........
- at 0x........: pthread_cond_timedwait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_timedwait (drd_pthread_intercepts.c:?)
by 0x........: thread_func (pth_inconsistent_cond_wait.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Thread 1:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_inconsistent_cond_wait.c:?)
Mutex reinitialization: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_mutex_reinit.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (pth_mutex_reinit.c:?)
Done.
Statically initialized condition variable.
Uninitialized condition variable.
condition variable has not been initialized: cond 0x........
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: main (pth_uninitialized_cond.c:?)
Done.
Non-recursive mutex.
second lock call failed !
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: lock_twice (recursive_mutex.c:?)
by 0x........: main (recursive_mutex.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_trylock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
by 0x........: lock_twice (recursive_mutex.c:?)
by 0x........: main (recursive_mutex.c:?)
Error checking mutex.
second lock call failed !
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: lock_twice (recursive_mutex.c:?)
by 0x........: main (recursive_mutex.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (recursive_mutex.c:?)
second unlock call failed !
Non-recursive mutex.
second lock call failed !
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: lock_twice (recursive_mutex.c:?)
by 0x........: main (recursive_mutex.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_trylock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
by 0x........: lock_twice (recursive_mutex.c:?)
by 0x........: main (recursive_mutex.c:?)
Attempt to use a user-defined rwlock as a POSIX rwlock: rwlock 0x.........
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (rwlock_type_checking.c:?)
rwlock 0x........ was first observed at:
at 0x........: main (rwlock_type_checking.c:?)
Attempt to use a POSIX rwlock as a user-defined rwlock: rwlock 0x.........
at 0x........: main (rwlock_type_checking.c:?)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (rwlock_type_checking.c:?)
Finished.
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (tc04_free_lock.c:24)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc04_free_lock.c:20)
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: bar (tc04_free_lock.c:40)
by 0x........: main (tc04_free_lock.c:26)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
by 0x........: main (tc04_free_lock.c:26)
at 0x........: foo (tc04_free_lock.c:49)
by 0x........: main (tc04_free_lock.c:27)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
at 0x........: bar (tc04_free_lock.c:40)
by 0x........: main (tc04_free_lock.c:28)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
by 0x........: main (tc04_free_lock.c:28)
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:27)
by 0x........: main (tc09_bad_unlock.c:49)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:49)
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: child_fn (tc09_bad_unlock.c:11)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
Thread 1:
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: main (tc09_bad_unlock.c:49)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
---------------------
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:27)
by 0x........: main (tc09_bad_unlock.c:50)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:50)
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: main (tc09_bad_unlock.c:50)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:50)
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:27)
by 0x........: main (tc09_bad_unlock.c:49)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:49)
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: child_fn (tc09_bad_unlock.c:11)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
Thread 1:
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:49)
---------------------
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:27)
by 0x........: main (tc09_bad_unlock.c:50)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:50)
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:50)
before unlock #3
before unlock #4
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc10_rec_lock.c:42)
by 0x........: main (tc10_rec_lock.c:47)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc10_rec_lock.c:24)
by 0x........: main (tc10_rec_lock.c:47)
Reader-writer lock not locked by calling thread: rwlock 0x.........
- at 0x........: pthread_rwlock_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?)
by 0x........: main (tc12_rwl_trivial.c:35)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc12_rwl_trivial.c:24)
Semaphore reinitialization: semaphore 0x........
- at 0x........: sem_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: sem_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc18_semabuse.c:26)
semaphore 0x........ was first observed at:
- at 0x........: sem_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: sem_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc18_semabuse.c:23)
Invalid semaphore: semaphore 0x........
- at 0x........: sem_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: sem_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc18_semabuse.c:34)
semaphore 0x........ was first observed at:
- at 0x........: sem_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: sem_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc18_semabuse.c:23)
Mutex still locked at thread exit: mutex 0x........, recursion count 1, owner 3.
- at 0x........: pthread_join_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_join (drd_pthread_intercepts.c:?)
by 0x........: main (tc22_exit_w_lock.c:43)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: child_fn1 (tc22_exit_w_lock.c:18)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:69)
Invalid address alignment at address 0x........
at 0x........: (within libpthread-?.?.so)
by 0x........: pthread_cond_wait@@GLIBC_2.3.2(within libpthread-?.?.so)
- by 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ by 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:69)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: rescue_me (tc23_bogus_condwait.c:20)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:56)
Thread 1:
Mutex not locked: mutex 0x........, recursion count 0, owner 0.
- at 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:72)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:51)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: rescue_me (tc23_bogus_condwait.c:24)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:56)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:51)
Thread 1:
The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:75)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:57)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: rescue_me (tc23_bogus_condwait.c:28)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:56)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:57)
Thread 1:
Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 2.
- at 0x........: pthread_cond_wait_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:78)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
- at 0x........: pthread_cond_signal_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
by 0x........: rescue_me (tc23_bogus_condwait.c:32)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
- at 0x........: pthread_cond_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_cond_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:56)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
The impossible happened: mutex 0x........ is locked simultaneously by two threads (recursion count 1, owners 2 and 1) !
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 2, owner 1.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: grab_the_lock (tc23_bogus_condwait.c:42)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
Thread 2 (thread_func instance 1):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 3 (thread_func instance 2):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 4 (thread_func instance 3):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 5 (thread_func instance 4):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 6 (thread_func instance 5):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 7 (thread_func instance 6):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 8 (thread_func instance 7):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 9 (thread_func instance 8):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 10 (thread_func instance 9):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 11 (thread_func instance 10):
The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
by 0x........: thread_func (thread_name.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Locking rwlock via pthread_rwlock_timedrdlock().
Attempt to lock for writing recursively (not allowed).
Recursive writer locking not allowed: rwlock 0x.........
- at 0x........: pthread_rwlock_wrlock_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_wrlock (drd_pthread_intercepts.c:?)
by 0x........: main (trylock.c:?)
rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init_intercept (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?)
by 0x........: main (trylock.c:?)
Locking mutex via pthread_mutex_trylock().