Page MenuHomePhorge

PHP 8.1 "strlen(null)" exceptions trying to View Branches of a Diffusion repository
Closed, ResolvedPublic

Description

  1. PHP 8.2.6; Phorge at b1edfea09bad48c267b547918e82d6de43298781
  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 Git Repository" to go to http://phorge.localhost/diffusion/edit/form/default/?vcs=git
  5. On the Create Repository page, in the Name field, enter gitRepo
  6. Select the Create Repository button
  7. In the sidebar on the left, select Branches to go to http://phorge.localhost/diffusion/1/manage/branches/
  8. In the sidebar on the right, select View Branches to go to http://phorge.localhost/diffusion/1/branches/master/
[2023-05-23 19:37:44] 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=e4fd31ec024e), phorge(head=D25241, ref.master=b1edfea09bad, ref.D25241=b1edfea09bad)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/controller/DiffusionBranchTableController.php:29]
  #1 <#2> DiffusionBranchTableController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #2 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #3 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #4 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #5 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #6 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

Fix that exception; get next exception:

[2023-05-23 19:38:49] 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=e4fd31ec024e), phorge(head=D25241, ref.master=b1edfea09bad, ref.D25241=b1edfea09bad)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:33]
  #1 <#2> DiffusionBranchQueryConduitAPIMethod::getGitResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:155]
  #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, DiffusionGitRequest, 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-05-23 19:38:49] 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=e4fd31ec024e), phorge(head=D25241, ref.master=b1edfea09bad, ref.D25241=b1edfea09bad)
  #0 <#4> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:33]
  #1 <#4> DiffusionBranchQueryConduitAPIMethod::getGitResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:155]
  #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, DiffusionGitRequest, 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 exception; get next exception, not to be covered in this task:

[2023-05-23 19:55:36] EXCEPTION: (FilesystemException) Filesystem path "/var/repo/1/" does not exist. at [<arcanist>/src/filesystem/Filesystem.php:1204]
arcanist(head=master, ref.master=e4fd31ec024e), phorge(head=D25241, ref.master=b1edfea09bad, ref.D25241=b1edfea09bad)
  #0 <#2> Filesystem::assertExists(string) called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:1442]
  #1 <#2> PhabricatorRepository::assertLocalExists() called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:550]
  #2 <#2> PhabricatorRepository::newLocalCommandFuture(array) called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:536]
  #3 <#2> PhabricatorRepository::execxLocalCommand(string, string, string, string) called at [<phorge>/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php:55]
  #4 <#2> DiffusionLowLevelGitRefQuery::executeQuery() called at [<phorge>/src/applications/diffusion/query/lowlevel/DiffusionLowLevelQuery.php:23]
  #5 <#2> DiffusionLowLevelQuery::execute() called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:69]
  #6 <#2> DiffusionBranchQueryConduitAPIMethod::getGitResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:155]
  #7 <#2> DiffusionQueryConduitAPIMethod::getResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:110]
  #8 <#2> DiffusionQueryConduitAPIMethod::execute(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/method/ConduitAPIMethod.php:156]
  #9 <#2> ConduitAPIMethod::executeMethod(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/call/ConduitCall.php:131]
  #10 <#2> ConduitCall::executeMethod() called at [<phorge>/src/applications/conduit/call/ConduitCall.php:81]
  #11 <#2> ConduitCall::execute() called at [<arcanist>/src/future/MethodCallFuture.php:30]
  #12 <#2> MethodCallFuture::isReady() called at [<arcanist>/src/future/Future.php:63]
  #13 <#2> Future::updateFuture() called at [<arcanist>/src/future/Future.php:159]
  #14 <#2> Future::start() called at [<arcanist>/src/future/FutureIterator.php:403]
  #15 <#2> FutureIterator::moveFutureToWork(integer) called at [<arcanist>/src/future/FutureIterator.php:374]
  #16 <#2> FutureIterator::updateWorkingSet() called at [<arcanist>/src/future/FutureIterator.php:206]
  #17 <#2> FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
  #18 <#2> FutureIterator::rewind()
  #19 <#2> iterator_to_array(FutureIterator) called at [<arcanist>/src/future/FutureIterator.php:84]
  #20 <#2> FutureIterator::resolveAll() called at [<arcanist>/src/future/Future.php:47]
  #21 <#2> Future::resolve() called at [<phorge>/src/applications/diffusion/query/DiffusionQuery.php:83]
  #22 <#2> DiffusionQuery::callConduitWithDiffusionRequest(PhabricatorUser, DiffusionGitRequest, string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionController.php:241]
  #23 <#2> DiffusionController::callConduitWithDiffusionRequest(string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionBranchTableController.php:33]
  #24 <#2> DiffusionBranchTableController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #25 phlog(FilesystemException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #26 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, FilesystemException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #27 AphrontApplicationConfiguration::handleThrowable(FilesystemException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #28 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #29 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
[2023-05-23 19:55:36] 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
    - FilesystemException: Filesystem path "/var/repo/1/" does not exist. at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:316]
arcanist(head=master, ref.master=e4fd31ec024e), phorge(head=D25241, ref.master=b1edfea09bad, ref.D25241=b1edfea09bad)
  #0 <#4> Filesystem::assertExists(string) called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:1442]
  #1 <#4> PhabricatorRepository::assertLocalExists() called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:550]
  #2 <#4> PhabricatorRepository::newLocalCommandFuture(array) called at [<phorge>/src/applications/repository/storage/PhabricatorRepository.php:536]
  #3 <#4> PhabricatorRepository::execxLocalCommand(string, string, string, string) called at [<phorge>/src/applications/diffusion/query/lowlevel/DiffusionLowLevelGitRefQuery.php:55]
  #4 <#4> DiffusionLowLevelGitRefQuery::executeQuery() called at [<phorge>/src/applications/diffusion/query/lowlevel/DiffusionLowLevelQuery.php:23]
  #5 <#4> DiffusionLowLevelQuery::execute() called at [<phorge>/src/applications/diffusion/conduit/DiffusionBranchQueryConduitAPIMethod.php:69]
  #6 <#4> DiffusionBranchQueryConduitAPIMethod::getGitResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:155]
  #7 <#4> DiffusionQueryConduitAPIMethod::getResult(ConduitAPIRequest) called at [<phorge>/src/applications/diffusion/conduit/DiffusionQueryConduitAPIMethod.php:110]
  #8 <#4> DiffusionQueryConduitAPIMethod::execute(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/method/ConduitAPIMethod.php:156]
  #9 <#4> ConduitAPIMethod::executeMethod(ConduitAPIRequest) called at [<phorge>/src/applications/conduit/call/ConduitCall.php:131]
  #10 <#4> ConduitCall::executeMethod() called at [<phorge>/src/applications/conduit/call/ConduitCall.php:81]
  #11 <#4> ConduitCall::execute() called at [<arcanist>/src/future/MethodCallFuture.php:30]
  #12 <#4> MethodCallFuture::isReady() called at [<arcanist>/src/future/Future.php:63]
  #13 <#4> Future::updateFuture() called at [<arcanist>/src/future/Future.php:159]
  #14 <#4> Future::start() called at [<arcanist>/src/future/FutureIterator.php:403]
  #15 <#4> FutureIterator::moveFutureToWork(integer) called at [<arcanist>/src/future/FutureIterator.php:374]
  #16 <#4> FutureIterator::updateWorkingSet() called at [<arcanist>/src/future/FutureIterator.php:206]
  #17 <#4> FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
  #18 <#4> FutureIterator::rewind()
  #19 <#4> iterator_to_array(FutureIterator) called at [<arcanist>/src/future/FutureIterator.php:84]
  #20 <#4> FutureIterator::resolveAll() called at [<arcanist>/src/future/Future.php:47]
  #21 <#4> Future::resolve() called at [<phorge>/src/applications/diffusion/query/DiffusionQuery.php:83]
  #22 <#4> DiffusionQuery::callConduitWithDiffusionRequest(PhabricatorUser, DiffusionGitRequest, string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionController.php:241]
  #23 <#4> DiffusionController::callConduitWithDiffusionRequest(string, array) called at [<phorge>/src/applications/diffusion/controller/DiffusionBranchTableController.php:33]
  #24 <#4> DiffusionBranchTableController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #25 <#3> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/error/PhutilErrorHandler.php:261]
  #26 <#3> file_exists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1068]
  #27 <#3> Filesystem::pathExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1169]
  #28 <#3> Filesystem::assertExists(NULL) called at [<arcanist>/src/filesystem/Filesystem.php:1020]
  #29 <#3> Filesystem::isDescendant(NULL, string) called at [<phorge>/src/view/widget/AphrontStackTraceView.php:33]
  #30 <#3> AphrontStackTraceView::render() called at [<phorge>/src/view/AphrontView.php:222]
  #31 <#3> AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
  #32 <#3> phutil_escape_html(AphrontStackTraceView) called at [<phorge>/src/infrastructure/markup/render.php:139]
  #33 <#3> phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97]
  #34 <#3> phutil_tag(string, array, array) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:62]
  #35 <#3> PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, FilesystemException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #36 <#3> AphrontApplicationConfiguration::handleThrowable(FilesystemException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #37 <#2> AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #38 <#2> AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
  #39 phlog(PhutilAggregateException) called at [<phorge>/src/aphront/response/AphrontUnhandledExceptionResponse.php:32]
  #40 AphrontUnhandledExceptionResponse::setException(PhutilAggregateException) called at [<phorge>/webroot/index.php:46]

Even after locally creating /var/repo/1/ there is yet another exception not to be covered in this very task either.

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.