Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DB Exception и падение сервера / 8 сообщений из 8, страница 1 из 1
28.12.2015, 17:38
    #39139548
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
Есть две процедуры, примерно такого содержания
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
CREATE PROCEDURE sp_d_test
RETURNS (
  out_cnt INTEGER)
AS
  DECLARE VARIABLE var_id INTEGER;
BEGIN
  out_cnt = 0;
  FOR
    SELECT
      t."ID"
    FROM
      my_table t
    WHERE
      ........
    INTO
      :var_id
  DO BEGIN
    EXECUTE PROCEDURE sp_d_test2(:var_id);
    WHEN EXCEPTION ex_my DO
      out_cnt = :out_cnt + 1
  END
END

CREATE PROCEDURE sp_d_test2 (
  in_id INTEGER)
AS
BEGIN
  ............
  IF (........) THEN
    EXCEPTION ex_my;
  ............
END



Обычно все работает. Но заметил интересный эффект: если запрос в первой процедуре возвращает две записи и при обработке первой записи sp_d_test2 генерирурет исключение, то сервер падает с сообщением в логе
sp_d_test
Access violation.
The code attempted to access a virtual
address without privilege to do so.
This exception will cause the InterBase server
to terminate abnormally.

Теперь интересное: если исключение возникает на второй записи, на обеих записях, исключение не ловится или бросается и ловится другое исключение (скажем, ex_my2) или запись выбирается одна, то сервер не падает.

Версия сервера
Server Version: WI-V11.0.4.820
Server Implementation: InterBase/x64/Windows
Service Version: 2
На IB 2009 ошибка не проявляется, Backup/Restore не помогает.

Тестовый пример создать не удалось. Проблема не воспроизводится. Вложенная процедура вставляет данные в таблицу, а дальше AFTER INSERT триггера вставляют данные еще в три таблицы.

Обновить сервер нет возможности. Могу только сервис-паки накатывать, но для XE3 их всего 4 и они установлені. Если кто-то тікнет меня на qc, или скажет как обойти грабли - буду благодарен.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
28.12.2015, 17:56
    #39139558
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
_Vasilisk_скажет как обойти грабли
Для начала - попробуй избавиться от WHEN и сделай процедуре статус возврата. В коде
обработчиков исключений исторически зарыта пара багов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.12.2015, 18:38
    #39139593
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
_Vasilisk_,

я бы посоветовал проверить на XE7. По идее, XE3 уже никто править не будет, так что нужен или апгрейд, или workaround (уже предложили).
Последний апдейт ХЕ3 был 11.0.4.820 .
...
Рейтинг: 0 / 0
28.12.2015, 18:40
    #39139594
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
_Vasilisk_,

добавлю от "капитана очевидность" - если в ХЕ7, в последнем апдейте, этот баг воспроизведется, и не будет отрапортован, то все останется, как и было.
Чинятся только те баги, на которые был репорт.
...
Рейтинг: 0 / 0
28.12.2015, 19:09
    #39139605
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
kdvПоследний апдейт ХЕ3 был 11.0.4.820 .Он и стоит
_Vasilisk_Server Version: WI-V11.0.4.820
kdvЧинятся только те баги, на которые был репорт.Я не могу его нормально зарепортить
_Vasilisk_Тестовый пример создать не удалось. Проблема не воспроизводится
...
Рейтинг: 0 / 0
28.12.2015, 19:14
    #39139606
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
_Vasilisk_Тестовый пример создать не удалось. Проблема не воспроизводится
Перекомпиляция всех процедур и триггеров не устраняет проблему?
...
Рейтинг: 0 / 0
28.12.2015, 19:15
    #39139607
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
DBConstructorПерекомпиляция всех процедур и триггеров не устраняет проблему?_Vasilisk_Backup/Restore не помогает.
...
Рейтинг: 0 / 0
29.12.2015, 01:54
    #39139709
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB Exception и падение сервера
_Vasilisk_,

backup/restore не перекомпилирует процедуры и триггеры, пора бы уже это знать.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / DB Exception и падение сервера / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]