SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Зависание событий в FB 3.0
Зависание событий в FB 3.0 [сообщение #6193] Mon, 04 August 2025 20:13 Переход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 89
Зарегистрирован: October 2023
Member
ПО в виде непрерывно работающей службы работает с FB на одном компе. Изредка выплывает такая проблема.
Со стародавних времён в ПО встроена проверка что события FB работают нормально - просто в цикле постятся события и проверяется что обработчик срабатывает.
Вот в один момент события перестают работать. Об этом пишется в лог.
В этом случае делается реконнект к базе и заново регистрация событий.
Но по логу эта регистрация виснет внутри fbclient. Стэк трейс показывает позицию начиная isc_event_block+90 и глубже.
Ок. В этом случае сделано что служба просто перезапускается.
Так вот после перезапуска та же самая фигня - к базе подключается, но регистрация событий виснет так же в isc_event_block+90.
И так несколько раз. Пока юзеры не ребутят сервер - рестартовать только FB они пока не умеют.

Вопрос что со всем этим делать? Принудительно рестартовать службу FB?
Может в новых версиях FB что то такое исправлялось?
Re: Зависание событий в FB 3.0 [сообщение #6194 является ответом на сообщение #6193] Tue, 05 August 2025 00:08 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время не в онлайне  hvlad
Сообщений: 381
Зарегистрирован: August 2022
Senior Member
avp
Вопрос что со всем этим делать?
Изучать, воспроизводить, исправлять.
Re: Зависание событий в FB 3.0 [сообщение #6195 является ответом на сообщение #6194] Tue, 05 August 2025 00:42 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 452
Зарегистрирован: August 2022
Senior Member
isc_event_block() не делает ничего кроме выделения памяти и копирования в него переданных строк. Стэк, скорее всего, неправильно показывает название функции. Есть у него привычка брать ближайшую "снизу". Надо брать отладочную информацию для конкретной версии клиента и смотреть правильными инструментами.

PS: Работа с событиями местами неочевидна и заморочена, там очень легко облажаться.

[Обновления: Tue, 05 August 2025 00:44]

Известить модератора

Re: Зависание событий в FB 3.0 [сообщение #6197 является ответом на сообщение #6195] Tue, 05 August 2025 21:00 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 89
Зарегистрирован: October 2023
Member
SD писал(а) Tue, 05 August 2025 00:42
isc_event_block() не делает ничего кроме выделения памяти и копирования в него переданных строк. Стэк, скорее всего, неправильно показывает название функции. Есть у него привычка брать ближайшую "снизу". Надо брать отладочную информацию для конкретной версии клиента и смотреть правильными инструментами.
Да согласен, скорее всего так.
Трейс в целом показывает висение на ожидании (скорее всего ответа сервера):

ntdll! ZwWaitForSingleObject+12
KERNELBASE! WaitForSingleObject+18
fbclient! fb_shutdown+184848
fbclient! gds__alloc+63
fbclient! isc_event_block+90
SD писал(а) Tue, 05 August 2025 00:42

PS: Работа с событиями местами неочевидна и заморочена, там очень легко облажаться.
Тут есть 2 ньюанса. Во первых такой косяк вылез только на 3.0, на 2.0 такого не было.
Во вторых рестарт проги не помогает в этот момент. Так что видимо что то в сервере ломается.

Ps. Жалко что новые версии FB не поддерживают относительно старые OSD. Затрудняет миграцию.

[Обновления: Tue, 05 August 2025 21:00]

Известить модератора

Re: Зависание событий в FB 3.0 [сообщение #6198 является ответом на сообщение #6197] Wed, 06 August 2025 00:37 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 452
Зарегистрирован: August 2022
Senior Member
Цитата:
fbclient! fb_shutdown+184848
Как я и говорю: таких смещений в природе не бывает. Стэк кривой, оно виснет совсем не там.
Re: Зависание событий в FB 3.0 [сообщение #6199 является ответом на сообщение #6197] Thu, 07 August 2025 13:43 Переход к предыдущему сообщениюПереход к следующему сообщению
ggreggory в настоящее время не в онлайне  ggreggory
Сообщений: 85
Зарегистрирован: July 2022
Member
avp писал(а) Tue, 05 August 2025 21:00

Трейс в целом показывает висение на ожидании (скорее всего ответа сервера):

Попробуйте wireshark-ом промониторить обмен с сервером в такой момент (как на клиенте, так и на сервере). Возможно, натолкнет на источник проблемы.
Re: Зависание событий в FB 3.0 [сообщение #6200 является ответом на сообщение #6199] Thu, 07 August 2025 21:51 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 89
Зарегистрирован: October 2023
Member
Ну почему нельзя поставить FB5 без backup/restore ? Зачем ломать обратную совместимость?
Re: Зависание событий в FB 3.0 [сообщение #6201 является ответом на сообщение #6200] Fri, 08 August 2025 09:40 Переход к предыдущему сообщению
pastor в настоящее время не в онлайне  pastor
Сообщений: 100
Зарегистрирован: June 2022
Географическое положение: Калуга
Senior Member
почему нельзя? можно. пользуемся

это, правда, требует телодвижений от пользователей СУБД, а не от разработчиков
Предыдущая тема: Stack overflow при prepare
Следующая тема: Предупреждение о безопасности Firebird для всех старых версий
Переход к форуму:
  


Текущее время: Mon Aug 11 17:47:22 GMT+3 2025

Общее время, затраченное на создание страницы: 0.01195 секунд