Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix avatar cleanup on user delete #34147

Merged
merged 2 commits into from
Sep 20, 2022

Conversation

nickvergessen
Copy link
Member

Regression from 812016d (merged with 1 review only 🐱 )

Currently integration tests spam a huge log stack when deleting a user as the getAvatar in the listener fails to get the user from the user manager because it was wiped already now that the listener is a "post" listener.
So moving to the Before… event now which was the case before #32973 as well.

[Mon Sep 19 21:29:14 2022] {"Exception":"Exception","Message":"user does not exist","Code":0,"Trace":[{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/User\/Listeners\/UserDeletedListener.php","line":54,"function":"getAvatar","class":"OC\\Avatar\\AvatarManager","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/ServiceEventListener.php","line":87,"function":"handle","class":"OC\\User\\Listeners\\UserDeletedListener","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php","line":251,"function":"__invoke","class":"OC\\EventDispatcher\\ServiceEventListener","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php","line":73,"function":"callListeners","class":"Symfony\\Component\\EventDispatcher\\EventDispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/EventDispatcher.php","line":88,"function":"dispatch","class":"Symfony\\Component\\EventDispatcher\\EventDispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/EventDispatcher.php","line":100,"function":"dispatch","class":"OC\\EventDispatcher\\EventDispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/User\/User.php","line":315,"function":"dispatchTyped","class":"OC\\EventDispatcher\\EventDispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/apps\/provisioning_api\/lib\/Controller\/UsersController.php","line":1083,"function":"delete","class":"OC\\User\\User","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":225,"function":"deleteUser","class":"OCA\\Provisioning_API\\Controller\\UsersController","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":133,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/App.php","line":172,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/Route\/Router.php","line":298,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v1.php","line":62,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v2.php","line":23,"args":["\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v1.php"],"function":"require_once"}],"File":"\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/Avatar\/AvatarManager.php","Line":114,"message":"Could not cleanup avatar of participant3","exception":{"xdebug_message":"<tr><th align='left' bgcolor='#f57900' colspan=\"5\"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )<\/span> Exception: user does not exist in \/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/Avatar\/AvatarManager.php on line <i>114<\/i><\/th><\/tr>\n<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack<\/th><\/tr>\n<tr><th align='center' bgcolor='#eeeeec'>#<\/th><th align='left' bgcolor='#eeeeec'>Time<\/th><th align='left' bgcolor='#eeeeec'>Memory<\/th><th align='left' bgcolor='#eeeeec'>Function<\/th><th align='left' bgcolor='#eeeeec'>Location<\/th><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>1<\/td><td bgcolor='#eeeeec' align='center'>0.0000<\/td><td bgcolor='#eeeeec' align='right'>356528<\/td><td bgcolor='#eeeeec'>{main}( )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v2.php' bgcolor='#eeeeec'>...\/v2.php<b>:<\/b>0<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>2<\/td><td bgcolor='#eeeeec' align='center'>0.0000<\/td><td bgcolor='#eeeeec' align='right'>357424<\/td><td bgcolor='#eeeeec'>require_once( <font color='#00bb00'>'\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v1.php<\/font> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v2.php' bgcolor='#eeeeec'>...\/v2.php<b>:<\/b>23<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>3<\/td><td bgcolor='#eeeeec' align='center'>0.0652<\/td><td bgcolor='#eeeeec' align='right'>4453992<\/td><td bgcolor='#eeeeec'>OC\\Route\\Router->match( <span>$url = <\/span><span>&#39;\/ocsapp\/cloud\/users\/participant3&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/ocs\/v1.php' bgcolor='#eeeeec'>...\/v1.php<b>:<\/b>62<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>4<\/td><td bgcolor='#eeeeec' align='center'>0.0734<\/td><td bgcolor='#eeeeec' align='right'>5525320<\/td><td bgcolor='#eeeeec'>OC\\AppFramework\\App::main( <span>$controllerName = <\/span><span>&#39;UsersController&#39;<\/span>, <span>$methodName = <\/span><span>&#39;deleteUser&#39;<\/span>, <span>$container = <\/span><span>class OC\\AppFramework\\DependencyInjection\\DIContainer { private $middleWares = [0 =&gt; &#39;OCA\\\\Provisioning_API\\\\Middleware\\\\ProvisioningApiMiddleware&#39;]; private $server = class OC\\Server { private $webRoot = &#39;&#39;; protected $appContainers = [...]; protected $hasNoAppContainer = [...]; protected $namespaces = [...]; private ${OC\\AppFramework\\Utility\\SimpleContainer}container = class Pimple\\Container { ... } }; private ${OC\\AppFramework\\Utility\\SimpleContainer}container = class Pimple\\Container { private $values = [...]; private $factories = class SplObjectStorage { ... }; private $protected = class SplObjectStorage { ... }; private $frozen = [...]; private $raw = [...]; private $keys = [...] } }<\/span>, <span>$urlParams = <\/span><span>[&#39;userId&#39; =&gt; &#39;participant3&#39;, &#39;_route&#39; =&gt; &#39;ocs.provisioning_api.Users.deleteUser&#39;]<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/Route\/Router.php' bgcolor='#eeeeec'>...\/Router.php<b>:<\/b>298<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>5<\/td><td bgcolor='#eeeeec' align='center'>0.0841<\/td><td bgcolor='#eeeeec' align='right'>5756288<\/td><td bgcolor='#eeeeec'>OC\\AppFramework\\Http\\Dispatcher->dispatch( <span>$controller = <\/span><span>class OCA\\Provisioning_API\\Controller\\UsersController { protected $urlGenerator = class OC\\URLGenerator { private $config = class OC\\AllConfig { ... }; public $userSession = class OC\\User\\Session { ... }; private $cacheFactory = class OC\\Memcache\\Factory { ... }; private $request = class OC\\AppFramework\\Http\\Request { ... }; private $router = class OC\\Route\\Router { ... }; private $baseUrl = &#39;http:\/\/localhost:8080&#39;; private ?OCP\\App\\IAppManager $appManager = NULL }; private $logger = class OC\\AppFramework\\ScopedPsrLogger { private $inner = class OC\\Log\\PsrLoggerAdapter { ... }; private $appId = &#39;provisioning_api&#39; }; protected $l10nFactory = class OC\\L10N\\Factory { protected $requestLanguage = &#39;de_DE&#39;; protected $instances = [...]; protected $availableLanguages = [...]; protected $localeCache = [...]; protected $availableLocales = [...]; protected $pluralFunctions = [...]; protected $config = class OC\\AllConfig { ... }; protected $request = class OC\\AppFramework\\Http\\Request { ... }; protected $userSession = class OC\\User\\Session { ... }; protected $serverRoot = &#39;\/home\/nickv\/Nextcloud\/25\/server&#39; }; private $newUserMailHelper = class OCA\\Settings\\Mailer\\NewUserMailHelper { private $themingDefaults = class OCP\\Defaults { ... }; private $urlGenerator = class OC\\URLGenerator { ... }; private $l10nFactory = class OC\\L10N\\Factory { ... }; private $mailer = class OC\\Mail\\Mailer { ... }; private $secureRandom = class OC\\Security\\SecureRandom { ... }; private $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { ... }; private $config = class OC\\AllConfig { ... }; private $crypto = class OC\\Security\\Crypto { ... }; private $fromAddress = &#39;[email protected]&#39; }; private $secureRandom = class OC\\Security\\SecureRandom { }; private $remoteWipe = class OC\\Authentication\\Token\\RemoteWipe { private $tokenProvider = class OC\\Authentication\\Token\\Manager { ... }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... } }; private $knownUserService = class OC\\KnownUser\\KnownUserService { protected $mapper = class OC\\KnownUser\\KnownUserMapper { ... }; protected $knownUsers = [...] }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { private $dispatcher = class Symfony\\Component\\EventDispatcher\\EventDispatcher { ... }; private $container = class OC\\Server { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... } }; protected $userManager = class OC\\User\\Manager { private $backends = [...]; private $cachedUsers = [...]; private $config = class OC\\AllConfig { ... }; private $dispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $cache = class OC\\Memcache\\NullCache { ... }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private OC\\User\\DisplayNameCache $displayNameCache = class OC\\User\\DisplayNameCache { ... }; protected $listeners = [...] }; protected $config = class OC\\AllConfig { private OC\\SystemConfig $systemConfig = class OC\\SystemConfig { ... }; private ?OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { ... }; private OCP\\Cache\\CappedMemoryCache $userCache = class OCP\\Cache\\CappedMemoryCache { ... } }; protected $groupManager = class OC\\Group\\Manager { private $backends = [...]; private $userManager = class OC\\User\\Manager { ... }; private $dispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $cachedGroups = [...]; private $cachedUserGroups = [...]; private $subAdmin = class OC\\SubAdmin { ... }; protected $listeners = [...] }; protected $userSession = class OC\\User\\Session { private $manager = class OC\\User\\Manager { ... }; private $session = class OC\\Session\\CryptoSessionData { ... }; private $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { ... }; private $tokenProvider = class OC\\Authentication\\Token\\Manager { ... }; private $config = class OC\\AllConfig { ... }; protected $activeUser = class OC\\User\\User { ... }; private $random = class OC\\Security\\SecureRandom { ... }; private $lockdownManager = class OC\\Lockdown\\LockdownManager { ... }; private Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... } }; protected $accountManager = class OC\\Accounts\\AccountManager { private $connection = class OC\\DB\\ConnectionAdapter { ... }; private $config = class OC\\AllConfig { ... }; private $table = &#39;accounts&#39;; private $dataTable = &#39;accounts_data&#39;; private $eventDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $jobList = class OC\\BackgroundJob\\JobList { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $verificationToken = class OC\\Security\\VerificationToken\\VerificationToken { ... }; private $mailer = class OC\\Mail\\Mailer { ... }; private $defaults = class OCP\\Defaults { ... }; private $l10n = NULL; private $urlGenerator = class OC\\URLGenerator { ... }; private $crypto = class OC\\Security\\Crypto { ... }; private $l10nfactory = class OC\\L10N\\Factory { ... }; private OCP\\Cache\\CappedMemoryCache $internalCache = class OCP\\Cache\\CappedMemoryCache { ... } }; private ${OCP\\AppFramework\\OCSController}ocsVersion = 2; private ${OCP\\AppFramework\\ApiController}corsMethods = &#39;PUT, POST, GET, DELETE, PATCH&#39;; private ${OCP\\AppFramework\\ApiController}corsAllowedHeaders = &#39;Authorization, Content-Type, Accept&#39;; private ${OCP\\AppFramework\\ApiController}corsMaxAge = 1728000; protected $appName = &#39;provisioning_api&#39;; protected $request = class OC\\AppFramework\\Http\\Request { protected $inputStream = &#39;php:\/\/input&#39;; protected $content = NULL; protected $items = [...]; protected $allowedKeys = [...]; protected $requestId = class OC\\AppFramework\\Http\\RequestId { ... }; protected $config = class OC\\AllConfig { ... }; protected $crypto = NULL; protected $csrfTokenManager = class OC\\Security\\CSRF\\CsrfTokenManager { ... }; protected $contentDecoded = TRUE }; private ${OCP\\AppFramework\\Controller}responders = [&#39;json&#39; =&gt; class Closure { virtual $closure = &quot;$this-&gt;OCP\\AppFramework\\{closure}&quot;, ... }, &#39;xml&#39; =&gt; class Closure { virtual $closure = &quot;$this-&gt;OCP\\AppFramework\\{closure}&quot;, ... }] }<\/span>, <span>$methodName = <\/span><span>&#39;deleteUser&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/App.php' bgcolor='#eeeeec'>...\/App.php<b>:<\/b>172<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>6<\/td><td bgcolor='#eeeeec' align='center'>0.0861<\/td><td bgcolor='#eeeeec' align='right'>5782400<\/td><td bgcolor='#eeeeec'>OC\\AppFramework\\Http\\Dispatcher->executeController( <span>$controller = <\/span><span>class OCA\\Provisioning_API\\Controller\\UsersController { protected $urlGenerator = class OC\\URLGenerator { private $config = class OC\\AllConfig { ... }; public $userSession = class OC\\User\\Session { ... }; private $cacheFactory = class OC\\Memcache\\Factory { ... }; private $request = class OC\\AppFramework\\Http\\Request { ... }; private $router = class OC\\Route\\Router { ... }; private $baseUrl = &#39;http:\/\/localhost:8080&#39;; private ?OCP\\App\\IAppManager $appManager = NULL }; private $logger = class OC\\AppFramework\\ScopedPsrLogger { private $inner = class OC\\Log\\PsrLoggerAdapter { ... }; private $appId = &#39;provisioning_api&#39; }; protected $l10nFactory = class OC\\L10N\\Factory { protected $requestLanguage = &#39;de_DE&#39;; protected $instances = [...]; protected $availableLanguages = [...]; protected $localeCache = [...]; protected $availableLocales = [...]; protected $pluralFunctions = [...]; protected $config = class OC\\AllConfig { ... }; protected $request = class OC\\AppFramework\\Http\\Request { ... }; protected $userSession = class OC\\User\\Session { ... }; protected $serverRoot = &#39;\/home\/nickv\/Nextcloud\/25\/server&#39; }; private $newUserMailHelper = class OCA\\Settings\\Mailer\\NewUserMailHelper { private $themingDefaults = class OCP\\Defaults { ... }; private $urlGenerator = class OC\\URLGenerator { ... }; private $l10nFactory = class OC\\L10N\\Factory { ... }; private $mailer = class OC\\Mail\\Mailer { ... }; private $secureRandom = class OC\\Security\\SecureRandom { ... }; private $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { ... }; private $config = class OC\\AllConfig { ... }; private $crypto = class OC\\Security\\Crypto { ... }; private $fromAddress = &#39;[email protected]&#39; }; private $secureRandom = class OC\\Security\\SecureRandom { }; private $remoteWipe = class OC\\Authentication\\Token\\RemoteWipe { private $tokenProvider = class OC\\Authentication\\Token\\Manager { ... }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... } }; private $knownUserService = class OC\\KnownUser\\KnownUserService { protected $mapper = class OC\\KnownUser\\KnownUserMapper { ... }; protected $knownUsers = [...] }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { private $dispatcher = class Symfony\\Component\\EventDispatcher\\EventDispatcher { ... }; private $container = class OC\\Server { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... } }; protected $userManager = class OC\\User\\Manager { private $backends = [...]; private $cachedUsers = [...]; private $config = class OC\\AllConfig { ... }; private $dispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $cache = class OC\\Memcache\\NullCache { ... }; private $eventDispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private OC\\User\\DisplayNameCache $displayNameCache = class OC\\User\\DisplayNameCache { ... }; protected $listeners = [...] }; protected $config = class OC\\AllConfig { private OC\\SystemConfig $systemConfig = class OC\\SystemConfig { ... }; private ?OCP\\IDBConnection $connection = class OC\\DB\\ConnectionAdapter { ... }; private OCP\\Cache\\CappedMemoryCache $userCache = class OCP\\Cache\\CappedMemoryCache { ... } }; protected $groupManager = class OC\\Group\\Manager { private $backends = [...]; private $userManager = class OC\\User\\Manager { ... }; private $dispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $cachedGroups = [...]; private $cachedUserGroups = [...]; private $subAdmin = class OC\\SubAdmin { ... }; protected $listeners = [...] }; protected $userSession = class OC\\User\\Session { private $manager = class OC\\User\\Manager { ... }; private $session = class OC\\Session\\CryptoSessionData { ... }; private $timeFactory = class OC\\AppFramework\\Utility\\TimeFactory { ... }; private $tokenProvider = class OC\\Authentication\\Token\\Manager { ... }; private $config = class OC\\AllConfig { ... }; protected $activeUser = class OC\\User\\User { ... }; private $random = class OC\\Security\\SecureRandom { ... }; private $lockdownManager = class OC\\Lockdown\\LockdownManager { ... }; private Psr\\Log\\LoggerInterface $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... } }; protected $accountManager = class OC\\Accounts\\AccountManager { private $connection = class OC\\DB\\ConnectionAdapter { ... }; private $config = class OC\\AllConfig { ... }; private $table = &#39;accounts&#39;; private $dataTable = &#39;accounts_data&#39;; private $eventDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $jobList = class OC\\BackgroundJob\\JobList { ... }; private $logger = class OC\\Log\\PsrLoggerAdapter { ... }; private $verificationToken = class OC\\Security\\VerificationToken\\VerificationToken { ... }; private $mailer = class OC\\Mail\\Mailer { ... }; private $defaults = class OCP\\Defaults { ... }; private $l10n = NULL; private $urlGenerator = class OC\\URLGenerator { ... }; private $crypto = class OC\\Security\\Crypto { ... }; private $l10nfactory = class OC\\L10N\\Factory { ... }; private OCP\\Cache\\CappedMemoryCache $internalCache = class OCP\\Cache\\CappedMemoryCache { ... } }; private ${OCP\\AppFramework\\OCSController}ocsVersion = 2; private ${OCP\\AppFramework\\ApiController}corsMethods = &#39;PUT, POST, GET, DELETE, PATCH&#39;; private ${OCP\\AppFramework\\ApiController}corsAllowedHeaders = &#39;Authorization, Content-Type, Accept&#39;; private ${OCP\\AppFramework\\ApiController}corsMaxAge = 1728000; protected $appName = &#39;provisioning_api&#39;; protected $request = class OC\\AppFramework\\Http\\Request { protected $inputStream = &#39;php:\/\/input&#39;; protected $content = NULL; protected $items = [...]; protected $allowedKeys = [...]; protected $requestId = class OC\\AppFramework\\Http\\RequestId { ... }; protected $config = class OC\\AllConfig { ... }; protected $crypto = NULL; protected $csrfTokenManager = class OC\\Security\\CSRF\\CsrfTokenManager { ... }; protected $contentDecoded = TRUE }; private ${OCP\\AppFramework\\Controller}responders = [&#39;json&#39; =&gt; class Closure { virtual $closure = &quot;$this-&gt;OCP\\AppFramework\\{closure}&quot;, ... }, &#39;xml&#39; =&gt; class Closure { virtual $closure = &quot;$this-&gt;OCP\\AppFramework\\{closure}&quot;, ... }] }<\/span>, <span>$methodName = <\/span><span>&#39;deleteUser&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php' bgcolor='#eeeeec'>...\/Dispatcher.php<b>:<\/b>133<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>7<\/td><td bgcolor='#eeeeec' align='center'>0.0861<\/td><td bgcolor='#eeeeec' align='right'>5783168<\/td><td bgcolor='#eeeeec'>OCA\\Provisioning_API\\Controller\\UsersController->deleteUser( <span>$userId = <\/span><span>&#39;participant3&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php' bgcolor='#eeeeec'>...\/Dispatcher.php<b>:<\/b>225<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>8<\/td><td bgcolor='#eeeeec' align='center'>0.0865<\/td><td bgcolor='#eeeeec' align='right'>5784088<\/td><td bgcolor='#eeeeec'>OC\\User\\User->delete( )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/apps\/provisioning_api\/lib\/Controller\/UsersController.php' bgcolor='#eeeeec'>...\/UsersController.php<b>:<\/b>1083<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>9<\/td><td bgcolor='#eeeeec' align='center'>0.2446<\/td><td bgcolor='#eeeeec' align='right'>6546808<\/td><td bgcolor='#eeeeec'>OC\\EventDispatcher\\EventDispatcher->dispatchTyped( <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/User\/User.php' bgcolor='#eeeeec'>...\/User.php<b>:<\/b>315<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>10<\/td><td bgcolor='#eeeeec' align='center'>0.2446<\/td><td bgcolor='#eeeeec' align='right'>6546808<\/td><td bgcolor='#eeeeec'>OC\\EventDispatcher\\EventDispatcher->dispatch( <span>$eventName = <\/span><span>&#39;OCP\\\\User\\\\Events\\\\UserDeletedEvent&#39;<\/span>, <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/EventDispatcher.php' bgcolor='#eeeeec'>...\/EventDispatcher.php<b>:<\/b>100<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>11<\/td><td bgcolor='#eeeeec' align='center'>0.2446<\/td><td bgcolor='#eeeeec' align='right'>6546808<\/td><td bgcolor='#eeeeec'>Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch( <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span>, <span>&#39;OCP\\\\User\\\\Events\\\\UserDeletedEvent&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/EventDispatcher.php' bgcolor='#eeeeec'>...\/EventDispatcher.php<b>:<\/b>88<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>12<\/td><td bgcolor='#eeeeec' align='center'>0.2446<\/td><td bgcolor='#eeeeec' align='right'>6553904<\/td><td bgcolor='#eeeeec'>Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners( <span>$listeners = <\/span><span>[0 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 1 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 2 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 3 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 4 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 5 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 6 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 7 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 8 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 9 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }, 10 =&gt; class Closure { virtual $closure = &quot;$this-&gt;__invoke&quot;, public $this = class OC\\EventDispatcher\\ServiceEventListener { ... }; public $parameter = [...] }]<\/span>, <span>$eventName = <\/span><span>&#39;OCP\\\\User\\\\Events\\\\UserDeletedEvent&#39;<\/span>, <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php' bgcolor='#eeeeec'>...\/EventDispatcher.php<b>:<\/b>73<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>13<\/td><td bgcolor='#eeeeec' align='center'>0.2446<\/td><td bgcolor='#eeeeec' align='right'>6553904<\/td><td bgcolor='#eeeeec'>OC\\EventDispatcher\\ServiceEventListener->__invoke( <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span>, <span>&#39;OCP\\\\User\\\\Events\\\\UserDeletedEvent&#39;<\/span>, <span>class Symfony\\Component\\EventDispatcher\\EventDispatcher { private $listeners = [&#39;OC\\Authentication\\Events\\LoginFailed&#39; =&gt; [...], &#39;OCP\\User\\Events\\PostLoginEvent&#39; =&gt; [...], &#39;OCP\\User\\Events\\UserChangedEvent&#39; =&gt; [...], &#39;OCP\\User\\Events\\UserDeletedEvent&#39; =&gt; [...], &#39;OCP\\Group\\Events\\UserAddedEvent&#39; =&gt; [...], &#39;OCP\\Group\\Events\\UserRemovedEvent&#39; =&gt; [...], &#39;OCP\\Share\\Events\\ShareCreatedEvent&#39; =&gt; [...], &#39;OCP\\Files\\Events\\InvalidateMountCacheEvent&#39; =&gt; [...], &#39;OCA\\Circles\\Events\\CreatingCircleEvent&#39; =&gt; [...], &#39;OCA\\Circles\\Events\\DestroyingCircleEvent&#39; =&gt; [...], &#39;OCA\\Circles\\Events\\AddingCircleMemberEvent&#39; =&gt; [...], &#39;OCA\\Circles\\Events\\RemovingCircleMemberEvent&#39; =&gt; [...], &#39;OCP\\Share::preUnshare&#39; =&gt; [...], &#39;OCP\\Share::postUnshare&#39; =&gt; [...], &#39;OCP\\Share::postUnshareFromSelf&#39; =&gt; [...], &#39;OCP\\Share::preShare&#39; =&gt; [...], &#39;OCP\\Share::postShare&#39; =&gt; [...], &#39;OCP\\Dashboard\\RegisterWidgetEvent&#39; =&gt; [...], &#39;OCA\\Files\\Event\\LoadAdditionalScriptsEvent&#39; =&gt; [...], &#39;OCA\\Files\\Event\\LoadSidebar&#39; =&gt; [...], &#39;OCP\\Comments\\ICommentsManager::registerEntity&#39; =&gt; [...], &#39;OCP\\Contacts\\Events\\ContactInteractedWithEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarCreatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarMovedToTrashEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarUpdatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarRestoredEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectCreatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectUpdatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectMovedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectMovedToTrashEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarObjectRestoredEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarShareUpdatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarPublishedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarUnpublishedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\SubscriptionCreatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\SubscriptionDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\AddressBookCreatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\AddressBookDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\AddressBookUpdatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\AddressBookShareUpdatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CardCreatedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CardDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CardUpdatedEvent&#39; =&gt; [...], &#39;OCP\\Federation\\Events\\TrustedServerRemovedEvent&#39; =&gt; [...], &#39;OCP\\Config\\BeforePreferenceDeletedEvent&#39; =&gt; [...], &#39;OCP\\Config\\BeforePreferenceSetEvent&#39; =&gt; [...], &#39;OCP\\AppFramework\\Http\\Events\\BeforeTemplateRenderedEvent&#39; =&gt; [...], &#39;OCP\\Files\\Events\\Node\\NodeDeletedEvent&#39; =&gt; [...], &#39;OC\\Authentication\\Events\\AppPasswordCreatedEvent&#39; =&gt; [...], &#39;OCP\\Group\\Events\\GroupDeletedEvent&#39; =&gt; [...], &#39;OCP\\Security\\CSP\\AddContentSecurityPolicyEvent&#39; =&gt; [...], &#39;OCP\\Security\\FeaturePolicy\\AddFeaturePolicyEvent&#39; =&gt; [...], &#39;OCP\\User\\Events\\BeforeUserLoggedOutEvent&#39; =&gt; [...], &#39;OCA\\Files_Sharing\\Event\\BeforeTemplateRenderedEvent&#39; =&gt; [...], &#39;OCP\\WorkflowEngine\\Events\\RegisterOperationsEvent&#39; =&gt; [...], &#39;OCA\\Talk\\Events\\AttendeesAddedEvent&#39; =&gt; [...], &#39;OCA\\Talk\\Events\\AttendeesRemovedEvent&#39; =&gt; [...], &#39;OCA\\Talk\\Events\\SendCallNotificationEvent&#39; =&gt; [...], &#39;OCA\\Circles\\Events\\CircleDestroyedEvent&#39; =&gt; [...], &#39;OCP\\DirectEditing\\RegisterDirectEditorEvent&#39; =&gt; [...], &#39;OCA\\Viewer\\Event\\LoadViewer&#39; =&gt; [...], &#39;OCP\\Files\\Events\\Node\\NodeCopiedEvent&#39; =&gt; [...], &#39;OCP\\Files\\Events\\Node\\BeforeNodeRenamedEvent&#39; =&gt; [...], &#39;OCP\\Files\\Events\\Node\\BeforeNodeDeletedEvent&#39; =&gt; [...], &#39;OCA\\TwoFactorBackupCodes\\Event\\CodesGenerated&#39; =&gt; [...], &#39;OCP\\Authentication\\TwoFactorAuth\\IRegistry::enable&#39; =&gt; [...], &#39;OCP\\Authentication\\TwoFactorAuth\\IRegistry::disable&#39; =&gt; [...], &#39;OCP\\User\\Events\\UserLiveStatusEvent&#39; =&gt; [...], &#39;OCP\\WorkflowEngine\\Events\\LoadSettingsScriptsEvent&#39; =&gt; [...], &#39;OCP\\IGroup::postAddUser&#39; =&gt; [...], &#39;OCP\\IGroup::postRemoveUser&#39; =&gt; [...], &#39;OCP\\IUser::postDelete&#39; =&gt; [...], &#39;OCP\\IGroup::preDelete&#39; =&gt; [...], &#39;\\OCP\\Collaboration\\Resources::loadAdditionalScripts&#39; =&gt; [...], &#39;OCP\\Collaboration\\Resources\\LoadAdditionalScriptsEvent&#39; =&gt; [...], &#39;OCP\\Share\\Events\\ShareDeletedEvent&#39; =&gt; [...], &#39;OCP\\IDBConnection::CHECK_MISSING_INDEXES&#39; =&gt; [...], &#39;OCP\\IDBConnection::CHECK_MISSING_PRIMARY_KEYS&#39; =&gt; [...], &#39;OCP\\IDBConnection::CHECK_MISSING_COLUMNS&#39; =&gt; [...], &#39;OC\\Authentication\\Events\\RemoteWipeStarted&#39; =&gt; [...], &#39;OC\\Authentication\\Events\\RemoteWipeFinished&#39; =&gt; [...], &#39;OCP\\User\\Events\\BeforeUserDeletedEvent&#39; =&gt; [...], &#39;OCP\\Files\\Events\\NodeRemovedFromCache&#39; =&gt; [...], &#39;OCP\\Files\\Events\\Node\\NodeWrittenEvent&#39; =&gt; [...], &#39;OCP\\IUser::firstLogin&#39; =&gt; [...], &#39;OC\\AccountManager::userUpdated&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSessionJoinCall&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preEndCallForEveryone&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postRemoveBySession&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postRemoveUser&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSessionLeaveCall&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postUserDisconnectRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postAddUsers&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postJoinRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preSessionJoinCall&#39; =&gt; [...], &#39;OCA\\Talk\\Room::createdRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetName&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetDescription&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetPassword&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetType&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetReadOnly&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetListable&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetLobbyState&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetParticipantType&#39; =&gt; [...], &#39;OCA\\Talk\\Share\\RoomShareProvider::shareFileAgain&#39; =&gt; [...], &#39;OCA\\Talk\\Room::afterSetMessageExpiration&#39; =&gt; [...], &#39;OCA\\Talk\\Chat\\MessageParser::parseMessage&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preJoinRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preJoinRoomGuest&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preAddUsers&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postCleanGuests&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postDeleteRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postJoinRoomGuest&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSessionUpdateCallFlags&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetPermissions&#39; =&gt; [...], &#39;OCA\\Talk\\GuestManager::updateName&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preDeleteRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preRemoveUser&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preRemoveBySession&#39; =&gt; [...], &#39;OCA\\Talk\\Room::preUserDisconnectRoom&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetParticipantPermissions&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postSetSIPEnabled&#39; =&gt; [...], &#39;OCA\\Talk\\Room::postEndCallForEveryone&#39; =&gt; [...], &#39;OCA\\Talk\\Chat\\ChatManager::postSendMessage&#39; =&gt; [...], &#39;OCA\\Talk\\Chat\\ChatManager::postSendSystemMessage&#39; =&gt; [...], &#39;OCA\\Talk\\Chat\\ChatManager::postSendMultipleSystemMessage&#39; =&gt; [...], ...]; private $sorted = []; private $optimized = [&#39;OCP\\User\\Events\\BeforeUserDeletedEvent&#39; =&gt; [...], &#39;OCP\\IUser::postDelete&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CardDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\CalendarDeletedEvent&#39; =&gt; [...], &#39;OCA\\DAV\\Events\\AddressBookDeletedEvent&#39; =&gt; [...], &#39;OCP\\User\\Events\\UserDeletedEvent&#39; =&gt; [...]] }<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/3rdparty\/symfony\/event-dispatcher\/EventDispatcher.php' bgcolor='#eeeeec'>...\/EventDispatcher.php<b>:<\/b>251<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>14<\/td><td bgcolor='#eeeeec' align='center'>0.2449<\/td><td bgcolor='#eeeeec' align='right'>6560584<\/td><td bgcolor='#eeeeec'>OC\\User\\Listeners\\UserDeletedListener->handle( <span>$event = <\/span><span>class OCP\\User\\Events\\UserDeletedEvent { private $user = class OC\\User\\User { protected $accountManager = NULL; private $uid = &#39;participant3&#39;; private $displayName = &#39;participant3-displayname&#39;; private $backend = class OC\\User\\Database { ... }; private $legacyDispatcher = class OC\\EventDispatcher\\SymfonyAdapter { ... }; private $dispatcher = class OC\\EventDispatcher\\EventDispatcher { ... }; private $enabled = NULL; private $emitter = class OC\\User\\Manager { ... }; private $home = &#39;\/home\/nickv\/Nextcloud\/25\/data\/participant3&#39;; private $lastLogin = NULL; private $config = class OC\\AllConfig { ... }; private $avatarManager = NULL; private $urlGenerator = class OC\\URLGenerator { ... } }; private ${OCP\\EventDispatcher\\Event}propagationStopped = FALSE }<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/EventDispatcher\/ServiceEventListener.php' bgcolor='#eeeeec'>...\/ServiceEventListener.php<b>:<\/b>87<\/td><\/tr>\n<tr><td bgcolor='#eeeeec' align='center'>15<\/td><td bgcolor='#eeeeec' align='center'>0.2449<\/td><td bgcolor='#eeeeec' align='right'>6560584<\/td><td bgcolor='#eeeeec'>OC\\Avatar\\AvatarManager->getAvatar( <span>$userId = <\/span><span>&#39;participant3&#39;<\/span> )<\/td><td title='\/home\/nickv\/Nextcloud\/25\/server\/lib\/private\/User\/Listeners\/UserDeletedListener.php' bgcolor='#eeeeec'>...\/UserDeletedListener.php<b>:<\/b>54<\/td><\/tr>\n"},"CustomMessage":"Could not cleanup avatar of participant3"}

Afterwards deleting is "good" again:

[Mon Sep 19 21:35:56 2022] 127.0.0.1:43490 [200]: DELETE /ocs/v2.php/cloud/users/participant1
[Mon Sep 19 21:35:56 2022] 127.0.0.1:43490 Closing
[Mon Sep 19 21:35:56 2022] 127.0.0.1:43492 Accepted
[Mon Sep 19 21:35:56 2022] {"message":"Deprecated event type for OCP\\IUser::postDelete: Symfony\\Component\\EventDispatcher\\GenericEvent is used"}
[Mon Sep 19 21:35:56 2022] {"app":"dav","message":"Activity generated for a deleted card in addressbook 1"}
[Mon Sep 19 21:35:56 2022] {"app":"dav","message":"Activity generated for deleted calendar 68"}
[Mon Sep 19 21:35:56 2022] {"app":"dav","message":"Reminders of calendar 68 cleaned up"}
[Mon Sep 19 21:35:56 2022] {"app":"dav","message":"Default calendar needs no update because the deleted calendar is no the user's default one"}
[Mon Sep 19 21:35:56 2022] {"app":"dav","message":"Activity generated for deleted addressbook 68"}
[Mon Sep 19 21:35:56 2022] {"app":"provisioning_api","message":"Controller OCA\\Provisioning_API\\Controller\\UsersController::deleteUser created 75 QueryBuilder objects, please check if they are created inside a loop by accident."}
[Mon Sep 19 21:35:56 2022] {"app":"provisioning_api","message":"Controller OCA\\Provisioning_API\\Controller\\UsersController::deleteUser executed 105 queries."}

@blizzz
Copy link
Member

blizzz commented Sep 20, 2022

The autoloaders are not up to date

Signed-off-by: Joas Schilling <[email protected]>
@nickvergessen nickvergessen merged commit 29af54f into master Sep 20, 2022
@nickvergessen nickvergessen deleted the bugfix/noid/fix-avatar-cleanup-on-user-delete branch September 20, 2022 15:11
@blizzz blizzz mentioned this pull request Sep 22, 2022
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants