Page MenuHomePhabricator

When Differential is uninstalled, commit message parser still attempts to run application integrations
Closed, ResolvedPublic

Description

I think the Differential (which is disabled in my install) is used anyway to parse an SVN commit and that raises an exception.

[2014-04-22 12:51:59] EXCEPTION: (PhutilProxyException) Error while executing task ID 61011 from queue. {>} (ConduitException) Method 'ConduitAPI_differential_parsecommitmessage_Method' belongs to application 'Differential', which is not installed. at [/home/sites/phabricator/web/phabricator/src/applications/conduit/call/ConduitCall.php:204]
  #0 ConduitCall::buildMethodHandler(differential.parsecommitmessage) called at [/home/sites/phabricator/web/phabricator/src/applications/conduit/call/ConduitCall.php:21]
  #1 ConduitCall::__construct(differential.parsecommitmessage, Array of size 2 starting with: { corpus => Mobile - Event Edit - Ticket Price Field Extends Beyond Window }) called at [/home/sites/phabricator/web/phabricator/src/applications/diffusion/query/lowlevel/DiffusionLowLevelCommitFieldsQuery.php:23]
  #2 DiffusionLowLevelCommitFieldsQuery::executeQuery() called at [/home/sites/phabricator/web/phabricator/src/applications/diffusion/query/lowlevel/DiffusionLowLevelQuery.php:23]
  #3 DiffusionLowLevelQuery::execute() called at [/home/sites/phabricator/web/phabricator/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php:49]
  #4 PhabricatorRepositoryCommitMessageParserWorker::updateCommitData(Object DiffusionCommitRef) called at [/home/sites/phabricator/web/phabricator/src/applications/repository/worker/commitmessageparser/PhabricatorRepositorySvnCommitMessageParserWorker.php:15]
  #5 PhabricatorRepositorySvnCommitMessageParserWorker::parseCommit(Object PhabricatorRepository, Object PhabricatorRepositoryCommit) called at [/home/sites/phabricator/web/phabricator/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php:44]
  #6 PhabricatorRepositoryCommitParserWorker::doWork() called at [/home/sites/phabricator/web/phabricator/src/infrastructure/daemon/workers/PhabricatorWorker.php:85]
  #7 PhabricatorWorker::executeTask() called at [/home/sites/phabricator/web/phabricator/src/infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php:123]
  #8 PhabricatorWorkerActiveTask::executeTask() called at [/home/sites/phabricator/web/phabricator/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php:19]
  #9 PhabricatorTaskmasterDaemon::run() called at [/home/sites/phabricator/web/libphutil/src/daemon/PhutilDaemon.php:85]
  #10 PhutilDaemon::execute() called at [/home/sites/phabricator/web/libphutil/scripts/daemon/exec/exec_daemon.php:112]

Event Timeline

aik099 raised the priority of this task from to Needs Triage.
aik099 updated the task description. (Show Details)
aik099 added a project: Diffusion.
aik099 added a subscriber: aik099.

It's more general problem, because why the heck the Differential is used to parse the commits, shown in Diffusion. I think each application must be a standalone. If it's not then disabling of applications, that are needed by other applications should be prevented.

And this surely was working with my current application configuration (what is disabled and what's not) before I've updated Phabricator install yesterday.

We shouldn't be trying to run this integration if Differential isn't installed, but the integration predates being able to uninstall applications and it's rare to uninstall Differential so no one has hit this since then.

epriestley renamed this task from Exception during TaskMasterDaemon parsing of SVN commit to When Differential is uninstalled, commit message parser still attempts to run application integrations.Apr 24 2014, 4:37 PM
epriestley triaged this task as Low priority.
epriestley added a project: Badge Awarded.

I think there's a similar Maniphest hook in the daemon, too.

โœ˜ Merged into T5838.

(Just merging these the other way, since this has a better description of the work that's left here.)