Page MenuHomePhorge

PHP 8.1 "strlen(null)" exception rendering dashboard panel with latest tasks when custom text field configured
Closed, ResolvedPublic

Description

  1. PHP 8.2.13, Phorge at 99ee9357eff29f450526607cabec9ec557cfdec3
  2. Have an older Phabricator database on that system which has set up a Dashboard panel defined by "Search For: Maniphest Tasks" and "Query: Open Tasks" on http://phorge.localhost/dashboard/view/1/ AND has a "text" type custom field defined under http://phorge.localhost/config/edit/maniphest.custom-field-definitions/ , for example:
{
  "external_reference": {
    "caption": "Reference",
    "description": "Reference bug id for bugs imported from Bugzilla",
    "edit": false,
    "name": "Reference",
    "search": true,
    "type": "text",
    "view": true,
    "fulltext": false
  }
}
  1. Install most recent Phorge on that machine and configure it to access that database (and run ./bin/storage upgrade if required)
  2. Try to access the Phorge frontpage.
[2023-12-05 03:03:48] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=arcpatch-D25374, ref.master=25611ba24add, ref.arcpatch-D25374=e0a29d0df650), phorge(head=ExceptionCustomTextField, ref.master=99ee9357eff2, ref.ExceptionCustomTextField=ee873956795f)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldText.php:33]
  #1 <#2> PhabricatorStandardCustomFieldText::applyApplicationSearchConstraintToQuery(ManiphestTaskSearchEngine, ManiphestTaskQuery, NULL) called at [<phorge>/src/infrastructure/customfield/field/PhabricatorCustomField.php:794]
  #2 <#2> PhabricatorCustomField::applyApplicationSearchConstraintToQuery(ManiphestTaskSearchEngine, ManiphestTaskQuery, NULL) called at [<phorge>/src/infrastructure/customfield/engineextension/PhabricatorCustomFieldSearchEngineExtension.php:48]
  #3 <#2> PhabricatorCustomFieldSearchEngineExtension::applyConstraintsToQuery(ManiphestTask, ManiphestTaskQuery, PhabricatorSavedQuery, array) called at [<phorge>/src/applications/search/engine/PhabricatorApplicationSearchEngine.php:177]
  #4 <#2> PhabricatorApplicationSearchEngine::buildQueryFromSavedQuery(PhabricatorSavedQuery) called at [<phorge>/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php:87]
  #5 <#2> PhabricatorDashboardQueryPanelType::renderPanelContent(PhabricatorUser, PhabricatorDashboardPanel, ManiphestTaskSearchEngine) called at [<phorge>/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php:172]
  #6 <#2> PhabricatorDashboardPanelRenderingEngine::renderNormalPanel() called at [<phorge>/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php:156]
  #7 phlog(RuntimeException) called at [<phorge>/src/applications/dashboard/engine/PhabricatorDashboardPanelRenderingEngine.php:158]
  #8 PhabricatorDashboardPanelRenderingEngine::renderPanel() called at [<phorge>/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelRenderController.php:55]
  #9 PhabricatorDashboardPanelRenderController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #10 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #11 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

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.