Probleme nach Artikelerstellung mit vielen Varianten

Hallo,

ich habe am vergangenen Freitag mehrere Produkte mit teils über 20k Varianten erstellt. Diese verlinkten dann im Shop allerdings auf ein falsches Produkt, und ich habe eine Neu-Indexierung angestoßen.
Leider ist damit das Problem nicht verschwunden, die Indexierung hängt sich wegen Speicherüberlauf bei den Produkten mit vielen Varianten auf und kommt nicht weiter.
Nach vielem googeln und nachlesen, gibt es dafür wohl aktuell keine Lösung wie Shopware die Varianten aufarbeitet.
Also habe ich die betroffenen Produkte wieder gelöscht und die Cronjobs nach Anleitungen vom admin-worker auf Cronjobs verlegt.Seit heute Mittag hängt es aber immer bei der gleichen Seitenzahl. Nach stoppen aller Aufgaben, und leeren der Tabellen in MySQL habe ich alles nochmal neu angestoßen. Leider stoppt die Indexierung wieder an gleicher Stelle.

Der Cronjob „messenger:consume“ gibt folgende Meldung als „Fehler“ zurück:
[OK] Consuming messages from transports „default“.

// The worker will automatically exit once it has exceeded 512M of memory, been
// running for 120s or received a stop signal via the messenger:stop-workers
// command.

// Quit the worker with CONTROL-C.

// Re-run the command with a -vv option to see logs about consumed messages.

Angeblich sind die Tabellen „enqueue“ und „message_queue_stats“ leer?

Produkte welche nach den Varianten-Produkten angelegt wurden sind manchmal korrekt dargestellt, manchmal erscheinen sie aber auch nur in der Übersicht und verlinken dann auf einen ganz anderen Artikel.

Wenn jemand einen Tipp hat, wie und wo ich ansetzen kann um den Shop wieder vernünftig zum laufen zu kriegen, wäre ich sehr dankbar.

Den Thread habe ich gelesen, danke. Hilft mir leider nicht wirklich. Die betreffenden Produkte sind ja wieder gelöscht. Trotzdem hängen dann noch angeblich verbleibende Produkte drin und manche Produkte verlinken auf fehlerhafte Produktdetailseiten.

Der Shop ist auf „prod“, wo kann ich das für den CLI Worker nachschauen?

Moin, bei dieser Anzahl an Varianten wirst Du mit SW in der aktuellen Ausbaustufe keine Freude haben. Das ist leider so. Das Problem mit dem Speicher und der Indexierung haben leider viele. An anderer Stelle hatte ich das mit @marco.steinhaeuser besprochen. Da ich hierzu für meiner/ unsere Bedürfnisse ein Plugin gebaut hatte, hatte marco angeregt, wenn sich ausreichend Mitstreiter finden, ein Repo zur Mitwirkung aller zu erstellen, in welches ich meine Lösung zur Vorlage und Mitarbeit einbringe. Frag doch mal bei Marco an, wie da der aktuelle Stand ist. Anyway, mit 512MB Arbeitsspeicher für PHP kommst Du nicht hin. Auch wenn das nicht reichen wird, verdopple den mal, sofern Dir das möglich ist. Und dann … um Updates/Replaces und damit das unnötige Aufblasen des Speichers zu vermeiden, leere mal die Tabellen „product_search_keyword“ und „product_keyword_dictionary“. Deren richtiges Befüllen ist für den Prozess nämlich am arbeistintensivsten (gern vorher Kopien der Tabellen anlegen). Viel Glück

Danke dir, den habe ich auf deinen Hinweis im anderen Thread bereits angeschrieben und Interesse verkündet.
Die Produkte mit den vielen Varianten habe ich inzwischen gelöscht, leider wurschtelt der Indexer immer noch rum, bzw. irgendwas passt nicht mehr und ich habe oben beschriebene Probleme, dass Produkte zur falschen Detailseite verlinken, etc.
Ich würde das nur gerne wieder zum laufen bekommen, dass wenigstens wieder Produkte ohne diese vielen Varianten sinnvoll erstellt werden können.

wenn Du Zugriff auf die Commandline hast, leere (nach der Sicherungskopie) auch die Tabelle „seo_url“ und starte dann im „bin“ „dal:refresh:index“. Das sollte sämtliche Urls neu bauen und die Verlinkung der Produkte sollte wieder passen

Danke, werde ich versuchen!

Also mit „dal:refresh:index“ kommt wie zu erwarten ein Out of memory Fehler.
Mit „–use-queue“ starten und abwarten oder wie sollte ich weiter vorgehen?

weißt Du, wieviel RAM Du zur Verfügung hat, und mit welcher max. Anzahl an Threads PHP bei Dir laufen kann?

Das sind die Werte:
RAM: 6144 MB
PHP Memory Limit: 512 MB
PHP Upload Filesize: 128 MB
PHP Execution Time: 180 s

Aus persönlicher Erfahrung kann ich sagen, dass das Webhosting Paket bei netcup eine Katastrophe ist was Shopware angeht. Der günstigste VPS von netcup für etwas 5 Euro ist gefühlt 10-mal so schneller.

512MB ist, wie schon geschrieben, da absolute Minimum damit SW einigermaßen läuft. Ich muss mir noch den Aufbau der CommandLine raus suchen, mit dem Du wenigsten zur Laufzeit des refreshs den RAM increasen kannst - sofern Dein Hoster das zulässt. Garantiert zwar immer noch nicht, dass es dann läuft - mehr als versuchen geht aber nicht. Melde mich dann noch mal. Vielleicht ist ja jemand anderes schneller. Minimum (temporär) sollten 1 - 1,5 GB sein.

Bei Webhosting weiß ich halbwegs was ich tue. Wie ich bei einem Server anfange die Seite aufzusetzen bzw. zu transferieren… keine Ahnung. Oder ist das alles relativ selbsterklärend?

Nein, du bekommst eine nackte Linux (die Linux Distribution kannst du dir aussuchen) Kommandozeile und das wars.

Okay. Habe jetzt zumindest mal auf den höchsten Tarif im Webhosting aufgestuft, damit sind es immerhin 1024 beim PHP memory limit.

Leider komme ich nicht weiter. Die Produkt-Indexierung läuft einfach nicht durch.

In den Logs finde ich diesen Fehler:

Fatal Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 192512 bytes) {„exception“:„[object] (Symfony\Component\ErrorHandler\Error\OutOfMemoryError(code: 0): Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 192512 bytes) at /[Seitenname]/vendor/shopware/core/Framework/DataAbstractionLayer/FieldSerializer/PHPUnserializeFieldSerializer.php:34)“}

Mir ist schon klar, dass das Problem beim Speicherbedarf liegt. Aber wie bekomme ich den Index überhaupt wieder aufgebaut?
Muss ich noch irgendwelche Tabellen leeren in denen die gelöschten Produkte eventuell noch vorhanden sind? Oder kann ich irgendwie sehen, an welchem Produkt es genau hängt?

Der Speicherüberlauf ist nich toll, aber kein großes Problem. Der Index baut sich nach und nach auf.

Falls ein Produkt den Fehler verursacht, dann findest du in var/log einen Fehler verzeichnet.

Trotz des Fehlers im Log? Ich bekomme alle 3 Minuten (Cronjob Intervall) den gleichen Fehler ins Log.
Produkt Indexierung hängt laut den Meldungen seitdem bei der gleichen Anzahl Produkte.

134217728 bytes sind 134 MB.

Hast du der CLI auch mehr Memory zugeteilt?

Scheinbar dann nicht. Kannst du mir sagen wo ich das mache?