FB 2.0.0.12748, ошбка 104, дисконект при выполнеии запросов

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

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

Ответить
c_breaker
Сообщения: 4
Зарегистрирован: 24 янв 2007, 12:26

FB 2.0.0.12748, ошбка 104, дисконект при выполнеии запросов

Сообщение c_breaker » 24 янв 2007, 12:31

Подскажите почему так и что делать -
постаили второй файрберд, и на выполнении тяжелых запросов и селектов из таких же тяжелых процедур коннект отваливается. На 1.5 все работало как часы.
Причем интересная особенность - если восстановить соединение не выполняя закрытия, то после этого запрос выполняется...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 24 янв 2007, 12:49

есть полная уверенность в правильности UDF?

c_breaker
Сообщения: 4
Зарегистрирован: 24 янв 2007, 12:26

Сообщение c_breaker » 24 янв 2007, 13:12

А как проверить? тестирование показало что падает действительно на UDF. Но что поменялось, что те UDF, которые работали на 1.5 перестали работать на 2.0? и Какой выход подскажете?

Спасибо за ответ!

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 24 янв 2007, 13:40

c_breaker писал(а):Какой выход подскажете?
Отлаживать. Заставить птичку отбросить дамп памяти, загнать его в отладчик, опубликовать стэк.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 24 янв 2007, 13:55

c_breaker писал(а):А как проверить? тестирование показало что падает действительно на UDF. Но что поменялось, что те UDF, которые работали на 1.5 перестали работать на 2.0? и Какой выход подскажете?
проверить код UDF. Убедиться, что все вызовы используют соглашение cdecl и что все аллокирование для FREE_IT функций идет через ib_util_malloc() вместо системной malloc(). Последнее - наиболее вероятная причина. Похоже, доку вообще никто не читает :-(

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

Сообщение kdv » 24 янв 2007, 14:51

Похоже, доку вообще никто не читает
какая дока, вообще ни Faq не смотрят ни примеры.

c_breaker
Сообщения: 4
Зарегистрирован: 24 янв 2007, 12:26

Сообщение c_breaker » 24 янв 2007, 15:18

процедуры добавлены в rfunc. ни маллоков, ни чего особенного тут нет.. и можно ссылку на док? что-то не нашел(

long EXPORT udf_ShL(ARG(long *, a), ARG(long *, b))
ARGLIST(long *a)
ARGLIST(long *b)
{
return (*a << *b);
}

long EXPORT udf_ShR(ARG(long *, a), ARG(long *, b))
ARGLIST(long *a)
ARGLIST(long *b)
{
return (*a >> *b);
}

c_breaker
Сообщения: 4
Зарегистрирован: 24 янв 2007, 12:26

Сообщение c_breaker » 24 янв 2007, 15:22

Да и еще - под sysdba в ibexpert'е все отлично работает, если зайти в клиента под пользователем, то отваливается коннект(

Непонятно нифига((

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

Сообщение kdv » 24 янв 2007, 15:42

попробуйте вместо этих подключить аналогичные например из rfunc. Если rfunc заработает - ищите отличия.

Ответить