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.
Description
Status | Assigned | Task | ||
---|---|---|---|---|
Open | None | T12664 Update diff/patch parsing to extract more metadata and parse a wider range of formats | ||
Open | None | T4124 Test the capabilities of `diff` better, especially for Solaris |
Event Timeline
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]