Можно ли считать багом браузера то, что если внезапно отключить sata-кабель от жесткого диска, то у браузера внезапно пропадёт вся сессия а на месте бэкапа сессии будут полтара мегабайта нулей?
@anonymous да я уже всё восстановил (в about: пусто, потому что файл битый) // просто я попытался восстановить их давнишнего бэкапа ses*.js, но не завелось, потому что были еще какие-то файлы про сессию; я их удалил и восстановил бэкап второй раз, всё ~норм
//называется `sessionstore.js` ващет
@ceyt ну я и пытаюсь выяснить, на каком именно уровне возник баг и кто был источником
возможно и браузер делал бэкап неправильно (не так, чтобы данные не херились), а может использовал единственно верное api ОС и там она обосралась, карочи дунч, потому и запостил
@238328 >в about: пусто, потому что файл битый
ну дык если был бы валидный то бовзер бы сам завёлся. полагаю что та страничка в эбауте как раз должна бекапы вытаскивать.
@anonymous > как
например запрограммировать такую последовательность действий, при которой
во время бэкапа сессии проверялась её валидность
все файлы бы писались в жопу и изменения на диске были бы атомарными
ну и собственно избегание от инициирования или продолжения работы с файлами при такой-то хуёвой ситуации
@anonymous нет, эта та же самая страница, которую показывают после падения, и показывает она только инфу из одного (не знаю, может количество настраивается) файла, который sessionstore.bak
а я восстановил из третьего файла
// карочи да, пришлось обоим писать одно и то же
@238328 >атомарными
что это вообще значит здесь?
что делать если на половине записи файла выдернули диск? системе притворятся что щас диск воткнут обратно и держать в буфере?
@238328 Логичнее предположить, что журналируемая файловая система при следующем подключении смогла восстановить запись о размере и расположении блоков файла, но не его содержание, чем то, что кто-то заранее заполняет нулями объём данных перед тем, как их на то же самое место записать (если кто это делает, то, опять же, только ФС для корректности частичной записи файла, смотри всякие опции, касающиеся sparse files, copy-on-write и тому подобного).
@anonymous ну блядь так же не должно работать, или даже если в софте реализовано корректно, то ОС рулит операциями с допущениями и может натворить хуйню?
мне просто лень копаться в документациях и исходниках, хуевый тип баттхёрта кароч
@anonim ну так я и говорю, что пускай пишет на диск, затем проверяет, потом при помощи какой-то атомарной операции ФС (чтобы блять оно или выполнилось, или не выполнилось вообще) создаётся корректный файл там, где надо
@anonymous я хуй знает внутреннюю организацию современных ФС, но я про то, чтобы совершить какое-то простое изменение (типа смены идентификатора), которое не выльется в проёб старых данных на диске например
@anonim я там только закладки храню (раньше историю хранил ещё, но сейчас у меня файл с журналом занимает 220 метров), а надо было ещё вкладки (вкладки мне нахуй не нужны, я вхожу/выхожу в браузер без вкладок, а оказывается просто tab groups там же хранятся, ппц кароч)
@anonim алсо если кто-то хочет синкать настройки — некотрые аддоны (на самом деле только один такой встречался) внезапно при синхронизации могут сбросить настройки (мердж уровня б)
@238328 У тебя данные до диска не дошли, но ты при этом знаешь про существование файла и его размер. ВСЕ ОТРАБОТАЛО КАК НУЖНО, НЕ СПОРЬ.
Чтобы безопасно заменить файл, обычно рядом пишут временный, синхронизируют состояние, (удаляют старый и) переименовывают временный в старое имя, так у тебя при любом сбое есть либо старый, либо новый, либо оба. Поскольку ты говоришь, что где-то лежит ещё отдельный бэкап, здесь не посчитали нужным городить огород.
@ceyt отдельный бэкап это я делал руками пол-месяца назад и он никак не участвует, а как раз оба файла (текущая сессия и автоматическая копия сессии для восстановлении) ничего не дали полезного