Page MenuHomePhorge

PHP 8.1 "strlen(null)" exception viewing branches of non-existing Hg repo
Closed, ResolvedPublic

Description

  1. PHP 8.2.6; Phorge at cb938d869c3f7324f9d703e7e531a7d31daaa57a
  2. Go to Diffusion at http://phorge.localhost/diffusion/
  3. Select Create Repository in upper right corner to go to http://phorge.localhost/diffusion/edit/form/default/
  4. Select "Create Mercurial Repository" to go to http://phorge.localhost/diffusion/edit/form/default/?vcs=hg
  5. On the Create Repository page, in the Name field, enter mercury1
  6. Select the Create Repository button and end up on http://phorge.localhost/diffusion/15/manage/
  7. In the sidebar on the left, select Branches to go to http://phorge.localhost/diffusion/15/manage/branches/
  8. In the sidebar on the right, select View Branches to go to http://phorge.localhost/diffusion/15/branches/default/
[2023-06-04 10:05:22] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=master, ref.master=b325304b6e52), phorge(head=HgViewBranches, ref.master=cb938d869c3f, ref.HgViewBranches=cb938d869c3f)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:83]
  #1 <#2> DiffusionBranchQueryConduitAPIMethod::getMercurialResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:158]
  #2 <#2> DiffusionQueryConduitAPIMethod::getResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:110]
  #3 <#2> DiffusionQueryConduitAPIMethod::execute(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/method/ConduitAPIMethod.php:156]
  #4 <#2> ConduitAPIMethod::executeMethod(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/call/ConduitCall.php:131]
  #5 <#2> ConduitCall::executeMethod() called at [<phorge>/src/applications/conduit/call/ConduitCall.php:81]
  #6 <#2> ConduitCall::execute() called at [<arcanist>/src/future/MethodCallFuture.php:30]
  #7 <#2> MethodCallFuture::isReady() called at [<arcanist>/src/future/Future.php:63]
  #8 <#2> Future::updateFuture() called at [<arcanist>/src/future/Future.php:159]
  #9 <#2> Future::start() called at [<arcanist>/src/future/FutureIterator.php:403]
  #10 <#2> FutureIterator::moveFutureToWork(integer) called at [<arcanist>/src/future/FutureIterator.php:374]
  #11 <#2> FutureIterator::updateWorkingSet() called at [<arcanist>/src/future/FutureIterator.php:206]
  #12 <#2> FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
  #13 <#2> FutureIterator::rewind()
  #14 <#2> iterator_to_array(FutureIterator) called at [<arcanist>/src/future/FutureIterator.php:84]
  #15 <#2> FutureIterator::resolveAll() called at [<arcanist>/src/future/Future.php:47]
  #16 <#2> Future::resolve() called at [<phorge>/src/applications/diffusion/query/DiffusionQuery.php:83]
  #17 <#2> DiffusionQuery::callConduitWithDiffusionRequest(PhabricatorUser, DiffusionMercurialRequest, string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionController.php:241]
  #18 <#2> DiffusionController::callConduitWithDiffusionRequest(string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionBranchTableController.php:33]
  #19 <#2> DiffusionBranchTableController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #20 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #21 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #22 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #23 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #24 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
[2023-06-04 10:05:22] EXCEPTION: (PhutilAggregateException) Encountered a processing exception, then another exception when trying to build a response for the first exception.
    - RuntimeException: file_exists(): Passing null to parameter #1 ($filename) of type string is deprecated
    - RuntimeException: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:316]
arcanist(head=master, ref.master=b325304b6e52), phorge(head=HgViewBranches, ref.master=cb938d869c3f, ref.HgViewBranches=cb938d869c3f)
  #0 <#4> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:83]
  #1 <#4> DiffusionBranchQueryConduitAPIMethod::getMercurialResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:158]
  #2 <#4> DiffusionQueryConduitAPIMethod::getResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:110]
  #3 <#4> DiffusionQueryConduitAPIMethod::execute(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/method/ConduitAPIMethod.php:156]
  #4 <#4> ConduitAPIMethod::executeMethod(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/call/ConduitCall.php:131]
  #5 <#4> ConduitCall::executeMethod() called at [<phorge>/src/applications/conduit/call/ConduitCall.php:81]
  #6 <#4> ConduitCall::execute() called at [<arcanist>/src/future/MethodCallFuture.php:30]
  #7 <#4> MethodCallFuture::isReady() called at [<arcanist>/src/future/Future.php:63]
  #8 <#4> Future::updateFuture() called at [<arcanist>/src/future/Future.php:159]
  #9 <#4> Future::start() called at [<arcanist>/src/future/FutureIterator.php:403]
  #10 <#4> FutureIterator::moveFutureToWork(integer) called at [<arcanist>/src/future/FutureIterator.php:374]
  #11 <#4> FutureIterator::updateWorkingSet() called at [<arcanist>/src/future/FutureIterator.php:206]
  #12 <#4> FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
  #13 <#4> FutureIterator::rewind()
  #14 <#4> iterator_to_array(FutureIterator) called at [<arcanist>/src/future/FutureIterator.php:84]
  #15 <#4> FutureIterator::resolveAll() called at [<arcanist>/src/future/Future.php:47]
  #16 <#4> Future::resolve() called at [<phorge>/src/applications/diffusion/query/DiffusionQuery.php:83]
  #17 <#4> DiffusionQuery::callConduitWithDiffusionRequest(PhabricatorUser, DiffusionMercurialRequest, string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionController.php:241]
  #18 <#4> DiffusionController::callConduitWithDiffusionRequest(string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionBranchTableController.php:33]
  #19 <#4> DiffusionBranchTableController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #20 <#3> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/error/PhutilErrorHandler.php:261]
  #21 <#3> file_exists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1068]
  #22 <#3> Filesystem::pathExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1169]
  #23 <#3> Filesystem::assertExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1020]
  #24 <#3> Filesystem::isDescendant(NULL, string) called at [<phorge>/src/view/widget/AphrontStackTraceView.php:33]
  #25 <#3> AphrontStackTraceView::render() called at [<phorge>/src/view/AphrontView.php:222]
  #26 <#3> AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
  #27 <#3> phutil_escape_html(AphrontStackTraceView) called at [<phorge>/src/infrastructure/markup/render.php:139]
  #28 <#3> phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97]
  #29 <#3> phutil_tag(string, array, array) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:62]
  #30 <#3> PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #31 <#3> AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #32 <#2> AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #33 <#2> AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
  #34 phlog(PhutilAggregateException) called at [<phorge>/src/aphront/response/AphrontUnhandledExceptionResponse.php:32]
  #35 AphrontUnhandledExceptionResponse::setException(PhutilAggregateException) called at [<phorge>/webroot/index.php:46]

Fix that line, afterwards get a FilesystemException (same as the last exception in T15414 and not to be covered here).

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.