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.

Leave a Comment