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

WI-V2.5.3.26726
Код: sql
1.
2.
3.
4.
5.
6.
recreate table t(id int primary key);
create sequence g;
commit;
insert into t select gen_id(g,1) from rdb$types,rdb$types;
commit;
exit;



Далее создаю скрипт, в котором в бесконечном цикле:
1) делается прямое обращение к базе, через select from rdb$database (просто чтобы точно знать, что мы действительно ХОДИМ в базу);
2) делается попытка вставки строки с нарушением ПК, исключение намеренно подавляется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
-- file = `pk_violator.sql`
set term ^;
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='insert into t(id) values(1)';
  while(1=1) do
    begin
      select 1 from rdb$database into i;
      execute statement stt;
      when any do begin end
    end
end^
set term ;^
commit;

Затем запускаю isql, коннект по ТСР, с этим скриптом:
Код: plaintext
isql localhost/3253:C:\FBTESTING\MISCELAN\T0.FDB -n -i pk_violator.sql

Жду примерно 2-3 минуты, после чего срубаю isql клавишей Ctrl-C. Далее жду еще 30 минут, наивно надеясь, что ФБ прекратит обслуживание вышепоказанного EB.

И вижу в итоге, что:
1) ФБ продолжает молотить, как ни в чём не бывало. Ядро загружено на 97-99%. Потребляемая память, хотя и очень медленно, но - растёт(!)
2) трейс показывает бесконечную молотьбу, - но! - в нём виден только проблемный инсерт, а вот обращения к rdb$database - нету!
trace.conf.parameters
Код: 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.
  enabled true
  log_context true


#  log_filename zaudit.log
  log_connections true
  log_transactions true

 log_statement_prepare true
  log_statement_free true

  log_statement_start true
  log_statement_finish true
#  log_procedure_finish true

  log_trigger_start true
  log_trigger_finish true

  log_blr_requests true

  log_errors true
  log_sweep true


  print_plan true
  print_perf true
#  print_blr true

  time_threshold 0
  max_sql_length 3000
  max_blr_length 1000
  max_dyn_length 1000
  max_log_size 0
trace.output.log
Код: 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
Trace session ID 2 started
2014-03-02T18:30:32.7500 (3624:0223DEB0) TRACE_INIT

        SESSION_2  


2014-03-02T18:30:32.7500 (3624:0223DEB0) EXECUTE_STATEMENT_START

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)



2014-03-02T18:30:32.7500 (3624:0223DEB0) FAILED EXECUTE_STATEMENT_FINISH

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)

0 records fetched

      0 ms, 27 fetch(es), 5 mark(s)



Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge

***************************************************************************************************************

RDB$INDICES                                       1                                                            

RDB$RELATION_CONSTRAINTS                          1                                                            

T                                                                     1                   1                    



2014-03-02T18:30:32.7650 (3624:0223DEB0) ERROR AT jrd8_execute

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

335544665 : violation of PRIMARY or UNIQUE KEY constraint "INTEG_6" on table "T"


2014-03-02T18:30:32.7650 (3624:0223DEB0) EXECUTE_STATEMENT_START

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)



2014-03-02T18:30:32.7650 (3624:0223DEB0) FAILED EXECUTE_STATEMENT_FINISH

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)

0 records fetched

      0 ms, 27 fetch(es), 5 mark(s)



Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge

***************************************************************************************************************

RDB$INDICES                                       1                                                            

RDB$RELATION_CONSTRAINTS                          1                                                            

T                                                                     1                   1                    



2014-03-02T18:30:32.7650 (3624:0223DEB0) ERROR AT jrd8_execute

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

335544665 : violation of PRIMARY or UNIQUE KEY constraint "INTEG_6" on table "T"


2014-03-02T18:30:32.7650 (3624:0223DEB0) EXECUTE_STATEMENT_START

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)



2014-03-02T18:30:32.7650 (3624:0223DEB0) FAILED EXECUTE_STATEMENT_FINISH

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)

0 records fetched

      0 ms, 27 fetch(es), 5 mark(s)



Table                             Natural     Index    Update    Insert    Delete   Backout     Purge   Expunge

***************************************************************************************************************

RDB$INDICES                                       1                                                            

RDB$RELATION_CONSTRAINTS                          1                                                            

T                                                                     1                   1                    



2014-03-02T18:30:32.7650 (3624:0223DEB0) ERROR AT jrd8_execute

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

335544665 : violation of PRIMARY or UNIQUE KEY constraint "INTEG_6" on table "T"


2014-03-02T18:30:32.7650 (3624:0223DEB0) EXECUTE_STATEMENT_START

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)



Statement 38:

-------------------------------------------------------------------------------

insert into t(id) values(1)



2014-03-02T18:30:32.7650 (3624:0223DEB0) FAILED EXECUTE_STATEMENT_FINISH

        C:\FBTESTING\MISCELAN\T0.FDB (ATT_14, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)

        C:\1INSTALL\FIREBIRD\FB25SNAP\bin\isql.exe:2336

                (TRA_206, CONCURRENCY | WAIT | READ_WRITE)
3) мониторинг подтверждает, что введенный запрос до сих пор считается активным:
mon$statements
Код: 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.
C:\1INSTALL\FIREBIRD\FB25SNAP>isql localhost/3253:C:\FBTESTING\MISCELAN\T0.FDB -n
Database:  localhost/3253:C:\FBTESTING\MISCELAN\T0.FDB
SQL> set list on; commit; select * from mon$statements where mon$attachment_id<>current_connection;

MON$STATEMENT_ID                38
MON$ATTACHMENT_ID               14
MON$TRANSACTION_ID              <null>
MON$STATE                       0
MON$TIMESTAMP                   <null>
MON$SQL_TEXT                    0:4
insert into t(id) values(1)
MON$STAT_ID                     7

MON$STATEMENT_ID                35
MON$ATTACHMENT_ID               14
MON$TRANSACTION_ID              206
MON$STATE                       1
MON$TIMESTAMP                   2014-03-02 18:10:36.6400
MON$SQL_TEXT                    0:6
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='insert into t(id) values(1)';
  while(1=1) do
    begin
      select 1 from rdb$database into i;
      execute statement stt;
      when any do begin end
    end
end
MON$STAT_ID                     8
ТСР-параметры в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:
Код: plaintext
1.
KeepAliveTime = 15000 (и это ведь  милли секунды, так ?)
KeepAliveInterval = 1000

Так работают эти параметры в ФБ 2.5 или нет ? Почему ФБ игнорирует факт срубания коннекта, хотя коннект выполняет вообще-то обращение к базе, т.е. это не какой-то вырожденный случай типа while (1=1) do i=1.

PS. Параметр KEEPALIVE_PROBES почему-то в регистре ОТСУТСТВУЕТ (хз, может это "по дефолту" так ? :)). Какое значение тогда будет использовано в формуле KEEPALIVE_TIME+ ( KEEPALIVE_PROBES+1)* KEEPALIVE_INTERVAL, приведенной в статье с сайта IBPhoenix ?
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576425
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПараметр KEEPALIVE_PROBES почему-то в регистре ОТСУТСТВУЕТ (хз, может это "по дефолту" так ? :)). Какое значение тогда будет использовано в формуле KEEPALIVE_TIME+ ( KEEPALIVE_PROBES+1)* KEEPALIVE_INTERVAL, приведенной в статье с сайта IBPhoenix ?Этот параметр в виндузе зовётся TcpMaxDataRetransmissions, его дефолт = 5.
Я поставил его = 3, перегрузил комп. Коннект делал что по localhost, что с указанием "нормального" адреса 192.168.0.100 - бестолку.
Попробовал поставить в Фб-конфиге также DummyPacketInterval = 20 - пофиг, результат одинаковый.
Но! Если дать скрипту работать менее 15 сек, то его срубание таки отслеживается сервером. А вот если 45 сек - уже нет.
Загадко как бэ... %-/
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576464
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WI-T3.0.0.30855 (SuperClassic): то же самое, ФБ не реагирует на обрубание аттача, если оно произошло позже, чем через ~30 сек с начала выполнения скрипта.

Однако, в mon$statements теперь видны *две* записи, причём активным считается только execute block, а сам инсерт, пытающийся вломить дубликат записи, имеет MON$STATE = 0:
Код: 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.
SQL> commit; select row_number()over(), s.* from mon$statements s where mon$attachment_id<>current_connection;

ROW_NUMBER                      1
MON$STATEMENT_ID                18
 MON$ATTACHMENT_ID               3 
MON$TRANSACTION_ID              11
MON$STATE                       1
MON$TIMESTAMP                   2014-03-03 00:37:01.0780
MON$SQL_TEXT                    0:2
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='insert into t(id) values(1)';
  while(1=1) do
    begin
      select 1 from rdb$database into i;
      execute statement stt;
      when any do begin end
    end
end
MON$STAT_ID                     7

ROW_NUMBER                      2
MON$STATEMENT_ID                24
 MON$ATTACHMENT_ID               3 
MON$TRANSACTION_ID              <null>
MON$STATE                       0
MON$TIMESTAMP                   <null>
MON$SQL_TEXT                    0:3
insert into t(id) values(1)
MON$STAT_ID                     8

К ночи становится всё интереснее и чудесатее...
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576466
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LI-T3.0.0.30889: проблемы нет, ФБ просёк отруб tcp-коннекта практически мгновенно.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576593
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай не будем путаться в терминах. Никакого отстрела коннекта тут нет. Соответственно, TCP-настройки и dummy-интервал тут вообще никаким боком. Ctrl-C это отмена выполнения текущего запроса.

а проблема в том, что в ситуации, когда прерывается EXEUTE STATEMENT, ошибка проглатывается WHEN-блоком. В обычных же ситуациях этого не происходит (и не должно).
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576633
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrкогда прерывается EXEUTE STATEMENT, ошибка проглатывается WHEN-блоком. В обычных же ситуациях этого не происходит (и не должно).почему отсутствие реакции на срубание происходит только при условии, что он отработает не менее 30 сек, и только на виндузе ?
PS. Проверил на варианте, когда перехватывается более конкретный sqlcode / gdscode
Код: 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.
set term ^;
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='insert into t(id) values(1)';
  while(1=1) do
    begin
      select 1 from rdb$database into i;
      execute statement stt;
      when sqlcode -803 do begin end
    end
end^
set term ;^
commit;

-- или так:
set term ^;
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='insert into t(id) values(1)';
  while(1=1) do
    begin
      select 1 from rdb$database into i;
      execute statement stt;
      when gdscode unique_key_violation do begin end
    end
end^
set term ;^
commit;

- да, так и есть: прерывание EB будет в этом случае отслеживаться сразу.

PS2. Интересная картина видна в ProcessExplorer'e через 40 сек после старта - см аттач.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576665
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидпочему отсутствие реакции на срубание происходит только при условии, что он отработает не менее 30 сек, и только на виндузе ?
понятия не имею. Прерывание будет работать, если наткнется на селект и не будет, если на exec stmt. Почему так карта ложится в разрезе до/после 30 сек - ХЗ.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576668
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, на 3.0.0.30882 проблема точно также присутствует
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576685
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrкстати, на 3.0.0.30882 проблема точно также присутствуетэто ты на LINUX'e проверял ?
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576690
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да. Измени свой скрипт, чтобы внутри ES был EB с бесконечным циклом - и все, delete from mon$statements (либо ctrl-c) нифига не останавливает скрипт.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576731
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrИзмени свой скрипт, чтобы внутри ES был EB с бесконечным цикломух ты!... до такого я еще не додумкивал... :-)))
Однако, такой вот скрипт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set term ^;
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='execute block as declare k int; begin while (1=1) do select count(*) from rdb$types,rdb$types into k; end';
  execute statement stt;
end^
set term ;^
commit;


- срубается "на ура" через delete from mon$attachments.

--------------

Кстати, очередная загадко.
Когда такой скрипт выполняется, то:
Код: plaintext
SQL> set list on; commit; select * from mon$ statements  where mon$attachment_id<>current_connection;
- выдаёт две строки и в обеих mon$state = 1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
MON$STATEMENT_ID                132
MON$ATTACHMENT_ID               51
MON$TRANSACTION_ID              249
MON$STATE                       1
MON$TIMESTAMP                   2014-03-03 12:51:55.8900
MON$SQL_TEXT                    0:4
execute block as declare k int; begin while (1=1) do select count(*) from rdb$types,rdb$types into k; end
MON$STAT_ID                     7

MON$STATEMENT_ID                124
MON$ATTACHMENT_ID               51
MON$TRANSACTION_ID              249
MON$STATE                       1
MON$TIMESTAMP                   2014-03-03 12:51:55.8900
MON$SQL_TEXT                    0:6
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='execute block as declare k int; begin while (1=1) do select count(*) from rdb$types,rdb$types into k; end';
  execute statement stt;
end
MON$STAT_ID                     8


Ну так вот: если выполнить теперь
Код: plaintext
1.
2.
SQL> commit; delete from mon$statements where mon$attachment_id<>current_connection;
SQL> commit; select * from mon$statements where mon$attachment_id<>current_connection;
- то:
1) в mon$statements по-прежнему видим эти же два активных стейтмента:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
MON$STATEMENT_ID                132
MON$ATTACHMENT_ID               51
MON$TRANSACTION_ID              249
MON$STATE                       1
MON$TIMESTAMP                   2014-03-03 12:51:55.8900
MON$SQL_TEXT                    0:4
execute block as declare k int; begin while (1=1) do select count(*) from rdb$types,rdb$types into k; end
MON$STAT_ID                     7

MON$STATEMENT_ID                124
MON$ATTACHMENT_ID               51
MON$TRANSACTION_ID              249
MON$STATE                       1
MON$TIMESTAMP                   2014-03-03 12:51:55.8900
MON$SQL_TEXT                    0:6
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='execute block as declare k int; begin while (1=1) do select count(*) from rdb$types,rdb$types into k; end';
  execute statement stt;
end
MON$STAT_ID                     8
Повторный ввод этой пары команд ничего не меняет: mon$statements по-прежнему показывает, что якобы имеются два активных стейтмента.

2) загрузка ЦПУ при вводе delete from mon$stt сразу же падает в ноль, т.е. вроде бы выполнение действительно прекращается.

PS. Выполнение вышеприведенного скрипта в ProcessExplorer'e уже НЕ содержало в графике загрузки ЦПУ "красноты", как ранее - см. аттач. Терзает смутное сомнение, что наличие или отсутствие реакции ФБ на срубание как-то связано именно с этой "краснотой"...
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576741
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидесли выполнить теперь
Код: plaintext
1.
2.
SQL> commit; delete from mon$statements where mon$attachment_id<>current_connection;
SQL> commit; select * from mon$statements where mon$attachment_id<>current_connection;
- то:
1) в mon$statements по-прежнему видим эти же два активных стейтмента:Забыл добавить: хотя ЦПУ "сбросился" в ноль и по всем признакам видно, что ФБ ничего не делает, коннект НЕ завершается, т.е. он где-то "взвис" внутри бесконечного цикла в ES ( while (1=1) ), но и не делает там ничего!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set term ^;
execute block as
declare stt varchar(255);
declare i int;
begin
  stt='execute block as declare k int; begin  while (1=1)  do select count(*) from rdb$types,rdb$types into k; end';
  execute statement stt;
end^
set term ;^
commit;
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576758
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrда. Измени свой скрипт, чтобы внутри ES был EB с бесконечным циклом - и все, delete from mon$statements (либо ctrl-c) нифига не останавливает скрипт.delete from mon$ATTACHMENTS имеет тот же эффект: загрузка ЦПУ сразу падает в ноль, но скрипт НЕ возвращает управление в ось. И аттач от него по-прежнему виден в mon$attachments, да и mon$statements такой же.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576775
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты вообще читаешь, что тебе пишут? Какой нафиг delete from mon$attachments , если разговор про mon$statements ? Или ты опять с одной темы на другую перескакиваешь? Куда ты из скрипта выкинул WHEN-блок, прячущий ошибку? В болото, ей богу.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576805
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

приведи свой скрипт, плз.
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576808
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576815
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, с when-блоком понятно всё: это он, гад, виноват.
Что тогда с этим - оно из другой уже оперы ?
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576832
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

"это" я в тройке не могу воспроизвести, у меня управление возвращается в консоль
...
Рейтинг: 0 / 0
нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
    #38576845
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr"это" я в тройке не могу воспроизвести, у меня управление возвращается в консольда, это только в 2.5 такое (у мну WI-V2.5.3.26726).
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / нет реакции ФБ на срубание коннекта, выполняющего в бескон. цикле ошибочный statement
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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