From cd8491ae93826df95817531eeecdb8c65278c9b5 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 15 Apr 2016 09:55:26 -0700 Subject: [PATCH] Fix "daemons running as wrong user" setup issue Summary: Fixes T9385. This was accidentally mangled a bit a long time ago by D12797, which was a 1,000-file change which got almost everything right. Simplify the message and fix all the `%s` conversions and how they map to parameters. Test Plan: {F1220400} Reviewers: chad Reviewed By: chad Maniphest Tasks: T9385 Differential Revision: https://secure.phabricator.com/D15722 --- .../check/PhabricatorDaemonsSetupCheck.php | 75 ++++++++----------- 1 file changed, 33 insertions(+), 42 deletions(-) diff --git a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php index 0b2bd8614e..1802e608e9 100644 --- a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php +++ b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php @@ -46,49 +46,40 @@ final class PhabricatorDaemonsSetupCheck extends PhabricatorSetupCheck { ->addCommand('phabricator/ $ ./bin/phd start'); } - $phd_user = PhabricatorEnv::getEnvConfig('phd.user'); - $all_daemons = id(new PhabricatorDaemonLogQuery()) - ->setViewer(PhabricatorUser::getOmnipotentUser()) - ->withStatus(PhabricatorDaemonLogQuery::STATUS_ALIVE) - ->execute(); - foreach ($all_daemons as $daemon) { - - if ($phd_user) { - if ($daemon->getRunningAsUser() != $phd_user) { - $doc_href = PhabricatorEnv::getDocLink('Managing Daemons with phd'); - - $summary = pht( - 'At least one daemon is currently running as a different '. - 'user than configured in the Phabricator %s setting', - 'phd.user'); - - $message = pht( - 'A daemon is running as user %s while the Phabricator config '. - 'specifies %s to be %s.'. - "\n\n". - 'Either adjust %s to match %s or start '. - 'the daemons as the correct user. '. - "\n\n". - '%s Daemons will try to use %s to start as the configured user. '. - 'Make sure that the user who starts %s has the correct '. - 'sudo permissions to start %s daemons as %s', - 'phd.user', - 'phd.user', - 'phd', - 'sudo', - 'phd', - 'phd', - phutil_tag('tt', array(), $daemon->getRunningAsUser()), - phutil_tag('tt', array(), $phd_user), - phutil_tag('tt', array(), $daemon->getRunningAsUser()), - phutil_tag('tt', array(), $phd_user)); - - $this->newIssue('daemons.run-as-different-user') - ->setName(pht('Daemons are running as the wrong user')) - ->setSummary($summary) - ->setMessage($message) - ->addCommand('phabricator/ $ ./bin/phd restart'); + $expect_user = PhabricatorEnv::getEnvConfig('phd.user'); + if (strlen($expect_user)) { + $all_daemons = id(new PhabricatorDaemonLogQuery()) + ->setViewer(PhabricatorUser::getOmnipotentUser()) + ->withStatus(PhabricatorDaemonLogQuery::STATUS_ALIVE) + ->execute(); + foreach ($all_daemons as $daemon) { + $actual_user = $daemon->getRunningAsUser(); + if ($actual_user == $expect_user) { + continue; } + + $summary = pht( + 'At least one daemon is currently running as the wrong user.'); + + $message = pht( + 'A daemon is running as user %s, but daemons should be '. + 'running as %s.'. + "\n\n". + 'Either adjust the configuration setting %s or restart the '. + 'daemons. Daemons should attempt to run as the proper user when '. + 'restarted.', + phutil_tag('tt', array(), $actual_user), + phutil_tag('tt', array(), $expect_user), + phutil_tag('tt', array(), 'phd.user')); + + $this->newIssue('daemons.run-as-different-user') + ->setName(pht('Daemon Running as Wrong User')) + ->setSummary($summary) + ->setMessage($message) + ->addPhabricatorConfig('phd.user') + ->addCommand('phabricator/ $ ./bin/phd restart'); + + break; } } }