darktable 2.6.1 - PB exportation

Bonjour,

Alors que dt fonctionnait normalement jusqu’à présent, j’ai un plantage du logiciel à l’export de JPEG (8 bits), même en basse def.

Sur le moniteur système (Ubuntu 18.04.2 LTS), avec seulement dt activé et en mode export, les 8 Go de RAM sont rapidement atteint et dt plante.

j’ai refait l’install via synaptic mais sans résultat.

Merci d’avance pour vos conseils

Suggestion : lancer dt en mode debug via un terminal (Ctrl + Alt + t) : darktable -d all

Tout à la fin du long affichage il y aura peut-être un indice…

En lançant dt via la console, j’avais un message d’erreur concernant un fichier .db verrouillé
J’ai supprimé les fichiers .lock dans config/darktable et relancé l’export d’un fichier en .jpg qui à bien fonctionné.

Mais j’ai le même souci de plantage avec le fichier qui pose problème et dont voici le retour dans le terminal :

694,235783 [lighttable] expose took 0,3155 sec 702,310783 [dev_pixelpipe] took 21,250 secs (49,081 CPU) processed `exposition 1' on CPU, blended on CPU [export] [dev_pixelpipe] module `exposition 1' min: (-0,139967; 0,000000; -0,082450) max: (1,208564; 0,768882; 1,303504) [export] 702,924134 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 702,924166 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 702,924177 [masks dynbuf 'brush dpayload'] with initial size 1000000 (is 0x7f7ddb8a8010) 702,924185 [masks pinceau #4] brush_points init took 0,0001 sec 702,942842 [masks dynbuf 'brush dpoints'] freed (was (nil)) 702,942880 [masks dynbuf 'brush dborder'] freed (was (nil)) 702,942886 [masks dynbuf 'brush dpayload'] freed (was (nil)) 702,942916 [masks pinceau #4] brush_points point recurs 0,0187 sec 702,943780 [masks pinceau #4] brush_points transform took 0,0009 sec 702,943796 [masks pinceau #4] brush points took 0,0197 sec 702,989784 [masks pinceau #4] brush_fill min max took 0,0460 sec 703,244494 [masks pinceau #4] brush fill buffer took 0,3007 sec 703,258888 [masks 0] combine took 0,3744 sec 703,263145 [masks] render all masks took 0,3786 sec 718,173341 [dev_pixelpipe] took 15,358 secs (38,647 CPU) processed `exposition 2' on CPU, blended on CPU [export] [dev_pixelpipe] module `exposition 2' min: (-0,139967; 0,000000; -0,082450) max: (1,208564; 0,768882; 1,303504) [export] 718,882577 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,882597 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,882603 [masks pinceau #5] brush_points init took 0,0000 sec 718,883103 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,883108 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,883128 [masks pinceau #5] brush_points point recurs 0,0005 sec 718,883157 [masks pinceau #5] brush_points transform took 0,0000 sec 718,883380 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,883402 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,883411 [masks dynbuf 'brush dpayload'] with initial size 1000000 (is 0x7f7ddb8a8010) 718,883416 [masks pinceau #5] brush_points init took 0,0000 sec 718,883900 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,883904 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,883908 [masks dynbuf 'brush dpayload'] freed (was (nil)) 718,883912 [masks pinceau #5] brush_points point recurs 0,0005 sec 718,883928 [masks pinceau #5] brush_points transform took 0,0000 sec 718,883933 [masks pinceau #5] brush points took 0,0006 sec 718,884111 [masks pinceau #5] brush_fill min max took 0,0002 sec 718,893854 [masks pinceau #5] brush fill buffer took 0,0099 sec 718,895819 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,895840 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,895847 [masks pinceau #6] brush_points init took 0,0000 sec 718,896222 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,896227 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,896231 [masks pinceau #6] brush_points point recurs 0,0004 sec 718,896251 [masks pinceau #6] brush_points transform took 0,0000 sec 718,896443 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,896452 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,896461 [masks dynbuf 'brush dpayload'] with initial size 1000000 (is 0x7f7ddb8a8010) 718,896466 [masks pinceau #6] brush_points init took 0,0000 sec 718,896879 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,896884 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,896887 [masks dynbuf 'brush dpayload'] freed (was (nil)) 718,896891 [masks pinceau #6] brush_points point recurs 0,0004 sec 718,896906 [masks pinceau #6] brush_points transform took 0,0000 sec 718,896912 [masks pinceau #6] brush points took 0,0005 sec 718,897070 [masks pinceau #6] brush_fill min max took 0,0002 sec 718,906179 [masks pinceau #6] brush fill buffer took 0,0093 sec 718,907369 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,907394 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,907399 [masks pinceau #7] brush_points init took 0,0000 sec 718,907787 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,907792 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,907795 [masks pinceau #7] brush_points point recurs 0,0004 sec 718,907810 [masks pinceau #7] brush_points transform took 0,0000 sec 718,907985 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,907993 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,908000 [masks dynbuf 'brush dpayload'] with initial size 1000000 (is 0x7f7ddb8a8010) 718,908004 [masks pinceau #7] brush_points init took 0,0000 sec 718,908423 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,908427 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,908432 [masks dynbuf 'brush dpayload'] freed (was (nil)) 718,908435 [masks pinceau #7] brush_points point recurs 0,0004 sec 718,908449 [masks pinceau #7] brush_points transform took 0,0000 sec 718,908453 [masks pinceau #7] brush points took 0,0005 sec 718,908615 [masks pinceau #7] brush_fill min max took 0,0002 sec 718,919857 [masks pinceau #7] brush fill buffer took 0,0114 sec 718,923056 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,923083 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,923089 [masks pinceau #8] brush_points init took 0,0000 sec 718,923643 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,923657 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,923662 [masks pinceau #8] brush_points point recurs 0,0006 sec 718,923685 [masks pinceau #8] brush_points transform took 0,0000 sec 718,923923 [masks dynbuf 'brush dpoints'] with initial size 1000000 (is 0x7f7deb7ad010) 718,923933 [masks dynbuf 'brush dborder'] with initial size 1000000 (is 0x7f7deb3dc010) 718,923942 [masks dynbuf 'brush dpayload'] with initial size 1000000 (is 0x7f7ddb8a8010) 718,923947 [masks pinceau #8] brush_points init took 0,0000 sec 718,924552 [masks dynbuf 'brush dpoints'] freed (was (nil)) 718,924557 [masks dynbuf 'brush dborder'] freed (was (nil)) 718,924561 [masks dynbuf 'brush dpayload'] freed (was (nil)) 718,924565 [masks pinceau #8] brush_points point recurs 0,0006 sec 718,924584 [masks pinceau #8] brush_points transform took 0,0000 sec 718,924606 [masks pinceau #8] brush points took 0,0007 sec 718,924821 [masks pinceau #8] brush_fill min max took 0,0002 sec 718,936988 [masks pinceau #8] brush fill buffer took 0,0124 sec 719,019240 [dev_pixelpipe] took 0,334 secs (0,259 CPU) processed `retouche' on CPU, blended on CPU [export] [dev_pixelpipe] module `retouche' min: (-0,139967; 0,000000; -0,082450) max: (1,208564; 0,768882; 1,303504) [export] 719,596336 [dev_pixelpipe] took 0,068 secs (0,189 CPU) processed `recadrer et pivoter' on CPU, blended on CPU [export] [dev_pixelpipe] module `recadrer et pivoter' min: (-0,139967; 0,000000; -0,082450) max: (1,208564; 0,768882; 1,303504) [export] terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Abandon (core dumped)

Comme de nombreuses fois demander et expliquer sur le forum : mettre les rapports d’exécution ou ceux de bugs dans une boîte « code » pour éviter de si long message. En passant, une petite présentation serait apprécié et aussi de lire : https://forums.darktable.fr/showthread.php?tid=3430 !

J’ai cloné l’image et realisé un export .jpg avec succès à chacun des modules suivants :

original > BdB > expo > retouche > recadrer > filmique > zone couleurs > velvia > balance couleurs

Ensuite, le logiciel à planté à partir du module « Egaliseur »

Merci d’avance pour vos commentaires

Le std::bad_alloc (tout à la fin du log) survient habituellement à cause d’un manque de mémoire. C’est peut-être un bug de la version, dans ce cas, il faudrait voir côté devs…

Ok, merci Manu pour l’info !

Ou 8 Go de RAM deviendrait donc limite ?

8 Go ne sont pas limites, ça n’est certainement pas le problème. J’utilise depuis longtemps 8 Go de RAM sans problème, par contre il te faut tout de même avoir une partition SWAP (ou fichier SWAP) sous Linux d’au moins 6 Go pour être tranquille.

Ensuite, tu évoques avoir pu faire des exports sans problème d’autres images (pour te citer : « relancé l’export d’un fichier en .jpg qui à bien fonctionné.Mais j’ai le même souci de plantage avec le fichier qui pose problème et dont voici le retour dans le terminal »), cela signifie peut-être un problème d’export d’un module en particulier, à priori le module « recadrer et pivoter ». J’ai beau suivre régulièrement les bugs annoncés, l’utiliser souvent… je n’ai pas connaissance de problème lié à ce module.

Je tenterai pour un problème de ce genre 2 choses :

  1. installer la version 2.6.2 et réessayer (pour l’installer sur Ubuntu 18.04.2, tu as toutes les infos nécessaires sur le fil informant de sa sortie sur ce forum)
  2. Tenter soit de désactiver le module incriminé sur cette image et tester un export, soit de modifier un réglage sur ce module et tester un export pour voir ce que ça donne.

Le SWAP Linux est à 8,5 Go donc il y a de la marge… :slight_smile:

Je vais installer la version 2.6.2 et tester l’exportation

Pour le peu que je connaisse de darktable, je ne pense pas que ça vienne d’un module en particulier car les plantages (au moment de l’export) sont arrivés de manière aléatoire avec soit réduction de bruit bilatéral, renforcer la netteté ou égaliseur…

@Yves.Gwen, si cela est faisable, ayant une config Ubuntu 18.04 avec 8Go RAM + dt 2.6.1, je peux tenter l’export de la photo en me passant le raw + xmp, et voir si ça plante également…

Ok merci Manu !

Je t’envoie le lien vers les fichiers en mp (éventuellement les partager si d’autres veulent tester …?)

A chacun des modules utilisés pour cette image, j’ai réalisé un export .jpg qui s’est bien déroulé jusqu’au plantage (ici, il est intervenu avec le module « réduction de bruit bilatéral »)

Je viens d’exporter en jpeg fullsize qualité 90% et idem en 800px sans crash.
En revanche, ça rame beaucoup, voire fige le reste (T-Bird + FF + Writer + qq trucs)…

top m’indique une conso mémoire dt oscillant entre 10 et près de 60%. Évidemment c’est quand elle est au delà de 50% que ça a tendance à figer.

Une idée en passant.
Je pense dt place ses fichiers temporaires dans /tmp par défaut sur Linux (et Mac ?) si rien d’autre ne lui est indiqué par le switch --tmpdir.
Ton /tmp est-il spécifique (une partition dédiée ? en tmpfs ?) et peut-il être saturé pendant l’export ?
Sur ma conf /tmp il est monté en tmpfs (en mémoire), je n’ai pas vraiment constaté qu’il enflait pendant l’export, mais sait-on jamais ?