powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
9 сообщений из 9, страница 1 из 1
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38609106
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Напоролся на два сценария странного поведения gfix -shut. Первый - безобидный (он просто выдаёт "пугающее сообщение", но работу свою таки делает ОК), а вот второй - неприятный.
Подозреваю, что это как-то связано с тем, что dimitr некоторое время взад сделал шатдаун синхронным, т.е. он НЕ возвращает управление в ось, пока не убедится, что "все там отвалились".

Сценарий-1.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 session #1 
$ /opt/fb30trnk/bin/isql localhost/3333:oltp30
SQL> 

 session #2 
$ /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
- через 2 сек получаю:
I/O error during "lock" operation for file "/var/db/fb30/oltp30.fdb"
-Error while trying to open file
-Resource temporarily unavailable

При этом повторный ввод команды отвечает, что:
"Target shutdown mode is invalid for database "/var/db/fb30/oltp30.fdb"

Повторный ввод команды в окне-1:
Код: plaintext
SQL> commit; select count(*)-1 from mon$attachments;
- показывает, что это действительно так и база в шатдауне:

Код: plaintext
1.
2.
3.
Statement failed, SQLSTATE = 08003
connection shutdown
Statement failed, SQLSTATE = 08006
Error writing data to the connection.



Сценарий-2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 session #1 
$ /opt/fb30trnk/bin/isql localhost/3333:oltp30
Database:  localhost/3333:oltp30

 session #2 
$ /opt/fb30trnk/bin/isql localhost/3333:oltp30
Database:  localhost/3333:oltp30
SQL> commit; select count(*)-1 from mon$attachments;

             SUBTRACT
=====================
                    3

 session #3 
/opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
- будет висеть до бесконечности, либо до:
1) выхода из сеансов 1 и 2
2) ввода в каждом из них какой-либо команды, которая тут же обломится, например:
Код: plaintext
1.
2.
3.
4.
5.
SQL> commit; select count(*)-1 from mon$attachments; -- повторный ввод
Statement failed, SQLSTATE = 08003
connection shutdown
Statement failed, SQLSTATE = 08006
Error writing data to the connection.

ЗЫ. Заголовок базы, пока висит gfix -shut, показывает, что она в ONLINE:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Database "/var/db/fb30/oltp30.fdb"
Database header page information:
        Flags                   0
        Generation              92523
        System Change Number    0
        Page size               8192
        ODS version             12.0
        Oldest transaction      21744
        Oldest active           92476
        Oldest snapshot         92476
        Next transaction        92483
        Sequence number         0
        Next attachment ID      717
        Implementation          HW=AMD/Intel/x64 little-endian OS=Linux CC=gcc
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Mar 13, 2014 12:32:55
        Attributes

    Variable header data:
        Sweep interval:         0
        *END*
ЗЗЫ.
Код: plaintext
1.
2.
3.
4.
5.
6.
ISQL Version: LI-T3.0.0.31003 Firebird 3.0 Alpha 2
Server version:
Firebird/Linux/AMD/Intel/x64 (access method), version "LI-T3.0.0.31003 Firebird 3.0 Alpha 2"
Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-T3.0.0.31003 Firebird 3.0 Alpha 2/tcp (oel64)/P13"
Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-T3.0.0.31003 Firebird 3.0 Alpha 2/tcp (oel64)/P13"
on disk structure version 12.0
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38609269
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не подтверждаю ни один из этих пунктов. В первом случае сразу же (безо всяких 2 сек) получаю ошибку. Причем повторное выполнение никаких ошибок шатдауна не возвращает. В втором случае получаю ту же ошибку, что и в первом. Что абсолютно логично.

ЗЫ. LI-T3.0.0.31030
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38609283
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrLI-T3.0.0.31030Хм... ладно, обновлюсь сегодня, проверю тогда еще раз.
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610015
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrне подтверждаю ни один из этих пунктов. Собрал ФБ по сегодняшним сырцам. Таки висит всё равно gfix (я про сценарий-2).
В аттаче- несколько бактрасс для процессов gfix & firebird, а также результат fb_lock_print -a -c
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610314
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты опять что-то скрываешь. Если у тебя сервер настроен как супер и к нему есть коннекты из ISQL, то шатдаун GFIX-ом ты в принципе не сможешь сделать, ибо подключаешься локальной строкой коннекта, т.е. через embedded.
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610317
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и дампы как раз показывают, что gfix ты вызываешь через localhost
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610330
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrЕсли у тебя сервер настроен как супер и к нему есть коннекты из ISQL, то шатдаун GFIX-ом ты в принципе не сможешь сделать, ибо подключаешься локальной строкой коннекта, т.е. через embedded. Это подтверждается только в сценарии-1: там гфикс получает по лбу.
Но в сценарии-2 такой ошибки НЕТУ, гфикс просто тупо висит до бесконечности.

dimitrи дампы как раз показывают, что gfix ты вызываешь через localhostЙок. Не вызывал я гфикс через локалхост:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$ history |grep shut
  223  shutdown -r now
  987  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  988  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  990  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  991  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  993  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  996  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
  998  /opt/fb30trnk/bin/gfix -shut full -force 0 /var/db/fb30/oltp30.fdb
 1016  history |grep shut

ЗЫ. ФБ у мну действительно работает как SS.
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610333
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

и Providers в конфиге не менял? Не сходится, однако.
...
Рейтинг: 0 / 0
gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
    #38610334
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мой конфиг в аттаче. Провайдеров не менял (да и не получилось осилить описалово про них :-)).
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / gfix -shut -full: тушит БД, но НЕ возвращается в ось пока коннект не сделает запрос к базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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