Circular reference detected for service Oxid EE 6.4.0

Moin,

ich habe in meiner Composer Installation den Core von PE auf EE gewechselt und erhalte nun folgenden Fehler beim switchen der Mandaten.

Wäre super wenn mir hier vielleicht jemand ein Tipp geben könnte wie ich das Problem löse.

Das System ist ein Update System welches ich von 5.x geupdated hatte.

[2021-12-19 14:32:18] OXID Logger.ERROR: Circular reference detected for service “Psr\Log\LoggerInterface”, path: “Psr\Log\LoggerInterface → Psr\Log\LoggerInterface”. ["[object] (Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException(code: 0): Circular reference detected for service “Psr\Log\LoggerInterface”, path: “Psr\Log\LoggerInterface → Psr\Log\LoggerInterface”. at /usr/www/users/oxidec/oxid/releases/20/vendor/symfony/dependency-injection/Container.php:297)\n[stacktrace]\n#0 /usr/www/users/oxidec/oxid/releases/20/source/overridablefunctions.php(209): Symfony\Component\DependencyInjection\Container->get(‘Psr\\Log\\LoggerI…’)\n#1 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(329): getLogger()\n#2 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(420): OxidEsales\EshopCommunity\Core\Registry::getLogger()\n#3 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(344): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->onModuleExtensionCreationError(‘ddoevisualcmsox…’)\n#4 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(286): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->backwardsCompatibleCreateClassExtension(‘oxlang’, ‘ddoe/visualcms/…’)\n#5 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(251): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassExtension(‘oxlang’, ‘ddoe/visualcms/…’)\n#6 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(56): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassExtensions(Array, ‘oxlang’)\n#7 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php(270): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassChain(‘OxidEsales\\Esho…’, ‘oxlang’)\n#8 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php(220): OxidEsales\EshopCommunity\Core\UtilsObject->getClassName(‘oxlang’)\n#9 /usr/www/users/oxidec/oxid/releases/20/source/oxfunctions.php(104): OxidEsales\EshopCommunity\Core\UtilsObject->oxNew(‘OxidEsales\\Esho…’)\n#10 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(409): oxNew(‘OxidEsales\\Esho…’)\n#11 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(429): OxidEsales\EshopCommunity\Core\Registry::createObject(‘OxidEsales\\Esho…’)\n#12 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(113): OxidEsales\EshopCommunity\Core\Registry::getObject(‘OxidEsales\\Esho…’)\n#13 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(2239): OxidEsales\EshopCommunity\Core\Registry::getLang()\n#14 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(959): OxidEsales\EshopCommunity\Core\Config->getShopUrlByLanguage(NULL, true)\n#15 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsServer.php(64): OxidEsales\EshopCommunity\Core\Config->getSslShopUrl()\n#16 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Session.php(1176): OxidEsales\EshopCommunity\Core\UtilsServer->setOxCookie(‘admin_sid’, ‘23e5ee9e6f1f384…’)\n#17 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Session.php(999): OxidEsales\EshopCommunity\Core\Session->setSessionCookie(‘23e5ee9e6f1f384…’)\n#18 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Session.php(248): OxidEsales\EshopCommunity\Core\Session->_setSessionId(‘23e5ee9e6f1f384…’)\n#19 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(472): OxidEsales\EshopCommunity\Core\Session->start()\n#20 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ee/Core/Config.php(563): OxidEsales\EshopCommunity\Core\Config->initializeShop()\n#21 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(440): OxidEsales\EshopEnterprise\Core\Config->initializeShop()\n#22 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(333): OxidEsales\EshopCommunity\Core\Config->init()\n#23 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php(2167): OxidEsales\EshopCommunity\Core\Config->getConfigParam(‘sShopDir’)\n#24 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Internal/Transition/Utility/Context.php(41): OxidEsales\EshopCommunity\Core\Config->getLogsDir()\n#25 /usr/www/users/oxidec/oxid/shared/source/tmp/container_cache.php(679): OxidEsales\EshopCommunity\Internal\Transition\Utility\Context->getLogFilePath()\n#26 /usr/www/users/oxidec/oxid/releases/20/vendor/symfony/dependency-injection/Container.php(306): ProjectServiceContainer->getLoggerInterfaceService()\n#27 /usr/www/users/oxidec/oxid/releases/20/source/overridablefunctions.php(209): Symfony\Component\DependencyInjection\Container->get(‘Psr\\Log\\LoggerI…’)\n#28 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(329): getLogger()\n#29 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(420): OxidEsales\EshopCommunity\Core\Registry::getLogger()\n#30 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(344): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->onModuleExtensionCreationError(‘dd_base_oxshopc…’)\n#31 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(286): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->backwardsCompatibleCreateClassExtension(‘oxshopcontrol’, ‘digidesk/dd_bas…’)\n#32 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(251): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassExtension(‘oxshopcontrol’, ‘digidesk/dd_bas…’)\n#33 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Module/ModuleChainsGenerator.php(56): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassExtensions(Array, ‘oxshopcontrol’)\n#34 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php(270): OxidEsales\EshopCommunity\Core\Module\ModuleChainsGenerator->createClassChain(‘OxidEsales\\Esho…’, ‘oxshopcontrol’)\n#35 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php(220): OxidEsales\EshopCommunity\Core\UtilsObject->getClassName(‘oxshopcontrol’)\n#36 /usr/www/users/oxidec/oxid/releases/20/source/oxfunctions.php(104): OxidEsales\EshopCommunity\Core\UtilsObject->oxNew(‘OxidEsales\\Esho…’)\n#37 /usr/www/users/oxidec/oxid/releases/20/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(25): oxNew(‘OxidEsales\\Esho…’)\n#38 /usr/www/users/oxidec/oxid/releases/20/source/index.php(16): OxidEsales\EshopCommunity\Core\Oxid::run()\n#39 /usr/www/users/oxidec/oxid/releases/20/source/admin/index.php(12): require_once(’/usr/www/users/…’)\n#40 {main}\n"] []

Moin :slight_smile:

Tipp wäre vendor Verzeichnis zu löschen oder sicherheitshalber in _vendor umzubennen und anschließend über Composer neu zu installieren mit

composer install --no-dev

Ansonsten sei noch angemerkt, dass dieses Forum der Community Edition vorbehalten ist und normalerweise kein Support für PE oder EE erfolgen.

Viele Grüße,
Tim

Seit wann ist das denn so?

wurde bisher immer so kommuniziert. Ggfs. hat sich dies geändert seitdem es den Professional Serivce von OXID eSales nicht mehr gibt.

Beispiel aus 2014

ruf mal beim Support an, wir sind hier nur kleine Community Edition Nutzer :slight_smile:

oder Beispiel aus 2009

Betreffend dem Quellcode für die EE musst du dich beim Support melden.

Danke für deine Antwort, ich habe das ganze per Composer komplett neu installiert, leider keine Änderung.

Ich wusste nicht, dass das Forum nur für die CE ist, da ich schon ein paar mal Hilfe für die PE/EE bekommen hatte und dachte “Vielleicht bin ich nicht der einzige mit dem Problem”.

Noch folgendes gefunden, dies könnte Dein Problem lösen Fix for OXID 6.2 circular reference service problems · GitHub

Quelle: https://twitter.com/proudcommerce/status/1265538503141720064?lang=de

Weiß nicht wie dort der Stand ist seitens OXID eSales. Da die PE und EE meist einen Supportvertrag mit sich bringen um direkt beim offiziellen Support von OXID eSales nachzufragen. Dort müsste man herausfinden ob es den offiziellen Support noch gibt.

Update: Auf der Webseite findet man Supportangebot: Unser Service & Support ist Made in Germany • OXID eSales AG dort am Besten für technische PE und EE Geschichten anfragen.

@indianer3c
Solang es sich um PE/EE spezifischen Quelltext handelt, der dann gegen die NDA hier veröffentlicht wurde, hast Du recht. Das ist aber ein Thema, was in jeder handelsüblichen CE auftreten kann. Daher halte ich Deine Anmerkung hier im Forum für kontraproduktiv.

@s1de
Hallo Lars,

wenn ich mir den Trace mal formatiere, sehe ich ein “onModuleExtensionCreationError” beim Laden der Digidesk Base Erweiterung für die Shopcontrol Klasse. Darauf hin will der Shop einen Logeintrag schreiben. Hierfür braucht er aber wieder die geladenen Module und bleibt dann wieder an der selben Stelle hängen (diesmal mit dem einem Teil des Visual CMS-Moduls, ebenfalls Digidesk).

Versuch mal, die Digideskmodule (temporär) aus der Modulliste zu schmeißen / zu deinstallieren. Mit etwas Glück funktioniert der Shop dann wieder.

Der VCMS Editor braucht das Base Modul nicht. Den kannst Du wahrscheinlich so wieder aktivieren.

Bringe bitte in Erfahrung, ob das DD Base Modul auch für Deine Shopversion freigegeben ist. Leider wird in composer.json kein Hinweis auf die Shopkompatibilität gegeben.

Jedenfalls sollte der Digidesk Support hier eher helfen können.

@DanielS

ist halt schwieirg wo man dort die Grenze zieht und wer entscheidet was bei einer handelsüblichen CE auftreten kann ja oder nein?

Man kann dies gut mit einer Revisionsabteilung vergleichen, wann fängt z.B. der Diebstahl an?

Wenn ich auf 1 Cent an der Kasse verzichte, weil der Kunde mehr nicht dabei hat.

es ist nicht so, dass es hier prinzipiell kein Support für PE und EE gibt,
es war früher so, dass wegen der Verschlüsselung der PE und EE praktisch kein Support aus der Community möglich war, auch wenn jemand eine PE oder EE hatte,
oder wenn es um spezifische EE-Themen ging, die bestenfalls in einer streng geheimen passwortgeschützten EE-Dokumentation gab (falls es sowas überhaupt gab, OXID war nicht gerade für seine guten Dokus bekannt :smiley: )
Und zugleich hat man durch den SWV einen Anspruch auf Support, somit wäre der professionelle Suport quasi immer die sinnvollste Wahl gewesen.

Jetzt ist der Source Code der PE und EE einsehbar, wenn man eine Lizenz dafür hat oder für jemanden mit einer Lizenz arbeitet.

Ja, da was dran. Die Rahmenbedingungen haben sich geändert. Dann wäre es nur noch Haftungsfrage bei PE und EE.

Update: Also müsste es Prüfsystem gegeben, wo man als Antwortgeber * in vorab prüfen kann ob der Fragesteller * in über eine gültige Lizenz verfügt.

Was geht mich denn als Forumsteilnehmer die Rechtmäßigkeit der Kundenlizenz an? Das sollen bitte die prüfen, die daran ein berechtigtes Interesse haben. Alles Andere wäre datenschutzkritisch.

Und was war denn an dem Thread bislang so NDA-würdig, dass man es hier nicht erwähnen dürfte? Ist ja nicht so, dass hier gerade geheimer Sourcecode hin und her geschickt würde. Bislang sehe ich hier niemanden, der für veröffentlichten PE/EE Content haftbar gemacht werden könnte.

Damit bin ich aus dieser Editionsdiskussion raus. Technikfragen bei Bedarf gern.

2 Likes

Moin,

vielen Dank an alle die sich hier beteiligt haben, ich stelle mich mal auf keine Seite da ihr mir alle schon geholfen habt ;)! (Danke dafür)

Jetzt sind durch das ganze hin und her in meinem upgedateten System noch zwei Fragen entstanden.

  1. Ich habe teilweise Module entfernt trotzdem werden sie in dieser Fehlermeldung erwähnt, ich habe mehrmals die *modules Einträge der Datenbank gelöscht und kann auch mit einer Suche im Core nichts mehr von den Modulen finden. Wie finde ich diese “überreste”? Bzw. weiß vielleicht einer wo diese herkommen.

  2. Nach ein paar Anpassungen funktioniert der Fix von ProdudCommerce (Fix for OXID 6.2 circular reference service problems · GitHub). Wie bekomm ich dies in Composer rein? Mein erster Gedanke wäre ein Patch gewesen aber gibt es vielleicht eine einfachere Lösung für ein continuous deployment?

Moin @s1de :slight_smile:

Gerne.

Zu 1.

Sehe gerade habe selber den Pull-Request kommentiert unter Catch circular reference for logger in getLogger() by alfredbez · Pull Request #810 · OXID-eSales/oxideshop_ce · GitHub

Das Kernproblem hier dürfte sein, dass bei der Entwicklung an Modulen diese Fehlermeldung entsteht. Da ein Modul sich mit der Zeit weiterentwickelt und ändern kann.

Das mit Datenbankeinträge löschen wird nicht mehr alleine ausreichen in den 6er Serien. Dort gibt es glaube ich ab der 6.2 Serie einen Konsolenbefehl um ein Modul zu deinstallieren. Dies wäre dann wohl zusätzlich erforderlich.

Zu 2.

Da der Pull-Request aus dem verlinkten Fix von ProudCommerce im source Verzeichnis ist kannst den Problemlos in Dein Git Repository von dem Shop Deines Auftragsgebers einpflegen.

Beim Deployment lasse ich persönlich nur das vendor Verzeichnis neu aufbauen nach der Bauanleitung die unter composer.lock vermerkt. Damit bekommst 1 zu 1 den gleichen vendor Verzeichnisstand jederzeit unter jeder Umgebung wiederhergestellt.

Der Patch bzw. Pull-Request im source Verzeichnis bleibt bei einmaliger Aufnahme ins Git Repository des Kundenprojektes erhalten.

Viele Grüße,
Tim