mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 01:02:42 +01:00
Add a setup warning for major clock skew issues
Summary: See IRC. A user had a database set to 8 hours ahead of their web host. Try to catch and warn about these issues. Test Plan: Artificially adjusted skew, saw setup warning. Reviewers: avivey, chad Reviewed By: chad Differential Revision: https://secure.phabricator.com/D14371
This commit is contained in:
parent
f48a833704
commit
4d13b6c6a8
1 changed files with 25 additions and 1 deletions
|
@ -319,9 +319,11 @@ final class PhabricatorMySQLSetupCheck extends PhabricatorSetupCheck {
|
||||||
->addMySQLConfig('innodb_buffer_pool_size');
|
->addMySQLConfig('innodb_buffer_pool_size');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$conn_w = id(new PhabricatorUser())->establishConnection('w');
|
||||||
|
|
||||||
$ok = PhabricatorStorageManagementAPI::isCharacterSetAvailableOnConnection(
|
$ok = PhabricatorStorageManagementAPI::isCharacterSetAvailableOnConnection(
|
||||||
'utf8mb4',
|
'utf8mb4',
|
||||||
id(new PhabricatorUser())->establishConnection('w'));
|
$conn_w);
|
||||||
if (!$ok) {
|
if (!$ok) {
|
||||||
$summary = pht(
|
$summary = pht(
|
||||||
'You are using an old version of MySQL, and should upgrade.');
|
'You are using an old version of MySQL, and should upgrade.');
|
||||||
|
@ -339,6 +341,28 @@ final class PhabricatorMySQLSetupCheck extends PhabricatorSetupCheck {
|
||||||
->setMessage($message);
|
->setMessage($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$info = queryfx_one(
|
||||||
|
$conn_w,
|
||||||
|
'SELECT UNIX_TIMESTAMP() epoch');
|
||||||
|
|
||||||
|
$epoch = (int)$info['epoch'];
|
||||||
|
$local = PhabricatorTime::getNow();
|
||||||
|
$delta = (int)abs($local - $epoch);
|
||||||
|
if ($delta > 60) {
|
||||||
|
$this->newIssue('mysql.clock')
|
||||||
|
->setName(pht('Major Web/Database Clock Skew'))
|
||||||
|
->setSummary(
|
||||||
|
pht(
|
||||||
|
'This host is set to a very different time than the database.'))
|
||||||
|
->setMessage(
|
||||||
|
pht(
|
||||||
|
'The database host and this host ("%s") disagree on the current '.
|
||||||
|
'time by more than 60 seconds (absolute skew is %s seconds). '.
|
||||||
|
'Check that the current time is set correctly everywhere.',
|
||||||
|
php_uname('n'),
|
||||||
|
new PhutilNumber($delta)));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function shouldUseMySQLSearchEngine() {
|
protected function shouldUseMySQLSearchEngine() {
|
||||||
|
|
Loading…
Reference in a new issue