IBProvider 3.8.1. Исправление ошибок.
Привет всем.
В новой сборке 3.8.1 исправлена ошибка, приводящая к появлению сообщения вида «BUG-CHECK в [TIBP_RW_TableStorage_Base::RowDataDpmBlock_Verification] [003]. Возможная причина: Wrong DPM block [000000000490:0000] size: 1692. Wait size: 16.».
Где проявляется.
Обновляемые множества.
Причина.
Неправильное условие в функции проверки.
Условия для воспроизведения.
1. Размер записи множества должен быть, грубо говоря, больше 4K.
2. Нужно порождать большое количество мусора. Например, включить отложенные обновления и в бесконечном цикле изменять значение одной из колонок.
—-
Ошибка исправлена.
Написан тест, который воспроизводит ситуацию.
—-
В новых бинарниках также реализованы новые загрузчики схем PROCEDURES, PROCEDURE_COLUMNS, PROCEDURE_PARAMETERS для Firebird 3.0. В них исключены сведения о процедурах и функциях, созданные в рамках PACKAGES.