НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2551] DP_Irbis64Native может неверно определить формат XRF на базе с удаленными первыми записями📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.2.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль DP_Irbis64Native - Нативный провайдер данных к файлам СУБД ИРБИС 64/64+
Завершено: 29.06.2026 14:45
Пользовательский сценарий:
Администратор или фоновая операция открывает базу через DP_Irbis64Native. Провайдер должен автоматически определить формат XRFфайла и после открытия корректно читать XRFссылки на MST-записи.
Наблюдаемая проблема:
При автоматическом определении формата XRF проверялись только первые MFN до 99 и выбор о формате делался по первому совпавшему чтению. Если в начале базы много отсутствующих, удаленных или нерепрезентативных записей, провайдер мог выбрать неподходящий размер XRFзаписи или уйти в fallback по размеру файла без достаточной проверки реальных записей. После этого чтение записей, диагностика и административные операции могли работать с неверными XRFсмещениями.
Ожидаемое поведение:
DP_Irbis64Native должен устойчиво определять XRFформат не только по первым MFN, но и по контрольным точкам дальше по базе. Решение должно сравнивать количество валидных совпадений для старого и нового формата XRF и выбирать формат с большим числом подтвержденных MSTлидеров. Если подтверждений недостаточно, сохраняется существующий fallback по размеру XRF-файла.
Вносимые изменения:
MstSpace::Open() формирует набор пробных MFN: первые записи и степенные контрольные точки до последнего MFN.XRF offset -> MST leader.mfn.Документация: Отдельное изменение пользовательской документации не требуется: исправление меняет внутреннюю устойчивость открытия native-БД и не добавляет новый пользовательский сценарий или настройку.