aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2008-02-15 02:50:17 +0000
committerKen Raeburn <raeburn@mit.edu>2008-02-15 02:50:17 +0000
commitf47aecbfd680f90b21d6749e93ca15f12bbca139 (patch)
tree86d110f13542ad416d6a214469a1bb60740d524a
parenta734eeec9b92975366c2d05d68ec362bbe407021 (diff)
downloadkrb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.zip
krb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.tar.gz
krb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.tar.bz2
Fix from Savitha R, 2008-01-31 for bug:
KDC crash due to assertion failure when a thread reacquires the kdc lock after waiting on a condition (while a similar request is getting processed ) and tries to unlock the kdc later. The assertion was failing due to mismatch of lock owner. git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mt-kdc@20225 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/kdc/extern.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/kdc/extern.c b/src/kdc/extern.c
index 3ec6a05..8520cf7 100644
--- a/src/kdc/extern.c
+++ b/src/kdc/extern.c
@@ -49,6 +49,11 @@ k5_mutex_t kdc_lock;
inline void sleep_kdc(pthread_cond_t *cond)
{
pthread_cond_wait(cond, &kdc_lock.os.p);
+ /* This is a temporary fix. It has to be handled appropriately
+ while writing the shim layer for condition variables */
+#ifdef DEBUG_THREADS
+ kdc_lock.os.owner = pthread_self();
+#endif
}
inline void wakeup_kdc(pthread_cond_t *cond)