Project

General

Profile

Actions

Bug #86877

closed

refindex:update does not work in CLI-Context

Added by Hannes Strangmeier about 6 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2018-11-07
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
9
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Hi,

while updating the referenceindex on the commandline I get the following error:

me@mymachine:/path/to/typo3# php typo3/sysext/core/bin/typo3 referenceindex:update

*******************************************
Reference Index being Updated
*******************************************

Uncaught TYPO3 Exception Argument 1 passed to TYPO3\CMS\Core\Session\Backend\DatabaseSessionBackend::update() must be of the type string, null given, called in /path/to/typo3/typo3_src-9.5.1/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php on line 1277
thrown in file /path/to/typo3/typo3_src-9.5.1/typo3/sysext/core/Classes/Session/Backend/DatabaseSessionBackend.php
in line 159

It looks like this is caused by typo3/sysext/core/Classes/Database/ReferenceIndex.php
Around line 1480 a FlashMessage is created, but the current context is not taken into account. Since there is no backend-session in the CLI context, this fails:

        $flashMessage = GeneralUtility::makeInstance(
            FlashMessage::class,
            $errorCount ? implode('##LF##', $errors) : 'Index Integrity was perfect!',
            $recordsCheckedString,
            $errorCount ? FlashMessage::ERROR : FlashMessage::OK
        );
        /** @var \TYPO3\CMS\Core\Messaging\FlashMessageService $flashMessageService */
        $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
        /** @var \TYPO3\CMS\Core\Messaging\FlashMessageQueue $defaultFlashMessageQueue */
        $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
        $defaultFlashMessageQueue->enqueue($flashMessage);
        $bodyContent = $defaultFlashMessageQueue->renderFlashMessages();

According to https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/FlashMessages/Index.html I would assume, that FlashMessageRendererResolver should be used?
The referenceindex seems to be updated nontheless, but in environments where you determine the success of the referenceindex update based on the exit code (which is 1 in this case), you can only assume that it failed (thereby preventing further steps to be taken, unless you do not care about errors at all).

Initially i tested this on a fresh installation with the introductionpackage (installed via preconfigured distribution). The error also persists after deinstalling both bootstrap_package as well as introduction. So i assume that it is a core-issue.

I was able to reproduce this in different environments, including a Ubuntu 16.04.2 LTS‬ with Plesk 17.8 on and PHP 7.2.11 with TYPO3 9.5.1 (non-composer)


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #93549: DataHandler unusable in CLI (Symfony) mode because FlashMessages using session dataClosed2021-02-19

Actions
Actions #1

Updated by Gerrit Code Review about 6 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/58865

Actions #2

Updated by Hannes Strangmeier about 6 years ago

patch worked for me, thx!

Actions #3

Updated by Georg Ringer about 6 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #4

Updated by Benni Mack over 5 years ago

  • Status changed from Resolved to Closed
Actions #5

Updated by S P almost 4 years ago

  • Related to Bug #93549: DataHandler unusable in CLI (Symfony) mode because FlashMessages using session data added
Actions

Also available in: Atom PDF