Page MenuHomePhorge

Long search query can trigger raw "Too many tables; MariaDB can only use 61 tables in a join"
Open, Needs TriagePublic

Description

  1. Phorge at 8a3b70aa7d4c3376dabf5dfd5d3a0df68998711c, PHP 8.3.7
  2. Go to http://phorge.localhost/typeahead/class/PhabricatorSearchDatasource/?__path__=%2ftypeahead%2fclass%2fPhabricatorSearchDatasource%2f&__ajax__=true&__metablock__=569&q=i%20have%20a%20hacker%20and%20scammer%20that%20is%20on%20me%2024%20hoirs%20a%20day%20and%20had%20access%20to%20me%20icloud%20snd%20other%20accounts%20i%20cakled%20everyonevand%20even%20fraud%20cant%20help%20me%20this%20gurl%20is%20smart%20snd%20nadechersrlf%20the%20admin%20of%20my%20accounts%20while%20i%20was%20in%20a%20comma%20in%20the%20hospital%20for%20over%20a%20month%20ina%20half%20she%20is%20rtryingcto%20take%20over%20my%20identity%20and%20i%20refuse%20tovletcthat%20happen%20how%20do%20i%20stop%20her%20from%20being%20the%20admin%20of%20ny%20accounts%20i%20bever%20had%20inevand%20dintvneed%20one%20cause%20she%20doesntvhelp%20me%20she%20hackescinto%20ky%20accounts%20and%20scanms%20mecand&raw=i%20have%20a%20hacker%20and%20scammer%20that%20is%20on%20me%2024%20hoirs%20a%20day%20and%20had%20access%20to%20me%20icloud%20snd%20other%20accounts%20i%20cakled%20everyonevand%20even%20fraud%20cant%20help%20me%20this%20gurl%20is%20smart%20snd%20nadechersrlf%20the%20admin%20of%20my%20accounts%20while%20i%20was%20in%20a%20comma%20in%20the%20hospital%20for%20over%20a%20month%20ina%20half%20she%20is%20rtryingcto%20take%20over%20my%20identity%20and%20i%20refuse%20tovletcthat%20happen%20how%20do%20i%20stop%20her%20from%20being%20the%20admin%20of%20ny%20accounts%20i%20bever%20had%20inevand%20dintvneed%20one%20cause%20she%20doesntvhelp%20me%20she%20hackescinto%20ky%20accounts%20and%20scanms%20mecand%20 (I do not know why people do that but they do)

Expected outcome:

Some more gentle behavior in the web browser?

Actual outcome:

Web browser:
for (;;);{"error":{"code":"AphrontQueryException","info":"#1116: Too many tables; MariaDB can only use 61 tables in a join"},"payload":null}
Error log:

[2024-05-15 07:04:53] EXCEPTION: (AphrontQueryException) #1116: Too many tables; MariaDB can only use 61 tables in a join at [<phorge>/src/infrastructure/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:396]
arcanist(), ava(), phorge(), translations(), wmf-ext-misc()
  #0 <#2> AphrontBaseMySQLDatabaseConnection::throwQueryCodeException(integer, string) called at [<phorge>/src/infrastructure/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:321]
  #1 <#2> AphrontBaseMySQLDatabaseConnection::throwQueryException(mysqli) called at [<phorge>/src/infrastructure/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:217]
  #2 <#2> AphrontBaseMySQLDatabaseConnection::executeQuery(PhutilQueryString) called at [<phorge>/src/infrastructure/storage/xsprintf/queryfx.php:8]
  #3 <#2> queryfx(AphrontMySQLiDatabaseConnection, string, PhutilQueryString) called at [<phorge>/src/infrastructure/storage/xsprintf/queryfx.php:13]
  #4 <#2> queryfx_all(AphrontMySQLiDatabaseConnection, string, PhutilQueryString) called at [<phorge>/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php:304]
  #5 <#2> PhabricatorCursorPagedPolicyAwareQuery::loadStandardPageRowsWithConnection(AphrontMySQLiDatabaseConnection, string) called at [<phorge>/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php:295]
  #6 <#2> PhabricatorCursorPagedPolicyAwareQuery::loadStandardPageRows(PhabricatorUser) called at [<phorge>/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php:287]
  #7 <#2> PhabricatorCursorPagedPolicyAwareQuery::loadStandardPage(PhabricatorUser) called at [<phorge>/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php:283]
  #8 <#2> PhabricatorCursorPagedPolicyAwareQuery::loadPage() called at [<phorge>/src/infrastructure/query/policy/PhabricatorPolicyAwareQuery.php:251]
  #9 <#2> PhabricatorPolicyAwareQuery::execute() called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:183]
  #10 <#2> PhabricatorTypeaheadDatasource::executeQuery(PhabricatorPeopleQuery) called at [<phorge>/src/applications/people/typeahead/PhabricatorPeopleDatasource.php:35]
  #11 <#2> PhabricatorPeopleDatasource::loadResults() called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadDatasource.php:142]
  #12 <#2> PhabricatorTypeaheadCompositeDatasource::loadResultsForPhase(string, integer) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php:137]
  #13 <#2> PhabricatorTypeaheadCompositeDatasource::loadResultsForPhase(string, integer) called at [<phorge>/src/applications/typeahead/datasource/PhabricatorTypeaheadCompositeDatasource.php:49]
  #14 <#2> PhabricatorTypeaheadCompositeDatasource::loadResults() called at [<phorge>/src/applications/typeahead/controller/PhabricatorTypeaheadModularDatasourceController.php:91]
  #15 <#2> PhabricatorTypeaheadModularDatasourceController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #16 phlog(AphrontQueryException) called at [<phorge>/src/aphront/handler/PhabricatorAjaxRequestExceptionHandler.php:27]
  #17 PhabricatorAjaxRequestExceptionHandler::handleRequestThrowable(AphrontRequest, AphrontQueryException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #18 AphrontApplicationConfiguration::handleThrowable(AphrontQueryException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #19 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:204]
  #20 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]