Зависание сервера FB 2.1.3 при ресторе

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18
Откуда: Челябинск

Зависание сервера FB 2.1.3 при ресторе

Сообщение TAV » 19 май 2010, 16:38

Два сервера Windows 2003 SP2 RU (все обновления).
Сервер FB 2.1.3 SS на обоих.

Разное только железо:
Сервер 1:
Тип ЦП Intel Celeron D 320, 2400 MHz (18 x 133)
Системная плата Asus P4P800S-X
Чипсет системной платы i848P
ОЗУ 512 Мб

Название ОС Microsoft Windows Server 2003, Standard Edition
Версия ОС 5.2.3790 (Win2003 Retail)
Сервер 2:
Тип ЦП DualCore Intel Celeron E1400, 2000 MHz (10 x 200)
Системная плата Foxconn G31MVP
ОЗУ 1 Гб

Название ОС Microsoft Windows Server 2003, Standard Edition
Версия ОС 5.2.3790 (Win2003 Retail)
запускается одна и та же команда восстановления БД.

Код: Выделить всё

gbak.exe -c -user SYSDBA -pass m -se localhost:service_mgr -p 4096 -rep -v -y C:\BATBACKUP\BSRrst.log D:\Work\Court\IbsData\ExtBsr.fbk C:\BATBACKUP\ExtBsr.fdb
на "Сервер 1" все проходит нормально.
на "Сервер 2" зависание сервера FB на моменте "commiting metadata", то есть уже в самом конце восстановления.
Восстановление проводил и через IBExpert и через данную команду - ситуация одинаковая.
Причем сервер FB можно поднять только перезагрузив компьютер либо сняв процесс fbserver в диспетчере задач. При этом процессор не загружен и fbserver тихо молчит не ест даже память.
Потом БД нормально открывается и работает.

в логе FB вот такое сообщение:

Код: Выделить всё

SERVER35 (Client)	Wed May 19 18:10:14 2010
INET/inet_error: read errno = 10054

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение hvlad » 19 май 2010, 17:27

TAV писал(а):на "Сервер 1" все проходит нормально.
на "Сервер 2" зависание сервера FB на моменте "commiting metadata", то есть уже в самом конце восстановления.
Восстановление проводил и через IBExpert и через данную команду - ситуация одинаковая.
Причем сервер FB можно поднять только перезагрузив компьютер либо сняв процесс fbserver в диспетчере задач. При этом процессор не загружен и fbserver тихо молчит не ест даже память.
А диск что-то делает ?
Бекап один и тот же ?
Что изменено в firebird.conf ?
TAV писал(а):Потом БД нормально открывается и работает.
gfix -v -full что-то выдаёт ?

kdv
Forum Admin
Сообщения: 6575
Зарегистрирован: 25 окт 2004, 18:07
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение kdv » 19 май 2010, 17:47

вдогонку - опция -rep используется осознанно? А то мало-ли что.

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18
Откуда: Челябинск

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение TAV » 20 май 2010, 07:58

hvlad писал(а):А диск что-то делает ?
ничего
hvlad писал(а):Бекап один и тот же ?
Нет, перед восстановлением делается бекап с основного сервера БД. И на том, и на том.
Команда:

Код: Выделить всё

gbak.exe -b -user SYSDBA -pass m server51:db_name D:\Work\Court\IbsData\ExtBsr.fbk
Провел эксперимент. Взял бекап с "Сервер 1". Тот же эффект.
hvlad писал(а):Что изменено в firebird.conf ?
По умолчанию.
hvlad писал(а):gfix -v -full что-то выдаёт ?

Код: Выделить всё

gfix -v -full -user SYSDBA -pass m localhost:db_name
Ничего не выдает

Лог gbak

Код: Выделить всё

gbak:    committing metadata 
после этого зависание. Потом если снять процесс сервера FB, IBExpert выдает:

Код: Выделить всё

IBE: Unsuccessful execution caused by a system error that precludes
     successful execution of subsequent statements.
     Unable to complete network request to host "localhost".
     Error reading data from the connection.
     Удаленный хост принудительно разорвал существующее подключение. .
IBE: Restore completed. Current time: 9:55:08. Elapsed time: 00:04:19

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18
Откуда: Челябинск

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение TAV » 20 май 2010, 08:01

kdv писал(а):вдогонку - опция -rep используется осознанно? А то мало-ли что.
Да, осознанно. БД восстанавливается НЕ на рабочую базу поверх, которая потом копируется с остановкой сервера.

kdv
Forum Admin
Сообщения: 6575
Зарегистрирован: 25 окт 2004, 18:07
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение kdv » 20 май 2010, 11:08

все равно, использовать -rep - плохая привычка. на рабочую, на нерабочую, не на рабочую - какая разница? Шваркнете в какой-то момент поверх рабочей, и привет.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение hvlad » 20 май 2010, 11:38

Ставишь сборку с pdb и настраиваешь ватсона
В момент зависания убиваешь процесс ватсоном : drwtsn32 -p PID
Креш лог шлёшь мне на посмотреть

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18
Откуда: Челябинск

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение TAV » 21 май 2010, 07:37

hvlad писал(а):Ставишь сборку с pdb и настраиваешь ватсона
В момент зависания убиваешь процесс ватсоном : drwtsn32 -p PID
Креш лог шлёшь мне на посмотреть
вот лог
http://ifolder.ru/17803473

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение hvlad » 22 май 2010, 00:58

У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Выше по стеку есть DcomChannelSetHResult - она часом не удалённый объект создаёт ?

Вообще-то в DllMain мало что можно делать. Я не уверен, что CoCreateInstance - вызывать безопасно...

TAV
Сообщения: 48
Зарегистрирован: 31 май 2005, 08:18
Откуда: Челябинск

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение TAV » 24 май 2010, 07:39

hvlad писал(а):У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Выше по стеку есть DcomChannelSetHResult - она часом не удалённый объект создаёт ?

Вообще-то в DllMain мало что можно делать. Я не уверен, что CoCreateInstance - вызывать безопасно...
Да есть такая UDF.
Исходников ее нет. Сказать точно не могу что там вызывается в DllMain. Предположительно там инициализируется объект модуля морфологического разбора, который ставится отдельно.
После его инсталляции рестор прошел нормально.

Но интересно другое, на компьютере с неустановленным модулем морф.-го разбора рестор проходит нормально, правда система там Windows 7.

sergei7
Сообщения: 7
Зарегистрирован: 11 мар 2009, 17:00

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение sergei7 » 25 июн 2010, 11:46

У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Общий вопрос: А зачем при ресторе это (загружать и инициализировать) делать?
С чем связано такое ограничение?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение hvlad » 25 июн 2010, 12:35

sergei7 писал(а):
У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Общий вопрос: А зачем при ресторе это (загружать и инициализировать) делать?
Движок парсит BLR и строит зависимости (RDB$DEPENDENCIES). Зависимости не бекапятся, а строятся заново при ресторе.
sergei7 писал(а):С чем связано такое ограничение?
Какое ограничение ?

sergei7
Сообщения: 7
Зарегистрирован: 11 мар 2009, 17:00

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение sergei7 » 25 июн 2010, 12:46

hvlad писал(а):Какое ограничение ?
Ограничением я называю необходимость инициализации UDF при restore.
И все-таки я не понял - какое отношение построение зависимостей имеет к инициализации UDF? Если не сложно - объясните, пожалуйста, подробнее.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48
Контактная информация:

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение hvlad » 25 июн 2010, 13:36

sergei7 писал(а):
hvlad писал(а):Какое ограничение ?
Ограничением я называю необходимость инициализации UDF при restore.
И все-таки я не понял - какое отношение построение зависимостей имеет к инициализации UDF? Если не сложно - объясните, пожалуйста, подробнее.
Когда BLR парсится, все зависимые объекты (в частности - DLL с UDF) также загружаются в память.
Никакой "инициализации UDF движком" не существует.

sergei7
Сообщения: 7
Зарегистрирован: 11 мар 2009, 17:00

Re: Зависание сервера FB 2.1.3 при ресторе

Сообщение sergei7 » 25 июн 2010, 13:37

Спасибо за пояснение.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость