Merge "Followup a88df43d: make $wgDebugDumpSql log commented queries again"
[lhc/web/wiklou.git] / includes / db / Database.php
index 531086b..05dc3d3 100644 (file)
@@ -989,7 +989,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                if ( $this->debug() ) {
-                       wfDebugLog( 'queries', sprintf( "%s: %s", $this->mDBname, $sql ) );
+                       wfDebugLog( 'queries', sprintf( "%s: %s", $this->mDBname, $commentedSql ) );
                }
 
                $queryId = MWDebug::query( $sql, $fname, $isMaster );
@@ -3314,6 +3314,11 @@ abstract class DatabaseBase implements IDatabase {
                                                MWExceptionHandler::logException( $ePrior );
                                        }
                                        $ePrior = $e;
+                                       // Some callbacks may use startAtomic/endAtomic, so make sure
+                                       // their transactions are ended so other callbacks don't fail
+                                       if ( $this->trxLevel() ) {
+                                               $this->rollback( __METHOD__ );
+                                       }
                                }
                        }
                } while ( count( $this->mTrxIdleCallbacks ) );
@@ -3438,7 +3443,7 @@ abstract class DatabaseBase implements IDatabase {
                                $levels = implode( ', ', $this->mTrxAtomicLevels );
                                throw new DBUnexpectedError(
                                        $this,
-                                       "Got explicit BEGIN while atomic sections $levels are still open."
+                                       "Got explicit BEGIN from $fname while atomic section(s) $levels are open."
                                );
                        } elseif ( !$this->mTrxAutomatic ) {
                                // We want to warn about inadvertently nested begin/commit pairs, but not about