SQLSTATE[40001]: Serialization failure

Bonjour,

Nouveau dans le monde de nextcloud. Je tente de me renseigner pour apprendre et jusqu’à prĂ©sent tous se passait bien avec diffĂ©rents Ă©lĂ©ments trouvĂ©s dans ce forum et sur diffĂ©rents tuto.

J’ai un nextcloud fonctionnel sur la base de:

  • freebsd (jail sur un NAS)
  • apache 24
  • php80
  • mariadb105
  • nextcloud 23.0.2
  • cache via ACPu

LĂ  oĂč cela a commencĂ© Ă  poser problĂšme est quand j’ai demandĂ© aux appareils Apple (iphone, ipad) Ă  tĂ©lĂ©verser leur photos automatiquement. Cela a Ă©tĂ© fait appareil par appareil et pas tous en mĂȘme temps.

Les appareils ont plus de 100 photos (un plus de 10 000).

Il est apparu dans la vue ‘journalisation’ les messages suivants de façon rĂ©guliĂšre durant les tĂ©lĂ©chargements de chaque appareil:

Fatal webdav Doctrine\DBAL\Exception\DeadlockException: An exception occurred while executing a query: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction

Sur le net j’ai trouvĂ© des Ă©lĂ©ments mais rien sur les actions Ă  faire, et parfois on parle de bug encore en cours.

Merci par avance pour vos Ă©clairages

Tu as installĂ© redis pour le locking? Si c’est fait par la database, ce n’est pas trĂšs efficace et peut crĂ©er des problĂšmes si on veut transferer beaucoup de donnĂ©es Ă  la fois.

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html

Hello,
Merci tflidd.
En effet, Redis n’était pas installĂ©. InstallĂ© depuis, cependant je n’ai pas encore eu de nouveaux transferts de nombreuses donnĂ©es. A suivre
Encore merci

Hello,

J’ai refait un test avec de nombreux transferts. Les alertes sont lĂ  mais il y en a nettement moins : sur 2000 fichiers transfĂ©rĂ©s, j’ai eu 4 alertes :
An exception occurred while executing a query: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
alors que sans redis, je ne les comptais plus.

Y a t il un paramétrage particulier à faire pour redis ou nextcloud ?

Mon fichier config nextcloud contient:
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘memcache.distributed’ => ‘\OC\Memcache\Redis’,

Merci par avance

Hello,

J’ai refait un essai en rajoutant au fichier config.php:
‘preview_max_memory’ => 1280,

Mes transferts sont principalement des photos d’appareils mobiles sous iOS.

Je suis sous Nextcloud Hub II (23.0.3), installée dans une jail Bastille sous freebsd 12.3, avec Apache24, php80, mariadb (10.6).

A+

Tu peux probablement optimiser le caching du mariadb. Il y a plein de parametres innodb_*, leur taille doit ĂȘtre adaptĂ© Ă  la taille de tes tableaux. Je pense que des gens ici ont partager leur parametres, des outils comme tuning-primer.sh ou mysqltuner.pl peuvent aider!

Merci
Je vais regarder ces 2 scripts
A+

Bonjour,

moi j’ai fais la config suivante pour rĂ©gler la majoritĂ© de mes deadlock

"memcache.local": "\\OC\\Memcache\\Redis",
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "port": 6379,
        "password": "***REMOVED SENSITIVE VALUE***",
        "timeout": 1.5
    },
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "filelocking.enabled": true,
    "filelocking.ttl": 3600,