Page MenuHomePhabricator

Cannot import diff affecting 125 files
Closed, ResolvedPublic

Asked by amartin33 on Jan 13 2017, 9:38 PM.

Details

A user on one of my repositories is attempting to land a diff (850kb in size) that affects 125 files. Phabricator warns on the differential about the size of this diff:

Very Large Diff
This diff is very large and affects 125 files.

When attempting to land, the task fails. If I run it manually from the command line, I see this trace:

# ./bin/repository reparse --importing --trace <commit>
...
>>> [57] <query> SELECT * FROM `file` WHERE contentHash = '14a713695e0f5bfbe2dc3dab85f0df82fcfe579e' LIMIT 1 
<<< [57] <query> 986 us
<<< [51] <conduit> 307,163 us
[2017-01-13 15:34:27] EXCEPTION: (Exception) No configured storage engine can store this file. See "Configuring File Storage" in the documentation for information on configuring storage engines. at [<phabricator>/src/applications/files/storage/PhabricatorFile.php:318]
arcanist(head=master, ref.master=ade25facfdf2), phabricator(head=master, ref.master=1e1a0182cac1), phutil(head=master, ref.master=c5848b71c10f)
  #0 PhabricatorFile::buildFromFileData(string, array) called at [<phabricator>/src/applications/files/storage/PhabricatorFile.php:422]
  #1 PhabricatorFile::newFromFileData(string, array) called at [<phabricator>/src/applications/files/uploadsource/PhabricatorFileUploadSource.php:132]
  #2 PhabricatorFileUploadSource::writeSingleFile() called at [<phabricator>/src/applications/files/uploadsource/PhabricatorFileUploadSource.php:45]
  #3 PhabricatorFileUploadSource::uploadFile() called at [<phabricator>/src/applications/diffusion/query/DiffusionFileFutureQuery.php:109]
  #4 DiffusionFileFutureQuery::executeQuery() called at [<phabricator>/src/applications/diffusion/query/DiffusionQuery.php:96]
  #5 DiffusionQuery::execute() called at [<phabricator>/src/applications/diffusion/query/DiffusionFileFutureQuery.php:60]
  #6 DiffusionFileFutureQuery::respondToConduitRequest(ConduitAPIRequest) called at [<phabricator>/src/applications/diffusion/conduit/DiffusionRawDiffQueryConduitAPIMethod.php:44]
  #7 DiffusionRawDiffQueryConduitAPIMethod::getResult(ConduitAPIRequest) called at [<phabricator>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:158]
  #8 DiffusionQueryConduitAPIMethod::execute(ConduitAPIRequest) called at [<phabricator>/src/applications/conduit/method/ConduitAPIMethod.php:123]
  #9 ConduitAPIMethod::executeMethod(ConduitAPIRequest) called at [<phabricator>/src/applications/conduit/call/ConduitCall.php:131]
  #10 ConduitCall::executeMethod() called at [<phabricator>/src/applications/conduit/call/ConduitCall.php:81]
  #11 ConduitCall::execute() called at [<phabricator>/src/applications/diffusion/query/DiffusionQuery.php:82]
  #12 DiffusionQuery::callConduitWithDiffusionRequest(PhabricatorUser, DiffusionGitRequest, string, array) called at [<phabricator>/src/applications/differential/engine/DifferentialDiffExtractionEngine.php:58]
  #13 DifferentialDiffExtractionEngine::newDiffFromCommit(PhabricatorRepositoryCommit) called at [<phabricator>/src/applications/differential/engine/DifferentialDiffExtractionEngine.php:241]
  #14 DifferentialDiffExtractionEngine::updateRevisionWithCommit(DifferentialRevision, PhabricatorRepositoryCommit, array, PhabricatorDaemonContentSource) called at [<phabricator>/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php:251]
  #15 PhabricatorRepositoryCommitMessageParserWorker::updateCommitData(DiffusionCommitRef) called at [<phabricator>/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php:42]
  #16 PhabricatorRepositoryCommitMessageParserWorker::parseCommit(PhabricatorRepository, PhabricatorRepositoryCommit) called at [<phabricator>/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php:51]
  #17 PhabricatorRepositoryCommitParserWorker::doWork() called at [<phabricator>/src/infrastructure/daemon/workers/PhabricatorWorker.php:123]
  #18 PhabricatorWorker::executeTask() called at [<phabricator>/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php:325]
  #19 PhabricatorRepositoryManagementReparseWorkflow::execute(PhutilArgumentParser) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:438]
  #20 PhutilArgumentParser::parseWorkflowsFull(array) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:330]
  #21 PhutilArgumentParser::parseWorkflows(array) called at [<phabricator>/scripts/repository/manage_repositories.php:22]

We've tried several things to resolve this, including deleting the task and diff and recreating it with no luck. How can we land this differential? Thanks!

Answers

avivey
Updated 2,870 Days Ago

Navigate to <yourinstance>.com/applications/view/PhabricatorFilesApplication/ - it should show a table listing Storage Engines.

  • The engine chunks should be writable
  • At least one other engine should also be writable, and have a limit of more than 4mb.

Is that the case? Have you configured storage.local-disk.path? That should be enough to allow files of any size to be stored.

This answer has been hidden.

New Answer

Answer

This question has been marked as closed, but you can still leave a new answer.