Bug #102104
closedMigration of sys_log entries to a JSON formatted value failes
100%
Description
Hi,
when the sys_log table has a lot records, the migration of sys_log entries to a JSON formatted value failes due to memory limitations.
The process has to be converted using rather the result object than the result array list.
The following will solve the issue in TYPO3\CMS\Install\Updates\SysLogSerializationUpdate
$queryBuilder = $this->getPreparedQueryBuilder(); $result = $queryBuilder ->select('uid', 'log_data') ->where( $queryBuilder->expr()->like('log_data', $queryBuilder->createNamedParameter('a:%')) ) ->executeQuery(); while ($record = $result->fetchAssociative()) { $logData = $this->unserializeLogData($record['log_data'] ?? ''); $connection->update( self::TABLE_NAME, ['log_data' => json_encode($logData)], ['uid' => (int)$record['uid']] ); } // foreach ($this->getRecordsToUpdate() as $record) { // $logData = $this->unserializeLogData($record['log_data'] ?? ''); // $connection->update( // self::TABLE_NAME, // ['log_data' => json_encode($logData)], // ['uid' => (int)$record['uid']] // ); // }
Thanks for fixing the issue.
Updated by Christian Kuhn over 1 year ago
Good catch and solution suggestion. I'll try to come up with something.
Updated by Gerrit Code Review over 1 year ago
- Status changed from New to Under Review
Patch set 1 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/81363
Updated by Gerrit Code Review over 1 year ago
Patch set 2 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/81363
Updated by Gerrit Code Review over 1 year ago
Patch set 1 for branch 12.4 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/81364
Updated by Christian Kuhn over 1 year ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset f68260b0bc5a04530621c3cb6a8450d232fbf960.