function reportConnectionError(&$conn) { $fname = 'LoadBalancer::reportConnectionError'; wfProfileIn($fname); # Prevent infinite recursion static $reporting = false; if (!$reporting) { $reporting = true; if (!is_object($conn)) { $conn = new Database(); } if ($this->mFailFunction) { $conn->failFunction($this->mFailFunction); } else { $conn->failFunction('wfEmergencyAbort'); } $conn->reportConnectionError(); $reporting = false; } wfProfileOut($fname); }
function reportConnectionError(&$conn) { wfProfileIn(__METHOD__); if (!is_object($conn)) { // No last connection, probably due to all servers being too busy wfLogDBError("LB failure with no last connection\n"); $conn = new Database(); if ($this->mFailFunction) { $conn->failFunction($this->mFailFunction); $conn->reportConnectionError($this->mLastError); } else { // If all servers were busy, mLastError will contain something sensible throw new DBConnectionError($conn, $this->mLastError); } } else { if ($this->mFailFunction) { $conn->failFunction($this->mFailFunction); } else { $conn->failFunction(false); } $server = $conn->getProperty('mServer'); wfLogDBError("Connection error: {$this->mLastError} ({$server})\n"); $conn->reportConnectionError("{$this->mLastError} ({$server})"); } wfProfileOut(__METHOD__); }
function reportConnectionError(&$conn) { $fname = 'LoadBalancer::reportConnectionError'; wfProfileIn($fname); # Prevent infinite recursion static $reporting = false; if (!$reporting) { $reporting = true; if (!is_object($conn)) { // No last connection, probably due to all servers being too busy $conn = new Database(); if ($this->mFailFunction) { $conn->failFunction($this->mFailFunction); $conn->reportConnectionError($this->mLastError); } else { // If all servers were busy, mLastError will contain something sensible throw new DBConnectionError($conn, $this->mLastError); } } else { if ($this->mFailFunction) { $conn->failFunction($this->mFailFunction); } else { $conn->failFunction(false); } $server = $conn->getProperty('mServer'); $conn->reportConnectionError("{$this->mLastError} ({$server})"); } $reporting = false; } wfProfileOut($fname); }