powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / isql + quit после срубленного nbackup'a (вызывавшегося ч/fbsvcmgr): pthread_mutex, err=22
2 сообщений из 2, страница 1 из 1
isql + quit после срубленного nbackup'a (вызывавшегося ч/fbsvcmgr): pthread_mutex, err=22
    #38384829
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Одна бедная тестовая база подвергалась процессу nbackup'a (через вызовы в цикле fbsvcmgr), который в итоге заклинил и был срублен ("крестиком" закрыл консоль, в котором он трудился).
Сейчас в заголовке базы вот это:
Код: 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 "empty25.fdb"
Database header page information:
        Flags                   0
        Checksum                12345
        Generation              1444883
        Page size               4096
        ODS version             11.2
        Oldest transaction      1010847
        Oldest active           1027152
        Oldest snapshot         1027152
        Next transaction        1033318
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      411572
        Implementation ID       24
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Aug 8, 2013 17:55:03
        Attributes              backup lock

    Variable header data:
        Database backup GUID:   {0161FE83-0B9C-45D2-A4B2-6AE7470817EB}
        *END*

Если теперь подключиться к базе по isql и тут же выйти по quit, то в логе ФБ появится вот это:
Код: plaintext
1.
2.
3.
4.
vmoel63.local   Tue Sep  3 01:33:28 2013
        Operating system call pthread_mutex_lock failed. Error code 22

vmoel63.local   Tue Sep  3 01:33:33 2013
        Firebird shutdown is still in progress after the specified timeout

Сообщение появляется именно на ВЫХОДЕ из isql (при ВХОДЕ - никакого сообщения нет).

Это так и должно быть (LI-V2.5.3.26686) ?

ЗЫ. Консультации с линуксовым Источником Света и копание в /usr/include/errno.h + (рекурсивно) всех .h, которые там юзаются, привело вот к этому "разъяснительному списку" для ошибок, вываливаемых в лог FB как "Operating system call pthread_mutex ... Error code: NN"
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
cat /usr/include/asm-generic/errno-base.h
#ifndef _ASM_GENERIC_ERRNO_BASE_H
#define _ASM_GENERIC_ERRNO_BASE_H

#define EPERM            1      /* Operation not permitted */
#define ENOENT           2      /* No such file or directory */
#define ESRCH            3      /* No such process */
#define EINTR            4      /* Interrupted system call */
#define EIO              5      /* I/O error */
#define ENXIO            6      /* No such device or address */
#define E2BIG            7      /* Argument list too long */
#define ENOEXEC          8      /* Exec format error */
#define EBADF            9      /* Bad file number */
#define ECHILD          10      /* No child processes */
#define EAGAIN          11      /* Try again */
#define ENOMEM          12      /* Out of memory */
#define EACCES          13      /* Permission denied */
#define EFAULT          14      /* Bad address */
#define ENOTBLK         15      /* Block device required */
#define EBUSY           16      /* Device or resource busy */
#define EEXIST          17      /* File exists */
#define EXDEV           18      /* Cross-device link */
#define ENODEV          19      /* No such device */
#define ENOTDIR         20      /* Not a directory */
#define EISDIR          21      /* Is a directory */
 #define EINVAL          22      /* Invalid argument */ 
#define ENFILE          23      /* File table overflow */
#define EMFILE          24      /* Too many open files */
#define ENOTTY          25      /* Not a typewriter */
#define ETXTBSY         26      /* Text file busy */
#define EFBIG           27      /* File too large */
#define ENOSPC          28      /* No space left on device */
#define ESPIPE          29      /* Illegal seek */
#define EROFS           30      /* Read-only file system */
#define EMLINK          31      /* Too many links */
#define EPIPE           32      /* Broken pipe */
#define EDOM            33      /* Math argument out of domain of func */
#define ERANGE          34      /* Math result not representable */

#endif

16-ю и 11-ю я неоднократно встречал (16-я = "мало ресурсов, скоро помрём"; 11-я = "всё, кранты", хотя формулировка в списке совсем безобидная: "try again" :)).
Но вот 22-ю еще встречать не приходилось.
...
Рейтинг: 0 / 0
isql + quit после срубленного nbackup'a (вызывавшегося ч/fbsvcmgr): pthread_mutex, err=22
    #38384899
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понял, что снова поломал(-ось) что-то при коннекте по ТСР (в отличие от embedded)... :-/
Ибо вот скриптик, создающий .fdb-времянку, запрашивающий версию и тут же делающий quit:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
inp=createtmpfdb.tmp
fdb=/var/db/fb25/tmp_$(date +'%H%M%S').fdb
rm -f $inp
echo set echo on\;>>$inp
echo set list on\;>>$inp
 #echo create database \'$fdb\' user \'sysdba\' password \'masterke\'\;>>$inp 
 echo create database \'localhost\/3253:$fdb\' user \'sysdba\' password \'masterke\'\;>>$inp 
echo show version\;>>$inp
echo select current_timestamp dts_create_fdb from rdb\$database\;>>$inp
echo select count\(\*\) from rdb\$types,rdb\$types,rdb\$types\;>>$inp
echo select current_timestamp dts_before_quit from rdb\$database\;>>$inp
echo quit\;>>$inp
/opt/fb25cs/bin/isql -q -i $inp
#cat $inp
echo after isql: dts=$(date +'%H:%M:%S')
rm -f $fdb $inp

Если переставить комментарий с синей строки на красную, то коннект к создаваемой базе будет embedded и при этом в логе ФБ никаких "странных" сообщений не будет. Да и вообще скрипт выполнится мгновенно.

Если же оставить как показано, то коннект будет по ТСР и тогда при запуске скрипта вижу:

Код: 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.
25.
26.
$ ./createtmpfdb.sh
set list on;
create database 'localhost/3253:/var/db/fb25/tmp_083219.fdb' user 'sysdba' password 'masterke';
show version;
ISQL Version: LI-V2.5.3.26686 Firebird 2.5
Server version:
Firebird/linux AMD64 (access method), version "LI-V2.5.3.26686 Firebird 2.5"
Firebird/linux AMD64 (remote server), version "LI-V2.5.3.26686 Firebird 2.5/tcp (vmoel63.local)/P12"
Firebird/linux AMD64 (remote interface), version "LI-V2.5.3.26686 Firebird 2.5/tcp (vmoel63.local)/P12"
on disk structure version 11.2
select current_timestamp dts_create_fdb from rdb$database;

DTS_CREATE_FDB                  2013-09-03 08:32:19.4030


select count(*) from rdb$types,rdb$types,rdb$types;

COUNT                           11852352


select current_timestamp dts_before_quit from rdb$database;

DTS_BEFORE_QUIT                 2013-09-03  08:32:23 .2240


quit;
after isql: dts= 08:32:28 

А вот что вижу в логе при этом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$ tail -f ./firebird.log

vmoel63.local   Tue Sep  3  08:32:23  2013
        Operating system call pthread_mutex_lock failed. Error code 22


vmoel63.local   Tue Sep  3  08:32:28  2013
        Firebird shutdown is still in progress after the specified timeout
В общем, дело было не в бобине nbackup'e. Знать бы только, что так повлиять могло на бедный 2.5.3... :-/

ЗЫ. Перед этим тестом перегружал linux-хост.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / isql + quit после срубленного nbackup'a (вызывавшегося ч/fbsvcmgr): pthread_mutex, err=22
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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