diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index fd5071f32d3c1e6bfcf3b28f401476b83c32a44a..cff8ae537529b867bb3d080c8bdaa98400f153f7 100644 --- a/lib/modules/Sql.pmod/pgsql.pike +++ b/lib/modules/Sql.pmod/pgsql.pike @@ -1215,12 +1215,12 @@ private void procmessage() { } break; } - PD("Closing database processloop %O\n",err); + PD("Closing database processloop %s\n", err ? describe_backtrace(err) : ""); _delayederror=err; if (objectp(portal)) { - #ifdef PG_DEBUG +#ifdef PG_DEBUG showportal(0); - #endif +#endif portal->_purgeportal(); } if(!terminating && _options.reconnect) @@ -1234,7 +1234,7 @@ private void procmessage() { if (err) { unnamedstatement=0; termlock = 0; - throw(err); + PD("Terminating processloop due to %s\n", describe_backtrace(err)); } } @@ -1251,10 +1251,12 @@ private void procmessage() { catch(cancelquery()); if (unnamedstatement) termlock = unnamedstatement->lock(1); - c->close(); + if (c) // Prevent trivial backtraces + c->close(); if (unnamedstatement) lock = unnamedstatement->lock(1); - destruct(c); + if (c) + destruct(c); lock = 0; destruct(waitforauthready); } diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index b51d3cbf41139e1009ac679e3206596ce7ec148c..713073f8c22b81ac1091e67bae040d5b11e980ab 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -249,7 +249,7 @@ class conxiin { } final int read_cb(mixed id,mixed b) { - PD("Read callback %O\n",((string)b) + PD("Read callback %O\n", b && ((string)b) #ifndef PG_DEBUGMORE [..255] #endif