ign-packo / PackO

Outil pour le contrôle et la retouche du mosaïquage d'ortho
Other
6 stars 2 forks source link

Fix resource busy erro #417

Closed gmaillet closed 1 week ago

gmaillet commented 3 weeks ago

Constaté sous Windows (pas testé sous Linux), lorsqu'on enchaine rapidement un "undo" avec l'application d'un patch on a fréquemment une erreur de type "EBUSY: resource busy or locked" liée à une commande rename (voir ci-dessous). Cette erreur est liée au rafraichissement (des commandes WMTS GetTile) qui ouvrent des images avec des gdal.openAsync sans les fermer explicitement. Lorsqu'on demande le "undo", l'API demande à renommer un fichier qui est encore ouvert et cela provoque une erreur.

Cette PR ajoute des "ds.close" pour tous les gdal.openAsync sur des fichiers. Le plus grave, c'est que cela stoppe le traitement du "undo" en cours de route et on obtient une branche corrompue dans le cache avec un patch partiellement annulé.

node:fs:980 handleErrorFromBinding(ctx); ^

Error: EBUSY: resource busy or locked, rename 'D:\TestPackO_QGis2\cache_11OPI_rgb\graph\19\00\00\00\RM\23_WQ.tif' -> 'D:\TestPackO_QGis2\cache_11OPI_rgb\graph\19\00\00\00\RM\23_WQ_5.tif' at Object.renameSync (node:fs:980:3) at rename (C:\Users\gmaillet\Documents\GitHub\gmaillet\PackO\middlewares\patch.js:48:6) at C:\Users\gmaillet\Documents\GitHub\gmaillet\PackO\middlewares\patch.js:488:5 at Array.forEach () at undo (C:\Users\gmaillet\Documents\GitHub\gmaillet\PackO\middlewares\patch.js:455:9) at processTicksAndRejections (node:internal/process/task_queues:96:5) { errno: -4082, syscall: 'rename', code: 'EBUSY', path: 'D:\TestPackO_QGis2\cache_11OPI_rgb\graph\19\00\00\00\RM\23_WQ.tif', dest: 'D:\TestPackO_QGis2\cache_11OPI_rgb\graph\19\00\00\00\RM\23_WQ_5.tif' }

coveralls commented 3 weeks ago

Pull Request Test Coverage Report for Build 9564579981

Details


Changes Missing Coverage Covered Lines Changed/Added Lines %
gdal_processing.js 35 50 70.0%
<!-- Total: 35 50 70.0% -->
Totals Coverage Status
Change from base Build 6508007578: -0.1%
Covered Lines: 5957
Relevant Lines: 6168

💛 - Coveralls
coveralls commented 2 weeks ago

Pull Request Test Coverage Report for Build 9600154710

Details


Changes Missing Coverage Covered Lines Changed/Added Lines %
gdal_processing.js 35 50 70.0%
<!-- Total: 35 50 70.0% -->
Totals Coverage Status
Change from base Build 9594562709: -0.1%
Covered Lines: 5957
Relevant Lines: 6168

💛 - Coveralls
gmaillet commented 1 week ago

J'ai fait le squash

coveralls commented 1 week ago

Pull Request Test Coverage Report for Build 9741558897

Details


Changes Missing Coverage Covered Lines Changed/Added Lines %
gdal_processing.js 35 50 70.0%
<!-- Total: 35 50 70.0% -->
Totals Coverage Status
Change from base Build 9659724665: -0.1%
Covered Lines: 5957
Relevant Lines: 6168

💛 - Coveralls