powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка выполнения запроса
25 сообщений из 33, страница 1 из 2
Ошибка выполнения запроса
    #39966985
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем обновил на днях версию сервера с 2.5.8 до релизной 2.5.9, после этого началась проблема с одним запросом, он перестал работать через приложение (приложение работает с базой через jaybird), но из ibexpert работает без проблем.
Запрос возвращает текстовый блоб(xml), но если размер блоба получается небольшой, то через приложение так же отрабатывает без ошибки.
Текст ошибки:
Код: sql
1.
2.
3.
4.
org.firebirdsql.jdbc.FBSQLException: Resource Exception. database file appears corrupt (/tmp/fb_table_EZClje); wrong page type; page 0 is of wrong type (expected 5, found 0) [SQLState:XX001, ISC error code:335544335]
Reason: database file appears corrupt (/tmp/fb_table_EZClje); wrong page type; page 0 is of wrong type (expected 5, found 0) [SQLState:XX001, ISC error code:335544335], error code: HY000
Reason: database file appears corrupt (/tmp/fb_table_EZClje); wrong page type; page 0 is of wrong type (expected 5, found 0) [SQLState:XX001, ISC error code:335544335]
Reason: database file appears corrupt (/tmp/fb_table_EZClje); wrong page type; page 0 is of wrong type (expected 5, found 0) [SQLState:XX001, ISC error code:335544335] 


FB 2.5.9 Classic Linux
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39966988
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992,

А что мешает откатиться назад ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39966989
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AltHasp,
Да в принципе ничего не мешает, просто хочется разобраться в проблеме.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39966995
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992,

небольшой воспроизводимый пример был бы очень кстати
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39966998
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Постараюсь придумать что нибудь.

В общем работу запроса я исправил. Было как, записи вставлялись во временную таблицу (delete row), поле в таблице varchar(32765), после была обычная склейка select list().
Запрос падал на коммите.
Переделал поле в таблице на blob, ошибка исчезла.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967000
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"wrong page type" достаточно серьёзная ошибка, чтобы её игнорировать.
Даже если она не совсем настоящая, как в данном случае.
Хотелось бы это исправить.

Временая таблица - GTT ON COMMIT DELETE ROWS ?
Блоб читается до коммита ?
Блоб закрывается после чтения - до коммита ?
Вставка записей и LIST из них - отдельными запросами или одним PSQL блоком (процедурой) ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967001
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё один вопрос - commit обычный или retaining ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967011
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Временая таблица - GTT ON COMMIT DELETE ROWS ?

да
hvlad
Блоб читается до коммита ?
Блоб закрывается после чтения - до коммита ?

метод работает так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Connection conn;
Statement statement = null;
ResultSet resultSet = null;
statement = conn.createStatement();
resultSet = executeStatement(sql, statement);
conn.commit();
далее работаем с полученным датасетом (т.е. в данном случае это блоб)
потом resultSet.close(); statement.close(); conn.close();


hvlad
Вставка записей и LIST из них - отдельными запросами или одним PSQL блоком (процедурой) ?

Вставка и list одним блоком, но этот блок находится в процедуре, которая вызывается из основной процедуры.

hvlad
И ещё один вопрос - commit обычный или retaining ?

Коммит обычный
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967013
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992,

если содержимое блоба не вычитывается в резултсет при работе executeStatement, то работать с blobId после commit плохая идея. BLOB уже может не существовать на этот момент
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967019
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и сами result set-ы при коммите обычно закрываются.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967020
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992
метод работает так:
Спасибо, уже что-то.
Денис уже сказал, что работать с блобом после коммита - плохая идея.
Но должна возникать ошибка о кривом блобе, не wrong page type.
Хотя, до этого мы возможно просто не дошли, если облом на коммите.

Уточним ещё пару деталей:
результат LIST - что с ним происходит ?
Он передаётся клиенту как есть, или этот блоб как-то ещё "меняется" в процедурах ?
Вставляется в таблицу ? Если да, то в какую - GTT или постоянную ?
Ошибка точно возникает при commit ? Не при попытке работать с блобом ?
Триггеров на commit нет ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967021
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Да и сами result set-ы при коммите обычно закрываются.
Если резалтсет не большой, то он мог быть полностью сфетчен клиентом до коммита.
А вот насчёт полного фетча и кеширования блобов при этом - сильно сомневаюсь.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967022
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992
если размер блоба получается небольшой
Это сколько ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967026
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНо должна возникать ошибка о кривом блобе, не wrong page type.

А как определяется валидность персистентного id-а? Не пытается ли при этом читаться
страница, вычисленная из него?..

Меня в сообщении об ошибке ещё смущает, что страница 0 ожидается типа 5, а не 1. Возможно,
она пытается прочитаться по цепочке ссылок, одна из которых которая уже обнулилась.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967027
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДа и сами result set-ы при коммите обычно закрываются.

у него Java. Там это не обязательно так
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967029
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Уточним ещё пару деталей:
результат LIST - что с ним происходит ?
Он передаётся клиенту как есть, или этот блоб как-то ещё "меняется" в процедурах ?
Вставляется в таблицу ? Если да, то в какую - GTT или постоянную ?
Ошибка точно возникает при commit ? Не при попытке работать с блобом ?
Триггеров на commit нет ?

На клиенте результат засовывается в xml файл и зипуется, т.е. по факту с полученный блоб уже не меняется.
В таблицу вставляется:
Код: sql
1.
2.
3.
4.
5.
6.
7.
for select blob from proc_name
into :data_blob 
do begin 
  suspend;
  insert into tbl(blob)
  values(:data_blob);
end


Забыл сразу уточнить, что процедура возвращает две строки (два блоба).
Таблица постоянная. Триггеров на коммит нет.

hvlad
demon1992
если размер блоба получается небольшой
Это сколько ?

на 400кб например, проблемы нет.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967033
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad

Ошибка точно возникает при commit ? Не при попытке работать с блобом ?

Код: 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.
2020-06-08T12:44:51.2760 (29300:0x7fb0703b4978) EXECUTE_STATEMENT_FINISH
    DB (ATT_564470, USER:NONE, UTF8, TCPv4:127.0.0.1/45052)
    srv.poolId=87474882-7b82-43a7-aa11-093b299424a7:0
        (TRA_34927879, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE)

Statement 18219404:
-------------------------------------------------------------------------------
select * from PROC_NAME ()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN ()
2 records fetched
  44378 ms, 60994 read(s), 14191 write(s), 4241167 fetch(es), 153058 mark(s)
2020-06-08T12:44:51.5580 (29300:0x7fb0703b4978) FAILED COMMIT_TRANSACTION
    DB (ATT_564470, USER:NONE, UTF8, TCPv4:127.0.0.1/45052)
    srv.poolId=87474882-7b82-43a7-aa11-093b299424a7:0
        (TRA_34927879, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE)
      2 ms, 66 read(s), 1 write(s), 1604 fetch(es), 1541 mark(s)

2020-06-08T12:44:51.5610 (29300:0x7fb0703b4978) ROLLBACK_TRANSACTION
    DB (ATT_564470, USER:NONE, UTF8, TCPv4:127.0.0.1/45052)
    srv.poolId=87474882-7b82-43a7-aa11-093b299424a7:0
        (TRA_34927879, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE)
      0 ms, 1 read(s), 1 write(s), 1 fetch(es), 1 mark(s)

2020-06-08T12:45:03.9710 (29326:0x7f56a20e7978) DETACH_DATABASE
    DB (ATT_564472, USER:NONE, UTF8, TCPv4:127.0.0.1/45097)
    srv.poolId=87474882-7b82-43a7-aa11-093b299424a7:0
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967035
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денису него Java. Там это не обязательно так

Оно, конечно, так, но объём работы, необходимый для поддержки такого режима, довольно
велик, а вероятность глюков на этом пути значительна. Поэтому, например, Арефьев так не
делает. Хотя Марк, конечно, может.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967049
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А как определяется валидность персистентного id-а?
А где ты нашёл персистентный id ? Я его пока что не вижу.
Если вдруг окажется что блоб из LIST'а таки куда-то вставлен, и наружу выдан именно этот блоб - то тогда может быть.
Но всё равно - ошибка на коммите, а не при использовании блоба клиентом.


Dimitry Sibiryakov
Меня в сообщении об ошибке ещё смущает, что страница 0 ожидается типа 5, а не 1
При чём тут 1 ?
Где-то в структурах в памяти есть (или откуда-то вычисляется) ссылка на DP с номером 0.
Во временном файле с данными GTT стр-ца 0 не является header'ом, она не используется
Отсюда сообщение об ошибке.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967051
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992
В таблицу вставляется
...
Забыл сразу уточнить, что процедура возвращает две строки (два блоба).
Таблица постоянная.
Тут речь о том блобе, который вернул LIST ? Его вставляют в постоянную таблицу ?
А что возвращается клиенту ?
Вот это вот :data_blob, или что-то другое ?

demon1992
на 400кб например, проблемы нет.
Всё интереснее и интереснее.
Боюсь, воспроизводимый пример всё же понадобится.
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967052
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon1992
Код: sql
1.
srv.poolId=87474882-7b82-43a7-aa11-093b299424a7:0

Что это ? Имя БД ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967055
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Dimitry SibiryakovДа и сами result set-ы при коммите обычно закрываются.


у него Java. Там это не обязательно такСерверу всё равно :)
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967060
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВо временном файле с данными GTT стр-ца 0 не является header'ом

Эва... У меня откуда-то застряло в голове, что файлы временных таблиц имеют точно такую же
структуру, как база. Ну, спишем на склероз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967062
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
файлы временных таблиц имеют точно такую же
структуру, как база.
Имеют. И что ?
...
Рейтинг: 0 / 0
Ошибка выполнения запроса
    #39967084
demon1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Тут речь о том блобе, который вернул LIST ? Его вставляют в постоянную таблицу ?
А что возвращается клиенту ?
Вот это вот :data_blob, или что-то другое ?

Блоб, который вернул list, вставляется в постоянную таблицу, и он же возвращается клиенту.

hvlad
]Что это ? Имя БД ?


Нет) это имя коннекта. (mon$remote_process который)

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


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