Page MenuHomePhabricator

Test the capabilities of `diff` better, especially for Solaris
Open, LowPublic

Description

On Solaris, the default diff is missing -L, which leads to "Can't parse an empty diff!" errors in Differential with certain whitespace options (those that require us to regenerate diffs on the server) enabled.

Event Timeline

epriestley raised the priority of this task from to Low.
epriestley updated the task description. (Show Details)
epriestley added a subscriber: epriestley.

(See IRC. See also T2465?)

epriestley renamed this task from Test the capabilities of `diff` better to Test the capabilities of `diff` better, especially for Solaris.Nov 5 2016, 3:57 PM
epriestley updated the task description. (Show Details)

I've been seeing exceptions about "Can't parse an empty diff" in daemon logs, which I believe happens occasionally when merging commits and using a strategy to ignore changes from the incoming commit. This happens when merging a branch which might contain commits with similar/same changes which should not be kept due to already being resolved upstream. This results in any phabricator revisions/audits always showing the "Loading Content" when viewing in web.

I'm seeing this on 2604c5af55f654d36f8db2f080b96486c4572216 (hosted on CentOS). I'm trying to reproduce this on the rHGTEST repo but I seem to have caused some issues seen on that main page (refreshing seems to show a few different errors appear).

I'm checking that this issue would covered under this task (came here from T11813). Is that the case, or should I move into a separate non-Solaris task?

[01-Feb-2017 11:23:13 America/New_York] [2017-02-01 11:23:13] EXCEPTION: (Exception) Can't parse an empty diff! at [<arcanist>/src/parser/ArcanistDiffParser.php:191]
[01-Feb-2017 11:23:13 America/New_York] arcanist(head=stable, ref.master=d54cb072facd, ref.stable=9503b941cc02), phabricator(head=stable, ref.stable=2604c5af55f6, custom=3), phutil(head=stable, ref.master=83f09f6c5a03, ref.stable=10963f771f11)
[01-Feb-2017 11:23:13 America/New_York]   #0 <#2> ArcanistDiffParser::parseDiff(string) called at [<phabricator>/src/applications/diffusion/herald/HeraldCommitAdapter.php:258]
[01-Feb-2017 11:23:13 America/New_York]   #1 <#2> HeraldCommitAdapter::loadCommitDiff() called at [<phabricator>/src/applications/diffusion/herald/HeraldCommitAdapter.php:273]
[01-Feb-2017 11:23:13 America/New_York]   #2 phlog(Exception) called at [<phabricator>/src/applications/diffusion/herald/HeraldCommitAdapter.php:276]
[01-Feb-2017 11:23:13 America/New_York]   #3 HeraldCommitAdapter::loadDiffContent(string) called at [<phabricator>/src/applications/diffusion/herald/DiffusionCommitDiffContentHeraldField.php:17]
[01-Feb-2017 11:23:13 America/New_York]   #4 DiffusionCommitDiffContentHeraldField::getHeraldFieldValue(PhabricatorRepositoryCommit) called at [<phabricator>/src/applications/herald/adapter/HeraldAdapter.php:102]
[01-Feb-2017 11:23:13 America/New_York]   #5 HeraldAdapter::getHeraldField(string) called at [<phabricator>/src/applications/herald/engine/HeraldEngine.php:370]
[01-Feb-2017 11:23:13 America/New_York]   #6 HeraldEngine::getObjectFieldValue(string) called at [<phabricator>/src/applications/herald/engine/HeraldEngine.php:365]
[01-Feb-2017 11:23:13 America/New_York]   #7 HeraldEngine::getConditionObjectValue(HeraldCondition, HeraldCommitAdapter) called at [<phabricator>/src/applications/herald/engine/HeraldEngine.php:277]
[01-Feb-2017 11:23:13 America/New_York]   #8 HeraldEngine::doesRuleMatch(HeraldRule, HeraldCommitAdapter) called at [<phabricator>/src/applications/herald/engine/HeraldEngine.php:91]
[01-Feb-2017 11:23:13 America/New_York]   #9 HeraldEngine::applyRules(array, HeraldCommitAdapter) called at [<phabricator>/src/applications/herald/engine/HeraldEngine.php:43]
[01-Feb-2017 11:23:13 America/New_York]   #10 HeraldEngine::loadAndApplyRules(HeraldCommitAdapter) called at [<phabricator>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:3119]
[01-Feb-2017 11:23:13 America/New_York]   #11 PhabricatorApplicationTransactionEditor::applyHeraldRules(PhabricatorRepositoryCommit, array) called at [<phabricator>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1021]
[01-Feb-2017 11:23:13 America/New_York]   #12 PhabricatorApplicationTransactionEditor::applyTransactions(PhabricatorRepositoryCommit, array) called at [<phabricator>/src/applications/repository/worker/PhabricatorRepositoryCommitHeraldWorker.php:102]
[01-Feb-2017 11:23:13 America/New_York]   #13 PhabricatorRepositoryCommitHeraldWorker::parseCommit(PhabricatorRepository, PhabricatorRepositoryCommit) called at [<phabricator>/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php:51]
[01-Feb-2017 11:23:13 America/New_York]   #14 PhabricatorRepositoryCommitParserWorker::doWork() called at [<phabricator>/src/infrastructure/daemon/workers/PhabricatorWorker.php:123]
[01-Feb-2017 11:23:13 America/New_York]   #15 PhabricatorWorker::executeTask() called at [<phabricator>/src/infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php:171]
[01-Feb-2017 11:23:13 America/New_York]   #16 PhabricatorWorkerActiveTask::executeTask() called at [<phabricator>/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php:22]
[01-Feb-2017 11:23:13 America/New_York]   #17 PhabricatorTaskmasterDaemon::run() called at [<phutil>/src/daemon/PhutilDaemon.php:181]
[01-Feb-2017 11:23:13 America/New_York]   #18 PhutilDaemon::execute() called at [<phutil>/scripts/daemon/exec/exec_daemon.php:131]