On 11/11/2015 06:22 PM, Dimitry Sibiryakov wrote: > 11.11.2015 15:21, Alex Peshkoff wrote: >> That flag means here 'page must be encrypted when written to the disk'. > Стоп, я опять не понимаю как это не работает. > Страница читается с диска с установленным флагом. Она расшифровывается, > но флаг > остаётся установленным. > Если идёт процесс расшифровки, то условие (bool(page->pag_flags & > Ods::crypted_page) != > crypt) выполняется и она помечается как грязная. > При записи уже crypt == false и флаг должен просто сняться перед записью. > > Почему это не работало и как присвоение никогда не используемого флага > исправило ситуацию? >
Дим, ну там ведь всё написано вроде. В кеше страницы всегда расшифорваны. При записи на диск если флаг стоит страница будет зашифрована, если нет - не будет. До фикса страница на диск попадала с флагом, в кеше оставалась без флага. При расшифровке она читалась из кеша (если перед alter decrypt закрыть БД а потом снова открыть баг не наблюдается). Чего тут не ясно? ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
