From 966a02dbf1eb257d6f7df58e9d78479fa219663f Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Thu, 12 Apr 2007 07:41:37 +0000 Subject: [PATCH] Locking debug level tweaks in SD. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4539 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/stored/device.c | 18 +++++++++--------- bacula/src/stored/protos.h | 5 ++++- bacula/src/version.h | 4 ++-- bacula/technotes-2.1 | 2 ++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/bacula/src/stored/device.c b/bacula/src/stored/device.c index ba90a76c37..7215c35cfc 100644 --- a/bacula/src/stored/device.c +++ b/bacula/src/stored/device.c @@ -403,16 +403,16 @@ void DEVICE::r_dlock() { int stat; #ifdef SD_DEBUG_LOCK - Dmsg4(dbglvl, "r_dlock blked=%s from %s:%d JobId=%u\n", this->print_blocked(), + Dmsg4(sd_dbglvl, "r_dlock blked=%s from %s:%d JobId=%u\n", this->print_blocked(), file, line, get_jobid_from_tid()); #else - Dmsg1dbglvl, "reclock blked=%s\n", this->print_blocked()); + Dmsg1(sd_dbglvl, "reclock blked=%s\n", this->print_blocked()); #endif this->dlock(); if (this->blocked() && !pthread_equal(this->no_wait_id, pthread_self())) { this->num_waiting++; /* indicate that I am waiting */ while (this->blocked()) { - Dmsg3(dbglvl, "r_dlock blked=%s no_wait=%p me=%p\n", this->print_blocked(), + Dmsg3(sd_dbglvl, "r_dlock blked=%s no_wait=%p me=%p\n", this->print_blocked(), this->no_wait_id, pthread_self()); if ((stat = pthread_cond_wait(&this->wait, &m_mutex)) != 0) { berrno be; @@ -435,7 +435,7 @@ void DEVICE::r_dlock() */ void _block_device(const char *file, int line, DEVICE *dev, int state) { - Dmsg3(dbglvl, "block set %d from %s:%d\n", state, file, line); + Dmsg3(sd_dbglvl, "block set %d from %s:%d\n", state, file, line); ASSERT(dev->blocked() == BST_NOT_BLOCKED); dev->set_blocked(state); /* make other threads wait */ @@ -449,7 +449,7 @@ void _block_device(const char *file, int line, DEVICE *dev, int state) */ void _unblock_device(const char *file, int line, DEVICE *dev) { - Dmsg3(dbglvl, "unblock %s from %s:%d\n", dev->print_blocked(), file, line); + Dmsg3(sd_dbglvl, "unblock %s from %s:%d\n", dev->print_blocked(), file, line); ASSERT(dev->blocked()); dev->set_blocked(BST_NOT_BLOCKED); dev->no_wait_id = 0; @@ -465,13 +465,13 @@ void _unblock_device(const char *file, int line, DEVICE *dev) void _steal_device_lock(const char *file, int line, DEVICE *dev, bsteal_lock_t *hold, int state) { - Dmsg3(dbglvl, "steal lock. old=%s from %s:%d\n", dev->print_blocked(), + Dmsg3(sd_dbglvl, "steal lock. old=%s from %s:%d\n", dev->print_blocked(), file, line); hold->dev_blocked = dev->blocked(); hold->dev_prev_blocked = dev->dev_prev_blocked; hold->no_wait_id = dev->no_wait_id; dev->set_blocked(state); - Dmsg1(dbglvl, "steal lock. new=%s\n", dev->print_blocked()); + Dmsg1(sd_dbglvl, "steal lock. new=%s\n", dev->print_blocked()); dev->no_wait_id = pthread_self(); dev->dunlock(); } @@ -482,13 +482,13 @@ void _steal_device_lock(const char *file, int line, DEVICE *dev, bsteal_lock_t * */ void _give_back_device_lock(const char *file, int line, DEVICE *dev, bsteal_lock_t *hold) { - Dmsg3(dbglvl, "return lock. old=%s from %s:%d\n", + Dmsg3(sd_dbglvl, "return lock. old=%s from %s:%d\n", dev->print_blocked(), file, line); dev->dlock(); dev->set_blocked(hold->dev_blocked); dev->dev_prev_blocked = hold->dev_prev_blocked; dev->no_wait_id = hold->no_wait_id; - Dmsg1(dbglvl, "return lock. new=%s\n", dev->print_blocked()); + Dmsg1(sd_dbglvl, "return lock. new=%s\n", dev->print_blocked()); if (dev->num_waiting > 0) { pthread_cond_broadcast(&dev->wait); /* wake them up */ } diff --git a/bacula/src/stored/protos.h b/bacula/src/stored/protos.h index b26eb2a5c9..00b52d4771 100644 --- a/bacula/src/stored/protos.h +++ b/bacula/src/stored/protos.h @@ -235,7 +235,10 @@ extern int reservations_lock_count; do { Dmsg4(sd_dbglvl, "lock_reservations at %s:%d precnt=%d JobId=%u\n", \ __FILE__, __LINE__, \ reservations_lock_count, get_jobid_from_tid()); \ - _lock_reservations(); } while (0) + _lock_reservations(); \ + Dmsg1(sd_dbglvl, "lock_reservations: got lock JobId=%u\n", \ + get_jobid_from_tid()); \ + } while (0) #define unlock_reservations() \ do { Dmsg4(sd_dbglvl, "unlock_reservations at %s:%d precnt=%d JobId=%u\n", \ __FILE__, __LINE__, \ diff --git a/bacula/src/version.h b/bacula/src/version.h index 408db2e472..f0c5028c58 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -4,8 +4,8 @@ #undef VERSION #define VERSION "2.1.8" -#define BDATE "11 April 2007" -#define LSMDATE "11Apr07" +#define BDATE "12 April 2007" +#define LSMDATE "12Apr07" #define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n" #define BYEAR "2007" /* year for copyright messages in progs */ diff --git a/bacula/technotes-2.1 b/bacula/technotes-2.1 index c127e47370..51e07b1853 100644 --- a/bacula/technotes-2.1 +++ b/bacula/technotes-2.1 @@ -1,6 +1,8 @@ Technical notes on version 2.1 General: +12Apr07 +kes Locking debug level tweaks in SD. 11Apr07 kes Add exec external-command [wait-seconds] to bconsole. This executes the external-command. Note! normally external-command -- 2.39.5