Page MenuHomePhorge

PHP 8.1 "strlen(null)" exception blocks rendering "Browse Dashboards" dialog
Closed, ResolvedPublic

Description

  1. PHP 8.2.6; Phorge at 2df7ea13a3877250354556f08f40e26ccc727144, with D25179 and D25226 on top
  2. Have a Legalpad document already set up (see T15395 for steps)
  3. Go to http://phorge.localhost/legalpad/signatures/1/
  4. Select Use Results in upper right corner
  5. Select Add to Dashboard
  6. In Add Panel to Dashboard overlay dialog, in the Dashboard field, select the Magnifier icon
[2023-05-13 11:12:09] 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=c14785c3795c), phorge(head=sigsDashb, ref.master=2df7ea13a387, ref.sigsDashb=2df7ea13a387)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/search/compiler/PhutilSearchQueryCompiler.php:107]
  #1 <#2> PhutilSearchQueryCompiler::tokenizeQuery(NULL) called at [<phorge>/src/applications/search/compiler/PhutilSearchQueryCompiler.php:94]
  #2 <#2> PhutilSearchQueryCompiler::newTokens(NULL) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:620]
  #3 <#2> PhabricatorTypeaheadDatasource::applyFerretConstraints(PhabricatorDashboardQuery, PhabricatorDashboardFerretEngine, string, NULL) called at [<phorge>/src/applications/dashboard/typeahead/PhabricatorDashboardDatasource.php:21]
  #4 <#2> PhabricatorDashboardDatasource::loadResults() called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:142]
  #5 <#2> PhabricatorTypeaheadDatasource::loadResultsForPhase(string, integer) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php:136]
  #6 <#2> PhabricatorTypeaheadCompositeDatasource::loadResultsForPhase(string, integer) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php:48]
  #7 <#2> PhabricatorTypeaheadCompositeDatasource::loadResults() called at [<phorge>/src/applications/typeahead/controller/PhabricatorTypeaheadModularDatasourceController.php:91]
  #8 <#2> PhabricatorTypeaheadModularDatasourceController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #9 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #10 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #11 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #12 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #13 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

Fix that exception; afterwards Browse Dashboards overlay dialog gets rendered in web browser.

Related Objects