Bug #88451
closedModule Backend User, Filtering leads to Exception
Added by Florian Schuhmann over 5 years ago. Updated about 5 years ago.
0%
Description
I'm running a TYPO3 v9.5.7 with multiple Be-User Groups.
When I filter for some group in the backend in the module "Backend Users" and repeat this process 3 times, I get the following error message:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 31600640 bytes) in /var/www/html/typo3/public/typo3/sysext/core/Classes/Log/Writer/FileWriter.php on line 155
After some more debugging I come to the real origin:
"Data too long for column 'uc' at row 1" Doctrine\DBAL\Exception\DriverException
When I go to the User Settings and click to "Reset Configuration and Clear Temporary Data", I can repeat the filtering process 3 times until the error occurs again. If I do not do this, the error occurs every time I try to filter in the module.
Setting the UC in DB to null and load the module "Backend users" the uc blows up to 1,04kB.
After submit the filter form the first time the uc reaches 4,39 MB
After second submit the uc reaches 13,18 MB
The third submit then leads to the error.
Files
2019-05-28_16h39_54.jpg (57.2 KB) 2019-05-28_16h39_54.jpg | Florian Schuhmann, 2019-05-28 16:44 | ||
2019-06-04_15h07_35.jpg (21.8 KB) 2019-06-04_15h07_35.jpg | Florian Schuhmann, 2019-06-04 15:07 |
Updated by Frank Nägler over 5 years ago
- Status changed from New to Needs Feedback
- Assignee set to Frank Nägler
I am still unable to reproduce the problem.
The UC filed in DB is of type MEDIUMBLOB, which means 16MB size.
The massive increase in your case is a bit weird, because in my instances with a small amount of BE user groups and a system with 200 groups, the size not change.
In my case the UC filed contains ~15.000 bytes.
I guess it is something else, maybe an extension which produce the problem.
Is it possible that you check the content of the first, second and third change and create a diff?
Updated by Florian Schuhmann over 5 years ago
- File 2019-06-04_15h07_35.jpg 2019-06-04_15h07_35.jpg added
After some debugging i see reflection informations and warnings in the uc like the following:
Returns the specified configuration. The actual configuration will be merged from different sources in a defined order. You can get the following types of configuration invoking: CONFIGURATION_TYPE_SETTINGS: Extbase settings CONFIGURATION_TYPE_FRAMEWORK: the current module/plugin settings CONFIGURATION_TYPE_FULL_TYPOSCRIPT: a raw TS array Note that this is a low level method and only makes sense to be used by Extbase internally.
or
subGroups";O:55:"TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorage":13:{s:64:" TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorage warning";s:240:"You should never see this warning. If you do, you probably used PHP array functions like current() on the TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorage. To retrieve the first result, you can use the rewind() and current() methods.";s:13:" * dataMapper";
s:46:" TYPO3\CMS\Extbase\Reflection\ClassSchema tags";a:1:{s:8:"internal";a:1:{i:0;s:59:"only to be used within Extbase, not part of TYPO3 Core API.";}}s:58:" TYPO3\CMS\Extbase\Reflection\ClassSchema injectProperties";a:0:{}s:55:" TYPO3\CMS\Extbase\Reflection\ClassSchema injectMethods"
{i:0;s:35:"http://forge.typo3.org/issues/36820";}s:6:"return";a:1:{i:0;s:46:"array Names of the properties to be serialized";}s:8:"internal";a:1:{i:0;s:59:"only to be used within Extbase, not part of TYPO3 Core API.";}}s:11:"annotations";a:0:{}s:8:"isAction";b:0;s:11:"description";s:388:"Serialization (sleep) helper. Removes properties of this object from serialization. This action is necessary, since there might be closures used in the accordant content objects (e.g. in FLUIDTEMPLATE) which cannot be serialized. It's fine to reset $this->contentObjects since elements will be recreated and are just a local cache, but not required for runtime logic and behaviour.";
Finally, the TSFE controller with TypoScript etc. is included
s:17:"includeGroupArray";a:0:{}s:14:" * TSdataArray";a:4:{i:0;s:1297:"options.enableBookmarks=1 options.file_list.enableDisplayBigControlPanel=selectable options.file_list.enableDisplayThumbnails=selectable options.file_list.enableClipBoard=selectable options.file_list.thumbnail { width = 64 height = 64 } options.pageTree { doktypesToShowInNewPageDragArea = 1,6,4,7,3,254,255,199 } options.contextMenu { table { pages { disableItems = tree.disableItems = } sys_file { disableItems = tree.disableItems = } sys_filemounts { disableItems = tree.disableItems = } } } [GLOBAL] options.saveDocView = 1 options.saveDocNew = 1 options.saveDocNew.pages = 0 options.saveDocNew.sys_file = 0 options.saveDocNew.sys_file_metadata = 0 options.disableDelete.sys_file = 1 [GLOBAL] options.saveDocNew.tx_gridelements_backend_layout=1 [GLOBAL] options.pageTree.doktypesToShowInNewPageDragArea := addToList(142)";i:1;s:23:"admPanel.enable.all = 1";i:2;s:137:" // Setting defaults for sys_note author / email... TCAdefaults.sys_note.author = TCAdefaults.sys_note.email = ";i:3;N;}s:14:" * userTS_text";s:1487:"options.enableBookmarks=1 options.file_list.enableDisplayBigControlPanel=selectable options.file_list.enableDisplayThumbnails=selectable options.file_list.enableClipBoard=selectable options.file_list.thumbnail { width = 64 height = 64 } options.pageTree { doktypesToShowInNewPageDragArea = 1,6,4,7,3,254,255,199 } options.contextMenu { table { pages { disableItems = tree.disableItems = } sys_file { disableItems = tree.disableItems = } sys_filemounts { disableItems = tree.disableItems = } } } [GLOBAL] options.saveDocView = 1 options.saveDocNew = 1 options.saveDocNew.pages = 0 options.saveDocNew.sys_file = 0 options.saveDocNew.sys_file_metadata = 0 options.disableDelete.sys_file = 1 [GLOBAL] options.saveDocNew.tx_gridelements_backend_layout=1 [GLOBAL] options.pageTree.doktypesToShowInNewPageDragArea := addToList(142) [GLOBAL] admPanel.enable.all = 1 [GLOBAL] // Setting defaults for sys_note author / email... TCAdefaults.sys_note.author = TCAdefaults.sys_note.email = [GLOBAL] ";
The hole serialized array contains a lot of those messages.
If I remove the subgroup relation between the groups, then the uc-field does not inflate.
Here are the relations shown:
I can't see a problem within it (e.g. no cycles or something else).
Updated by Florian Schuhmann over 5 years ago
Currently I can restrict it to the workspace groups. For this you need the following group setup:
[WS] LIVE > workspace_perms = 1 [META] Lead Editor > workspace_perms = 0 > subgroup = [WS] LIVE
Same phenomenon with the following setup:
[ACL] Workspaces > groupMods = web_WorkspacesWorkspaces > workspace_perms = 0 [META] Lead Editor > workspace_perms = 0 > subgroup = [ACL] Workspaces
Or with this setup:
[WS] EDIT workspace (Member) > workspace_perms = 0 > nothing set in this group. This group is only linked in the defined workspace as member. Same as this group is linked as adminusers in the workspace. [META] Lead Editor > workspace_perms = 0 > subgroup = [WS] EDIT workspace (Member)
If you filters for [META] Lead Editor with one of the above described setups, the uc field inflates. But if you filter for one of the specific workspace groups above, nothing happens.
So something within workspaces leads to this bug.
Updated by Wolfangel Cyril over 5 years ago
- PHP Version set to 7.2
we're reproducing the bug here, with the same TYPO3 Version, we can filter once after reseting data, then, "An exception occured while executing "UPDATE" 'be_users'' SET ''uc'' = ? WHERE 'uid'' = ?''
Updated by Dima D over 5 years ago
- PHP Version changed from 7.2 to 7.3
Environment info:
- TYPO3 v9.5.7
- PHP 7.3.2
- MySQL 5.7.22
On 2-3rd time of filtering I get "An exception occured while executing "UPDATE" 'be_users' SET 'uc' = ? WHERE 'uid' = ?....."
Updated by Konrad Michalik over 5 years ago
We're having the same problem while filtering the be users. Any updates so far?
Uncaught TYPO3 Exception: An exception occurred while executing 'UPDATE `be_users` SET `uc` = ? WHERE `uid` = ?' with params [...]
- TYPO3 v9.5.8
- PHP 7.2.20
- MariaDB 10.1.38
Updated by Frank Nägler over 5 years ago
- Status changed from Needs Feedback to Accepted
Updated by Florian Schuhmann over 5 years ago
is it possibly a related issue to: https://forge.typo3.org/issues/86361
which was fixed in 9.5.9?
Updated by Florian Schuhmann over 5 years ago
Seems to be fixed with https://forge.typo3.org/issues/86361
Updated by Riccardo De Contardi about 5 years ago
- Related to Bug #88245: Group filter in backend user module throws an exception added
Updated by Riccardo De Contardi about 5 years ago
- Related to Bug #86361: Filtering for a Backend User Group leads to an Exception in the Backend User Module added
Updated by Riccardo De Contardi about 5 years ago
- Status changed from Accepted to Closed
- Assignee deleted (
Frank Nägler)
@Florian Kuss Schuhmann thank you for your feedback;
I close this issue as solved with #86361; If you think that this is the wrong decision or experience the issue again, please reopen it or ping me.
Thank you and best regards.