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 не подхватываются сетапом. Разбираться пока некогда.
Я человек в обчестве новый, готов скинуть инфу разрабам, но с немецким совсем плохо и не знаю куда :)
-
Грохнул день, чтобы разобраться...
Ошибка не в правах и не в открытых файлах, которые никто не закрыл... Все проще.\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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden