provide a sort of mutex lock around db logging so it can't possibly recurse. Previous attempts to do something similar using other methods haven't worked out satisfactorily.
This commit is contained in:
parent
701acf59e2
commit
00b4843425
@ -12,7 +12,7 @@ class DBA {
|
|||||||
|
|
||||||
static public $dba = null;
|
static public $dba = null;
|
||||||
static public $dbtype = null;
|
static public $dbtype = null;
|
||||||
|
static public $logging = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns the database driver object.
|
* @brief Returns the database driver object.
|
||||||
@ -421,8 +421,13 @@ function db_getfunc($f) {
|
|||||||
|
|
||||||
function db_logger($s,$level = LOGGER_NORMAL,$syslog = LOG_INFO) {
|
function db_logger($s,$level = LOGGER_NORMAL,$syslog = LOG_INFO) {
|
||||||
|
|
||||||
|
if(\DBA::$logging)
|
||||||
|
return;
|
||||||
|
|
||||||
$saved = \DBA::$dba->debug;
|
$saved = \DBA::$dba->debug;
|
||||||
\DBA::$dba->debug = false;
|
\DBA::$dba->debug = false;
|
||||||
|
\DBA::$logging = true;
|
||||||
logger($s,$level,$syslog);
|
logger($s,$level,$syslog);
|
||||||
|
\DBA::$logging = false;
|
||||||
\DBA::$dba->debug = $saved;
|
\DBA::$dba->debug = $saved;
|
||||||
}
|
}
|
@ -300,15 +300,18 @@ function call_hooks($name, &$data = null) {
|
|||||||
$func($data);
|
$func($data);
|
||||||
else
|
else
|
||||||
$func($a, $data);
|
$func($a, $data);
|
||||||
} else {
|
}
|
||||||
// The hook should be removed so we don't process it.
|
else {
|
||||||
// But not until everybody gets through a timing issue
|
|
||||||
// related to git pull and update_r1169
|
// Don't do any DB write calls if we're currently logging a possibly failed DB call.
|
||||||
// q("DELETE FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s'",
|
if(! DBA::$logging) {
|
||||||
// dbesc($name),
|
// The hook should be removed so we don't process it.
|
||||||
// dbesc($hook[0]),
|
q("DELETE FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s'",
|
||||||
// dbesc($origfn)
|
dbesc($name),
|
||||||
// );
|
dbesc($hook[0]),
|
||||||
|
dbesc($origfn)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user