Such-Index Fehler „ 503 Backend fetch failed“, core.ERROR: PDOException: SQLSTATE [40001] [42000]

Hallo

Ich setze gerade neuen  Shop und habe folgende Fehlermeldung in Backend bei Versuch Such-Index manuell aufzubauen.

Fehler im Backend: „ 503 Backend fetch failed“

Daten zum Server

CentOS Linux 7.5.1804

Intel® Xeon® CPU E5-2620 v3 @ 2.40GHz, 4 cores

Linux 3.10.0-862.6.3.el7.x86_64 on x86_64

Memory 12GB

Disk: SSD 300GB

 

Nginx

Varnish

Apache 2

APCu

OPCache

IonCube Loader

PHP 7.1

MariaDB 10.3.8

Als Wawi wird JTL-Wawi mit aktuellem Connector 2.1.12 (keine weiteren Plugins in Shopware) genutzt.

Ich habe mit parallel mit drei Shopware Neuinstallation versucht.

Version:  5.4.4

Version:  5.4.5

Version:  5.4.6

Nach den gestern Fehlern bei Versionen 5.4.5 und 5.4.6 aufgetreten waren, habe ich heute die Version 5.4.4 in einem Unterordner mit eigener Datenbank installiert und während JTL-WAWI die Artikel (115 000) uploaded, habe ich schrittweise versucht zu prüfen ob die Indexierung funktioniert.

Um 13:09 habe ich es bei 13 000 Artikel versucht Such-Index neu aufzubauen, leider erfolglos wieder die gleiche „ 503 Backend fetch failed“ Meldung.

In dem log file „core_production-2018-07-26.log“ steht folgende Fehlermeldung

[2018-07-26 13:09:10] core.CRITICAL: An exception occurred while executing ' DELETE sk FROM `s_search_keywords` sk LEFT JOIN s_search_index si ON sk.id=si.keywordID        
[2018-07-26 13:09:10] core.ERROR: PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction in /var/www/html/myshop.de/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1012 Stack trace: #0 /var/www/html/myshop.de/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1012): PDO->exec('\n          

Gestern hatte ich dazu recherchiert und hier

https://developers.shopware.com/sysadmins-guide/system-requirements/

über die SQL Settings nachgelesen, so habe ich versucht heute nach dem Versuch den Such-Index aufzubauen gescheitert war, die my.cnf zu ändert.

Folgenden Wert habe ich eingetragen: query-cache-size = 200M

Danach ca. um 13:12 erneut versucht den Such index aufzubauen und es hat zwei Mal in Folge geklappt.

Bei ca. 22 000 Artikeln um 13:45 hat es wieder geklappt.

Bei  27 000 Artikeln um 14:00 hat es nicht mehr funktioniert auch wenn ich den Wert  in

query-cache-size = auf 300, 400, 1000 erhöht habe

2018-07-26 14:02:18] core.CRITICAL: An exception occurred while executing 'INSERT IGNORE INTO s_search_index (keywordID, elementID, fieldID) SELECT sk.id as keywordID, 21989 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN
[2018-07-26 14:02:18] core.ERROR: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 memory exhausted near 'sk.id as keywordID, 23725 as elementID, 5 as fieldID FROM s_search_keywords sk W' at line 15995 in /var/www/html/myshop.de/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1012 Stack trace: #0 /var/www/html/myshop.de/test/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1012): PDO->exec('INSERT IGNORE I...')

 

Hat jemand eine Idee was hier los ist?

 

Danke im Voraus für jede Antwort.

 

Kann glaub ich u.a. vorkommen, wenn man Artikel mit gleicher Artikelbezeichnung hat.

1 Like

Stell mal diese Option niedriger bei dir shopware/Default.php at 5.4 · shopware/shopware · GitHub

1 Like

@Rednaxela schrieb:

Kann glaub ich u.a. vorkommen, wenn man Artikel mit gleicher Artikelbezeichnung hat.

Danke für die schnelle Antwort. Die Jtl Wawi lässt die dopelten Artikelnummer nicht zu, auch bestehen bei uns die Artikelbezeichnungen aus Artikelnummer + Artikelname, so kann keine doppelte Artikelbezeichnung enstehen. Aber ich werden dass noch mit Excel filtern.

@Shyim schrieb:

Stell mal diese Option niedriger bei dir https://github.com/shopware/shopware/blob/5.4/engine/Shopware/Configs/Default.php#L250

Danke für die schnelle Antwort, bei uns steht ‘batchsize’ => 4000, soll es erhöht werden?

Mach mal 2000 oder so. oder noch niedriger falls der Fehler kommt. Wenn es klappt lager diese Option in die config.php aus

2 Likes

@Shyim schrieb:

Mach mal 2000 oder so. oder noch niedriger falls der Fehler kommt. Wenn es klappt lager diese Option in die config.php aus

Danke, habe mit 2000, 1000, 500 und 100 probiert, leider ohne Erfolg. Gleiche Fehlermeldung im Backend und in core_production-2018-07-26.log

@Rednaxela schrieb:

Kann glaub ich u.a. vorkommen, wenn man Artikel mit gleicher Artikelbezeichnung hat.

Excel hat keine doppelten Werte gefunden.

Du kannst mal probieren in einem Testsystem die s_search_index / s_search_keywords zu leeren. Ein Deadlock kommt dann, wenn mehrere Requests auf die gleiche Session schreiben - das wird geblockt, damit es nicht zu Inkonsistenzen kommt. Hast du mal testweise den JTL Connector ausgeschaltet? 

https://developers.shopware.com/sysadmins-guide/sessions/#session-locking

1 Like

@AndreHerking schrieb:

Du kannst mal probieren in einem Testsystem die s_search_index / s_search_keywords zu leeren. Ein Deadlock kommt dann, wenn mehrere Requests auf die gleiche Session schreiben - das wird geblockt, damit es nicht zu Inkonsistenzen kommt. Hast du mal testweise den JTL Connector ausgeschaltet? 

https://developers.shopware.com/sysadmins-guide/sessions/#session-locking

Danke für die Rückmeldung. Ich habe den Jtl-Connector deaktiviert, s_search_index / s_search_keywords geleehrt, shop cache geleert und versucht den Such-Index aufzubauen, 

Aber im Backend trotzdem „ 503 Backend fetch failed“ und core_production-2018-07-26.log Fehler 

SQLSTATE[42000]: Syntax error or access violation: 1064 memory exhausted near 'sk.id as keywordID

Diesen Fehler gab es jetzt in core_production-2018-07-26.log nicht .

SQLSTATE[40001]: Serialization failure: 1213 Deadlock

Noch eine Idee?

@Shyim schrieb:

Mach mal 2000 oder so. oder noch niedriger falls der Fehler kommt. Wenn es klappt lager diese Option in die config.php aus

Ich habe noch deine Antwort hier gefunden https://forum.shopware.com/discussion/comment/222787/#Comment_222787 Und denn wert ebenfalls auf 3250 gesetzt. Es hat geklappt!!! Auch gleich in Config.php hinzugefügt. ‘search’ => [‘indexer’ => [ ‘batchsize’ => 3250,], ], Danke noch mal für den Hinweis!

5 Likes