NEWS
Ошибка cannot delete
-
всем привет
с недавнего времени в логе регулярно появляется серия ошибок:
Cannot 2019-01-10 15:54:23.920 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_14-28_states.json.gz: {} Cannot 2019-01-10 15:54:23.919 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_13-37_states.json.gz: {} Cannot 2019-01-10 15:54:23.919 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_11-37_states.json.gz: {} Cannot 2019-01-10 15:54:23.918 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_09-37_states.json.gz: {} Cannot 2019-01-10 15:54:23.918 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_07-37_states.json.gz: {} Cannot 2019-01-10 15:54:23.917 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_05-36_states.json.gz: {} Cannot 2019-01-10 15:54:23.917 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_03-36_states.json.gz: {} Cannot 2019-01-10 15:54:23.916 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-08_01-36_states.json.gz: {} Cannot 2019-01-10 15:54:23.916 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_23-35_states.json.gz: {} Cannot 2019-01-10 15:54:23.915 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_23-13_states.json.gz: {} Cannot 2019-01-10 15:54:23.915 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_22-34_states.json.gz: {} Cannot 2019-01-10 15:54:23.914 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_20-34_states.json.gz: {} Cannot 2019-01-10 15:54:23.914 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_18-33_states.json.gz: {} Cannot 2019-01-10 15:54:23.914 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_16-33_states.json.gz: {} Cannot 2019-01-10 15:54:23.913 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_14-33_states.json.gz: {} Cannot 2019-01-10 15:54:23.913 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_12-33_states.json.gz: {} Cannot 2019-01-10 15:54:23.912 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_10-33_states.json.gz: {} Cannot 2019-01-10 15:54:23.911 error delete file "/opt/iobroker/node_modules/iobroker.js-controller/lib/states/../../../../iobroker-data/backup-objects/2019-01-07_10-32_states.json.gz: {}
Вроде бы все работает корректно, но смущает
Буду рад совету, с чем может быть связано и как убрать.
Спасибо.
-
Проверить права на папку и от кого иоб запущен
-
Грохнул день, чтобы разобраться...
Ошибка не в правах и не в открытых файлах, которые никто не закрыл... Все проще.\opt\ioroker\node_modules\iobroker.js-controller\lib\objects\objectsInMemServer.js
содержит функцию
function deleteOldBackupFiles() {...},
в которой вот такой кусок кода:
try { fs.unlink(backupDir + file); } catch (e) { log.error(`Cannot delete file "${backupDir + file}: ${JSON.stringify(e)}`); }
Здесь используется асинхронный unlink без второго параметра и то ли глючит, то ли выплевывает ошибку "по дефолту" - do not know...
Можно поставить вместо него fs.unlinkSync, но я предпочел не портить синхронностью асинхронностьfs.unlink(backupDir + file, function (err) { if (err) log.error(`Cannot delete file "${backupDir + file}: ${JSON.stringify(err)}`); }); }
Такой унлинк вполне хорошо стирает старые бэкапы без ошибок.
Совершенно аналогичный кусок кода в
\opt\ioroker\node_modules\iobroker.js-controller\lib\states\statesInMemServer.js
(см. ту же функцию)
Кстати, в процессе ковыряния в этом деле выяснилось, что настойки для бэкапов objects und states в opt\iobroker\iobroker-data\iobroker.json не подхватываются сетапом. Разбираться пока некогда.
Я человек в обчестве новый, готов скинуть инфу разрабам, но с немецким совсем плохо и не знаю куда
-
@voretsen said in Ошибка cannot delete:
Я человек в обчестве новый, готов скинуть инфу разрабам, но с немецким совсем плохо и не знаю куда
Привет мил человек, а ты есть в телеграме? https://t.me/iobroker
По хорошему то пулреквест бы сделать ну или хотяб ишуе..
https://github.com/ioBroker/ioBroker.js-controller/blob/master/lib/objects/objectsInMemServer.js