matomo-org / tag-manager

Free Open Source Matomo Tag Manager - A simple way to manage and maintain all of your (third-party) tags on your website.
https://matomo.org
GNU General Public License v3.0
174 stars 58 forks source link

A problem with Tag Manager’s preview feature #165

Closed ohadm2 closed 5 years ago

ohadm2 commented 5 years ago

Hi Everyone!

We have a problem in version 3.9.1 that we are very surprised no one reported yet.

The problem is this: after trying to enter a preview mode of a site via the Tag Manager’s container (e.g. ?mtmPreviewMode=J4iRd2NX etc.), we get an Angular’s “The controller with the name ‘MtmDebugController’ is not registered.” error.

We didn’t do anything to cause this …

A picture of the problem is attached.

Any help on this will be much appreciated.

tag-mgr-err

tsteur commented 5 years ago

@ohadm2 just tried to reproduce but it works nicely for me. IS there maybe any browser extension that could be breaking this?

ohadm2 commented 5 years ago

Thanks.

After your suggestion, I tried several other browsers other than my default one (Chrome) just to negate such a case.

The most odd thing happened: the problem reproduced on the first (Firefox), and second (Explorer) tries, but when I tried a third option (Edge), the page started working!

After seeing this, I wanted to update this ticket with this new info so to confirm the status I refreshed ALL of the other browsers to confirm that the page in fact loads properly only on one browser but when I did that, ALL of the other browsers started loading the page without any errors too! Isn't that weird???

It got me wondering: maybe there is a part on the server side that may create this problem (such as a temp resource etc.)? Do you know which files are involved in this load process?

I confirm now that this problem disappeared from my test environment but I need to know the details of this phenomenon in order to fix my production environment as well which is still showing the same symptoms.

In other words, I still need to understand the process of loading this page because there are some changes on our production environment so if you know the details on that it would be great if you could share that data.

Thanks!

tsteur commented 5 years ago

There shouldn't really be anything that could cause this (eg a temp resource). At least I can't think of anything right now. When this happens, can you check the browser console if any requests maybe fail?

ohadm2 commented 5 years ago

Hi.

  1. Do you have another explanation for this behavior? I need to find a way to debug this ...
  2. The problem is EXACTLY the same on our production network (this is why I originally thought this was a general Tag Manager bug). If the info I have shared is not enough please tell me what else you need.

Regards,

tsteur commented 5 years ago

Can you maybe share a URL for us to have a quick look? Feel free to email hello at matomo.org

ohadm2 commented 5 years ago

Yes. No problem.

I've sent the details to: hello@piwik.org.

Thanks!

tsteur commented 5 years ago

Thanks, we replied.

mattab commented 5 years ago

Got a similar report by email There was an error while regenerating container releases: Entry "Piwik\Auth" cannot be resolved: the class is not instantiable

Here is the full output:


[root@piwik ~]# /var/www/html/console core:archive --url=https://web.xxxxx.local/piwik/ >> /var/log/piwik-archive/piwik-archive.log
ERROR [2019-07-09 07:33:33] 18350 There was an error while regenerating container releases: Entry "Piwik\Auth" cannot be resolved: the class is not instantiable
Full definition:
Object (
class = #NOT INSTANTIABLE# Piwik\Auth
scope = singleton
lazy = false
)#0 /var/www/html/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php(243): DI\Definition\Exception\DefinitionException::create(Object(DI\Definition\ObjectDefinition), 'Entry "Piwik\\Au...')
#1 /var/www/html/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php(126): DI\Definition\Resolver\ObjectCreator->assertClassIsInstantiable(Object(DI\Definition\ObjectDefinition))
#2 /var/www/html/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php(70): DI\Definition\Resolver\ObjectCreator->createInstance(Object(DI\Definition\ObjectDefinition), Array)
#3 /var/www/html/vendor/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php(58): DI\Definition\Resolver\ObjectCreator->resolve(Object(DI\Definition\ObjectDefinition), Array)
#4 /var/www/html/vendor/php-di/php-di/src/DI/Container.php(303): DI\Definition\Resolver\ResolverDispatcher->resolve(Object(DI\Definition\ObjectDefinition), Array)
#5 /var/www/html/vendor/php-di/php-di/src/DI/Container.php(131): DI\Container->resolveDefinition(Object(DI\Definition\ObjectDefinition))
#6 /var/www/html/core/Container/StaticContainer.php(80): DI\Container->get('Piwik\\Auth')
#7 /var/www/html/core/Piwik.php(567): Piwik\Container\StaticContainer::get('Piwik\\Auth')
#8 /var/www/html/plugins/CoreHome/Menu.php(32): Piwik\Piwik::getLoginPluginName()
#9 /var/www/html/plugins/CoreHome/Menu.php(20): Piwik\Plugins\CoreHome\Menu->getLoginModule()
#10 /var/www/html/core/Menu/MenuTop.php(57): Piwik\Plugins\CoreHome\Menu->configureTopMenu(Object(Piwik\Menu\MenuTop))
#11 /var/www/html/plugins/TagManager/Controller.php(207): Piwik\Menu\MenuTop->getMenu()
#12 /var/www/html/plugins/TagManager/Controller.php(53): Piwik\Plugins\TagManager\Controller->renderTemplate('@TagManager/deb...')
#13 [internal function]: Piwik\Plugins\TagManager\Controller->debug()
#14 /var/www/html/core/FrontController.php(589): call_user_func_array(Array, Array)
#15 /var/www/html/core/FrontController.php(165): Piwik\FrontController->doDispatch('TagManager', 'debug', Array)
#16 /var/www/html/plugins/TagManager/Context/WebContext/JavaScriptTagManagerLoader.php(72): Piwik\FrontController->dispatch('TagManager', 'debug')
#17 /var/www/html/plugins/TagManager/Context/WebContext.php(166): Piwik\Plugins\TagManager\Context\WebContext\JavaScriptTagManagerLoader->getPreviewJsContent()
#18 /var/www/html/plugins/TagManager/Context/WebContext.php(152): Piwik\Plugins\TagManager\Context\WebContext->addPreviewCode('/*!!\n * Matomo ...', true, true, Array)
#19 /var/www/html/plugins/TagManager/Model/Container.php(123): Piwik\Plugins\TagManager\Context\WebContext->generate(Array)
#20 /var/www/html/plugins/TagManager/TagManager.php(253): Piwik\Plugins\TagManager\Model\Container->generateContainer(1, 'X00uHgoK')
#21 /var/www/html/core/Access.php(628): Piwik\Plugins\TagManager\TagManager->Piwik\Plugins\TagManager\{closure}()
#22 /var/www/html/core/Piwik.php(840): Piwik\Access::doAsSuperUser(Object(Closure))
#23 /var/www/html/plugins/TagManager/TagManager.php(261): Piwik\Piwik::doAsSuperUser(Object(Closure))
#24 [internal function]: Piwik\Plugins\TagManager\TagManager->regenerateReleasedContainers(Object(Piwik\CronArchive))
#25 /var/www/html/core/EventDispatcher.php(141): call_user_func_array(Array, Array)
#26 /var/www/html/core/Piwik.php(780): Piwik\EventDispatcher->postEvent('CronArchive.end', Array, false, Array)
#27 /var/www/html/core/CronArchive.php(555): Piwik\Piwik::postEvent('CronArchive.end', Array)
#28 /var/www/html/core/CronArchive.php(318): Piwik\CronArchive->end()
#29 /var/www/html/core/Access.php(628): Piwik\CronArchive->Piwik\{closure}()
#30 /var/www/html/core/CronArchive.php(319): Piwik\Access::doAsSuperUser(Object(Closure))
#31 /var/www/html/plugins/CoreConsole/Commands/CoreArchiver.php(27): Piwik\CronArchive->main()
#32 /var/www/html/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(257): Piwik\Plugins\CoreConsole\Commands\CoreArchiver->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#33 /var/www/html/vendor/symfony/console/Symfony/Component/Console/Application.php(874): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#34 /var/www/html/vendor/symfony/console/Symfony/Component/Console/Application.php(195): Symfony\Component\Console\Application->doRunCommand(Object(Piwik\Plugins\CoreConsole\Commands\CoreArchiver), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#35 [internal function]: Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#36 /var/www/html/core/Console.php(98): call_user_func(Array, Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#37 /var/www/html/core/Access.php(628): Piwik\Console->Piwik\{closure}()
#38 /var/www/html/core/Console.php(99): Piwik\Access::doAsSuperUser(Object(Closure))
#39 /var/www/html/vendor/symfony/console/Symfony/Component/Console/Application.php(126): Piwik\Console->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#40 /var/www/html/console(27): Symfony\Component\Console\Application->run()
#41 {main}
tsteur commented 5 years ago

@mattab I don't think this is related as in the user's case the JS files were simply not accessible from time to time for me. The issue you mentioned I can't reproduce. I would maybe suggest to update all files in Matomo again and see if it still happens (and make sure to run the latest Matomo version). Otherwise seems like an issue with LoginLdap maybe: https://github.com/matomo-org/matomo/issues/13270

will close this one for now.