Страница 1 из 1
Порча индексов
Добавлено: 23 фев 2011, 16:14
dostap
есть база в которой после вызова sp происходит разрушение индексов.
Размер в 7zip 3375 kB.
Куда слать?
Re: Порча индексов
Добавлено: 23 фев 2011, 17:56
hvlad
Для начала хотелось бы знать точную версию FB (IB?) и как именно определяется порча индексов
Re: Порча индексов
Добавлено: 23 фев 2011, 18:14
dostap
Прошу прощения, запамятовал. FB WI-V2.5.1.26229
После вызова sp независимо от завершения COMMIT или ROLLBACK
Проверка БД сообщает
Summary of validation errors
Number of index page errors : 2
IBE: Validation completed.
Re: Порча индексов
Добавлено: 23 фев 2011, 20:13
hvlad
dostap писал(а):Прошу прощения, запамятовал. FB WI-V2.5.1.26229
После вызова sp независимо от завершения COMMIT или ROLLBACK
Проверка БД сообщает
Summary of validation errors
Number of index page errors : 2
IBE: Validation completed.
А что в firebird.log ?
А если валидацию сделать ДО выполнения процедуры ?
Re: Порча индексов
Добавлено: 23 фев 2011, 20:40
dostap
Перед выполнением процедуры validate OK, т.к. база перед запуском сп восстанавливается.
в логе
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:32 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:33 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
Re: Порча индексов
Добавлено: 23 фев 2011, 22:41
hvlad
Вот теперь это стало действительно интересно. Даже очень.
Откуда скачать ?
Re: Порча индексов
Добавлено: 24 фев 2011, 11:07
dostap
Как добиться :
После рестора
select * from repair_all(1,1,0)
даст нужный результат.
Скачать с
http://azov.dveri-k.ru/obmen/dvk/doors21.zip
Re: Порча индексов
Добавлено: 24 фев 2011, 15:01
hvlad
Скачал, воспроизвел, смотрю.
Пока могу сказать только что проблема в сочетании вычислимых полей и select with lock.
Если убрать with lock из TWGOODS_UPD (их там два), то всё ок.
Re: Порча индексов
Добавлено: 24 фев 2011, 15:24
dostap
Там происходит закольцовка при update TWGOODS
по причине ошибки которую я внёс собственными руками
Re: Порча индексов
Добавлено: 24 фев 2011, 15:50
hvlad
А что такое - закольцовка, и к чему она должна приводить ?
Re: Порча индексов
Добавлено: 24 фев 2011, 16:43
dostap
Закольцовка значит что TWGOODS может обновлятся вечно( TWGOODS_UPD вызывается рекурсивно).
Но это не должно приводить к поломке базы.
Re: Порча индексов
Добавлено: 24 фев 2011, 17:35
hvlad
Я не вижу зацикливания. Проверить можешь 2-мя способами
а) убрать with lock, как я говорил выше, и запустить процедуру, или
б) отключить триггеры, проапдейтить таблицу саму в себя, собрать мусор (селектом), включить триггеры и опять же запустить процедуру.
Re: Порча индексов
Добавлено: 25 фев 2011, 12:45
hvlad
Исправление тестируется и будет доступно на днях.
Re: Порча индексов
Добавлено: 01 мар 2011, 00:01
dostap
В продолжение осмелюсь предположить что в фазе триггера after insert (or update ?)
не корректно получаются значения new.COMPUTED_BY_FIELD в частности для double precision = .0
хотя уже всё должно быть посчитано.
Я кажись тока нарвался на эту засаду.
Завтра проверю точно
Re: Порча индексов
Добавлено: 01 мар 2011, 01:32
hvlad
dostap писал(а):В продолжение осмелюсь предположить что в фазе триггера after insert (or update ?)
не корректно получаются значения new.COMPUTED_BY_FIELD в частности для double precision = .0
Очень может быть.
Холостой апдейт таблицы решит проблему.
Есс-но будет и полноценное решение в самом движке.
Re: Порча индексов
Добавлено: 05 мар 2011, 01:59
hvlad
Тикет в трекере
Исправление для всех 2.х уже закоммиченно, так что следующий снапшот можно пробовать.