Show firebird.log [FOUND messages for interval when this test was running]
Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
    WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
    ============ ======= ======= ======================================== ========== ======== ========
  - TMP_ECP_FREQ       1       1 NEW                                               0        0 python
  + TMP_ECP_FREQ       1      1NEW                                               0       0python
  - TMP_ECP_FREQ       2       2 NEW                                               0        0 python
  + TMP_ECP_FREQ       2      2NEW                                               0       0python
  - TMP_ECP_FREQ       3       3 NEW                                               0        0 python
  + TMP_ECP_FREQ       3      3NEW                                               0       0python
  - TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
  + TMP_ECP_FREQ       4      4NEW                                               0       0firebird
  - TMP_ECP_FREQ       4       5 RUN DML                                           0        0 firebird
  + TMP_ECP_FREQ       4      5RUN DML                                           0       0firebird
  - TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_FREQ       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_FREQ       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_FREQ       1       8 BYE                                               0        1 python
  + TMP_ECP_FREQ       1      8BYE                                               0       1python
  - TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
  + TMP_ECP_FREQ       5      9NEW                                               0       0firebird
  - TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
  + TMP_ECP_FREQ       5     10RUN DML                                           0       0firebird
  - TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_FREQ       5     11MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_FREQ       5     12TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_FREQ       4      13 BYE                                               0        0 firebird
  + TMP_ECP_FREQ       4     13BYE                                               0       0firebird
  - TMP_ECP_FREQ       2      14 BYE                                               0        1 python
  + TMP_ECP_FREQ       2     14BYE                                               0       1python
  - TMP_ECP_FREQ       6      15 NEW                                               0        0 firebird
  + TMP_ECP_FREQ       6     15NEW                                               0       0firebird
  - TMP_ECP_FREQ       6      16 RUN DML                                           0        0 firebird
  + TMP_ECP_FREQ       6     16RUN DML                                           0       0firebird
  - TMP_ECP_FREQ       6      17 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_FREQ       6     17MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_FREQ       6      18 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_FREQ       6     18TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_FREQ       6      19 BYE                                               0        0 firebird
  + TMP_ECP_FREQ       6     19BYE                                               0       0firebird
  - TMP_ECP_FREQ       3      20 BYE                                               0        0 python
  + TMP_ECP_FREQ       3     20BYE                                               0       0python
  - TMP_ECP_FREQ       5      21 BYE                                               0        0 firebird
  + TMP_ECP_FREQ       5     21BYE                                               0       0firebird
  - TMP_ECP_RARE       1       1 NEW                                               0        0 python
  + TMP_ECP_RARE       1      1NEW                                               0       0python
  - TMP_ECP_RARE       2       2 NEW                                               0        0 python
  + TMP_ECP_RARE       2      2NEW                                               0       0python
  - TMP_ECP_RARE       3       3 NEW                                               0        0 python
  + TMP_ECP_RARE       3      3NEW                                               0       0python
  - TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
  + TMP_ECP_RARE       4      4NEW                                               0       0firebird
  - TMP_ECP_RARE       4       5 RUN DML                                           0        0 firebird
  + TMP_ECP_RARE       4      5RUN DML                                           0       0firebird
  - TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_RARE       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_RARE       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
  + TMP_ECP_RARE       4      8BYE                                               0       0firebird
  - TMP_ECP_RARE       1       9 BYE                                               0        0 python
  + TMP_ECP_RARE       1      9BYE                                               0       0python
  - TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
  + TMP_ECP_RARE       5     10NEW                                               0       0firebird
  - TMP_ECP_RARE       5      11 RUN DML                                           0        0 firebird
  + TMP_ECP_RARE       5     11RUN DML                                           0       0firebird
  - TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_RARE       5     12MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_RARE       5     13TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
  + TMP_ECP_RARE       5     14BYE                                               0       0firebird
  - TMP_ECP_RARE       2      15 BYE                                               0        0 python
  + TMP_ECP_RARE       2     15BYE                                               0       0python
  - TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
  + TMP_ECP_RARE       6     16NEW                                               0       0firebird
  - TMP_ECP_RARE       6      17 RUN DML                                           0        0 firebird
  + TMP_ECP_RARE       6     17RUN DML                                           0       0firebird
  - TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_RARE       6     18MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
  - TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_RARE       6     19TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
  - TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
  + TMP_ECP_RARE       6     20BYE                                               0       0firebird
  - TMP_ECP_RARE       3      21 BYE                                               0        0 python
  + TMP_ECP_RARE       3     21BYE                                               0       0python

LOG DETAILS:

2025-07-01 05:56:32.876
2025-07-01 05:56:32.882 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-01 05:56:32.888 tmp_user_freq = <firebird.qa.plugin.User object at [hex]>
2025-07-01 05:56:32.894 tmp_user_rare = <firebird.qa.plugin.User object at [hex]>
2025-07-01 05:56:32.901 tmp_cleaner_role = <firebird.qa.plugin.Role object at [hex]>
2025-07-01 05:56:32.909 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-01 05:56:32.915
2025-07-01 05:56:32.921 @pytest.mark.es_eds
2025-07-01 05:56:32.927 @pytest.mark.version('>=4.0')
2025-07-01 05:56:32.933 def test_1(act: Action, tmp_user_freq: User, tmp_user_rare: User, tmp_cleaner_role: Role, capsys):
2025-07-01 05:56:32.940
2025-07-01 05:56:32.947 # [doc] state of external connections pool could be queried using ...:
2025-07-01 05:56:32.954 # - EXT_CONN_POOL_SIZE			pool size
2025-07-01 05:56:32.963 # - EXT_CONN_POOL_LIFETIME		idle connection lifetime, in seconds
2025-07-01 05:56:32.973 ECP_SIZE, ECP_LIFE = -1, -1
2025-07-01 05:56:32.982 with act.db.connect() as con:
2025-07-01 05:56:32.989 with con.cursor() as cur:
2025-07-01 05:56:33.001 cur.execute("select cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_SIZE') as int), cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_LIFETIME') as int) from rdb$database")
2025-07-01 05:56:33.009 ECP_SIZE, ECP_LIFE = cur.fetchone()
2025-07-01 05:56:33.017 assert ECP_SIZE > 1;
2025-07-01 05:56:33.023
2025-07-01 05:56:33.032 SERVER_MODE = act.get_server_architecture()
2025-07-01 05:56:33.041 sql_init = f'''
2025-07-01 05:56:33.051 set bail on;
2025-07-01 05:56:33.057 set list on;
2025-07-01 05:56:33.063 set wng off;
2025-07-01 05:56:33.069 alter database set linger to {ECP_LIFE+ADD_DELAY_FOR_RARE+2};
2025-07-01 05:56:33.075 alter role {tmp_cleaner_role.name} set system privileges to MODIFY_EXT_CONN_POOL;
2025-07-01 05:56:33.081 commit;
2025-07-01 05:56:33.086
2025-07-01 05:56:33.092 grant default {tmp_cleaner_role.name} to user {tmp_user_freq.name};
2025-07-01 05:56:33.098 grant default {tmp_cleaner_role.name} to user {tmp_user_rare.name};
2025-07-01 05:56:33.108 commit;
2025-07-01 05:56:33.118
2025-07-01 05:56:33.125 set term ^;
2025-07-01 05:56:33.139 create function fn_get_bin_name() returns varchar(255) as
2025-07-01 05:56:33.149 declare v_bin_name varchar(255);
2025-07-01 05:56:33.156 begin
2025-07-01 05:56:33.165 v_bin_name = rdb$get_context('SYSTEM','CLIENT_PROCESS');
2025-07-01 05:56:33.176
2025-07-01 05:56:33.187 -- ::: NOTE ::: Python binary can have numeric suffixes on Linux:
2025-07-01 05:56:33.199 if (v_bin_name similar to '%((\\python([[:DIGIT:]]+%)?.exe)|(/python([[:DIGIT:]]+%)?))') then
2025-07-01 05:56:33.208 return 'python'; -- '/usr/bin/python3.9' ==> 'python'
2025-07-01 05:56:33.220
2025-07-01 05:56:33.231 if (v_bin_name similar to '%((\\firebird([[:DIGIT:]]+%)?.exe)|(/python([[:DIGIT:]]+%)?))') then
2025-07-01 05:56:33.239 return 'firebird';
2025-07-01 05:56:33.248
2025-07-01 05:56:33.255 -- Extracts file name from full path of client binary process.
2025-07-01 05:56:33.262 -- For Windows: removes extension, in order returning name be the same as on Linux.
2025-07-01 05:56:33.269 -- 'c:\\program files\\firebird30\\firebird.exe' --> 'firebird'
2025-07-01 05:56:33.275 -- '/opt/firebird/bin/firebird'                  --> 'firebird'
2025-07-01 05:56:33.283 -- ::: NOTE ::: backslash must be duplicated when using this DDL in any Python
2025-07-01 05:56:33.294 -- environment otherwise it will be swallowed
2025-07-01 05:56:33.304 return
2025-07-01 05:56:33.312 (
2025-07-01 05:56:33.320 select
2025-07-01 05:56:33.327 --p
2025-07-01 05:56:33.332 --,r
2025-07-01 05:56:33.337 --,ext_pos
2025-07-01 05:56:33.343 --,n
2025-07-01 05:56:33.348 --,x
2025-07-01 05:56:33.353 reverse(left(x,n)) as clnt_bin
2025-07-01 05:56:33.359 -- reverse(x)  as clnt_bin
2025-07-01 05:56:33.367 from
2025-07-01 05:56:33.377 (
2025-07-01 05:56:33.385 select
2025-07-01 05:56:33.396 p
2025-07-01 05:56:33.408 ,reverse(p) r
2025-07-01 05:56:33.420 ,ext_pos
2025-07-01 05:56:33.431 ,substring(reverse(p) from iif( is_win, ext_pos+1, 1) ) x
2025-07-01 05:56:33.441 ,position( '|' in replace(replace(reverse( p ),'\\','|'),'/','|') ) - iif(is_win, ext_pos+1, 1) as n
2025-07-01 05:56:33.449 from (
2025-07-01 05:56:33.456 select
2025-07-01 05:56:33.462 trim(p) as p
2025-07-01 05:56:33.467 ,position( '\\' in p ) > 0 as is_win
2025-07-01 05:56:33.471 ,iif( position( '\\' in p ) > 0, position('.' in reverse(trim(p))), 0) as ext_pos
2025-07-01 05:56:33.476 from (
2025-07-01 05:56:33.481 select rdb$get_context('SYSTEM','CLIENT_PROCESS') as p from rdb$database
2025-07-01 05:56:33.485 )
2025-07-01 05:56:33.490 )
2025-07-01 05:56:33.496 )
2025-07-01 05:56:33.503 );
2025-07-01 05:56:33.514
2025-07-01 05:56:33.524 end
2025-07-01 05:56:33.535 ^
2025-07-01 05:56:33.545 set term ;^
2025-07-01 05:56:33.557
2025-07-01 05:56:33.568
2025-07-01 05:56:33.577 create table ecp_audit(
2025-07-01 05:56:33.583 id smallint generated by default as identity constraint pk_audit primary key
2025-07-01 05:56:33.590 ,srvmode varchar(12) -- 'Super' / 'SuperClassic' / 'Classic'
2025-07-01 05:56:33.596 ,who varchar(12) default current_user -- 'TMP_ECP_FREQ' / 'TMP_ECP_RARE' / 'SYSDBA'
2025-07-01 05:56:33.602 ,evt varchar(40) not null
2025-07-01 05:56:33.608 ,att smallint default current_connection
2025-07-01 05:56:33.616 ,trn smallint default current_transaction
2025-07-01 05:56:33.629 ,dts timestamp default 'now'
2025-07-01 05:56:33.642 ,pool_active_count smallint
2025-07-01 05:56:33.652 ,pool_idle_count smallint
2025-07-01 05:56:33.660 ,clnt_bin varchar(8)
2025-07-01 05:56:33.668 ,aux_info varchar(100)
2025-07-01 05:56:33.674 );
2025-07-01 05:56:33.684
2025-07-01 05:56:33.695 create view v_ecp_audit as
2025-07-01 05:56:33.703 select
2025-07-01 05:56:33.710 who
2025-07-01 05:56:33.721 ,att
2025-07-01 05:56:33.731 ,id
2025-07-01 05:56:33.740 ,evt
2025-07-01 05:56:33.750 ,active_cnt
2025-07-01 05:56:33.760 ,idle_cnt
2025-07-01 05:56:33.767 ,clnt_bin
2025-07-01 05:56:33.775 from (
2025-07-01 05:56:33.785 select
2025-07-01 05:56:33.793 srvmode
2025-07-01 05:56:33.801 ,who
2025-07-01 05:56:33.809 ,cast(dense_rank()over(partition by who order by att) as smallint) as att
2025-07-01 05:56:33.817 ,cast(dense_rank()over(partition by who order by id) as smallint) as id
2025-07-01 05:56:33.825 ,evt
2025-07-01 05:56:33.831 ,trn
2025-07-01 05:56:33.839 ,pool_active_count as active_cnt
2025-07-01 05:56:33.846 ,pool_idle_count as idle_cnt
2025-07-01 05:56:33.853 ,clnt_bin
2025-07-01 05:56:33.860 from ecp_audit
2025-07-01 05:56:33.867 )
2025-07-01 05:56:33.874 order by who, id
2025-07-01 05:56:33.883 ;
2025-07-01 05:56:33.889
2025-07-01 05:56:33.894
2025-07-01 05:56:33.900 grant select,insert on ecp_audit to public;
2025-07-01 05:56:33.906 grant select on v_ecp_audit to public;
2025-07-01 05:56:33.912 commit;
2025-07-01 05:56:33.923
2025-07-01 05:56:33.929 set term ^;
2025-07-01 05:56:33.935 create or alter trigger trg_aud_bi for ecp_audit active before insert sql security definer as
2025-07-01 05:56:33.941 declare v_srvmode varchar(30);
2025-07-01 05:56:33.947 declare p int;
2025-07-01 05:56:33.954 begin
2025-07-01 05:56:33.961 new.srvmode = '{SERVER_MODE}';
2025-07-01 05:56:33.971 new.pool_active_count = rdb$get_context('SYSTEM','EXT_CONN_POOL_ACTIVE_COUNT');
2025-07-01 05:56:33.979 new.pool_idle_count = rdb$get_context('SYSTEM','EXT_CONN_POOL_IDLE_COUNT');
2025-07-01 05:56:33.985 new.clnt_bin = right(fn_get_bin_name(), 8);
2025-07-01 05:56:33.990 -- right(rdb$get_context('SYSTEM','CLIENT_PROCESS'),15);
2025-07-01 05:56:33.996 end
2025-07-01 05:56:34.002 ^
2025-07-01 05:56:34.016
2025-07-01 05:56:34.024 create or alter trigger trg_connect inactive on connect sql security definer as
2025-07-01 05:56:34.031 declare p smallint;
2025-07-01 05:56:34.036 begin
2025-07-01 05:56:34.042 if (current_user <> '{act.db.user}') then
2025-07-01 05:56:34.047 begin
2025-07-01 05:56:34.051
2025-07-01 05:56:34.057 insert into ecp_audit(
2025-07-01 05:56:34.063 evt
2025-07-01 05:56:34.069 ) values (
2025-07-01 05:56:34.076 iif(resetting, 'TAKE FROM POOL: IDLE -> ACTIVE', 'NEW')
2025-07-01 05:56:34.088 );
2025-07-01 05:56:34.099 end
2025-07-01 05:56:34.107 end
2025-07-01 05:56:34.114 ^
2025-07-01 05:56:34.119
2025-07-01 05:56:34.125 create or alter trigger trg_disconnect inactive on disconnect sql security definer as
2025-07-01 05:56:34.134 begin
2025-07-01 05:56:34.141 if (current_user <> '{act.db.user}') then
2025-07-01 05:56:34.147 begin
2025-07-01 05:56:34.160 insert into ecp_audit(
2025-07-01 05:56:34.171 evt
2025-07-01 05:56:34.181 ) values (
2025-07-01 05:56:34.189 iif(resetting, 'MOVE INTO POOL: ACTIVE -> IDLE', 'BYE')
2025-07-01 05:56:34.195 );
2025-07-01 05:56:34.202 end
2025-07-01 05:56:34.209 end
2025-07-01 05:56:34.216 ^
2025-07-01 05:56:34.224 set term ;^
2025-07-01 05:56:34.231 commit;
2025-07-01 05:56:34.239 alter trigger trg_connect active;
2025-07-01 05:56:34.250 alter trigger trg_disconnect active;
2025-07-01 05:56:34.258 commit;
2025-07-01 05:56:34.265 '''
2025-07-01 05:56:34.271
2025-07-01 05:56:34.278 act.expected_stdout = ''
2025-07-01 05:56:34.286 act.isql(switches = ['-q'], input = sql_init, combine_output = True, io_enc = locale.getpreferredencoding())
2025-07-01 05:56:34.293 assert act.clean_stdout == act.clean_expected_stdout
2025-07-01 05:56:34.305 act.reset()
2025-07-01 05:56:34.313
2025-07-01 05:56:34.320 #-----------------------------------------------------
2025-07-01 05:56:34.335
2025-07-01 05:56:34.342 sql_for_run = '''
2025-07-01 05:56:34.350 execute block as
2025-07-01 05:56:34.358 declare c int;
2025-07-01 05:56:34.365 begin
2025-07-01 05:56:34.371 execute statement ( q'{ insert into ecp_audit( evt ) values( 'RUN DML') }' )
2025-07-01 05:56:34.376 on external
2025-07-01 05:56:34.381 'localhost:' || rdb$get_context('SYSTEM','DB_NAME')
2025-07-01 05:56:34.387 with autonomous transaction -- <<< !!! THIS IS MANDATORY IF WE WANT TO USE EXT CONN POOL !!! <<<
2025-07-01 05:56:34.393 as user current_user password '123'
2025-07-01 05:56:34.398 ;
2025-07-01 05:56:34.403 end
2025-07-01 05:56:34.410 '''
2025-07-01 05:56:34.416
2025-07-01 05:56:34.423 for usr in (tmp_user_freq, tmp_user_rare):
2025-07-01 05:56:34.430 conn_list = []
2025-07-01 05:56:34.437 for i in range(0, ITER_LOOP_CNT):
2025-07-01 05:56:34.446 conn_list.append( act.db.connect(user = usr.name, password = usr.password) )
2025-07-01 05:56:34.456
2025-07-01 05:56:34.465 for i,c in enumerate(conn_list):
2025-07-01 05:56:34.473
2025-07-01 05:56:34.480 # ::: NOTE :::
2025-07-01 05:56:34.491 # ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2025-07-01 05:56:34.501 # On every iteration DIFFERENT connection is used for run ES/EDS,
2025-07-01 05:56:34.511 # but all of them use the same user/password/role, so apropriate
2025-07-01 05:56:34.522 # item in the ExtConnPool can be used to run this statement.
2025-07-01 05:56:34.530 # But this will be so only for user = 'FREQ' because he does such
2025-07-01 05:56:34.537 # actions 'frequently': each (<ECP_LIFE> - 2) seconds.
2025-07-01 05:56:34.542 # For user 'RARE' new attachment will be created every time when
2025-07-01 05:56:34.547 # he runs ES/EDS because he does that 'rarely' and idle connection
2025-07-01 05:56:34.554 # (from his previous iteration) is removed from ExtConnPool due to
2025-07-01 05:56:34.565 # expiration of ExtConnPoolLifeTime:
2025-07-01 05:56:34.575 # ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2025-07-01 05:56:34.583 try:
2025-07-01 05:56:34.591 #c.execute_immediate( sql_for_run )
2025-07-01 05:56:34.597 with c.cursor() as cur:
2025-07-01 05:56:34.603 cur.execute(sql_for_run)
2025-07-01 05:56:34.609
2025-07-01 05:56:34.617 if i < len(conn_list)-1:
2025-07-01 05:56:34.624 time.sleep( 1 if usr == tmp_user_freq else ECP_LIFE + ADD_DELAY_FOR_RARE )
2025-07-01 05:56:34.631 else:
2025-07-01 05:56:34.639 c.execute_immediate( 'ALTER EXTERNAL CONNECTIONS POOL CLEAR ALL' )
2025-07-01 05:56:34.647 finally:
2025-07-01 05:56:34.659 if c:
2025-07-01 05:56:34.668 c.close()
2025-07-01 05:56:34.675
2025-07-01 05:56:34.681 if SERVER_MODE == 'Classic':
2025-07-01 05:56:34.686 act.expected_stdout = """
2025-07-01 05:56:34.691 WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
2025-07-01 05:56:34.697 ============ ======= ======= ======================================== ========== ======== ========
2025-07-01 05:56:34.707 TMP_ECP_FREQ       1       1 NEW                                               0        0 python
2025-07-01 05:56:34.721 TMP_ECP_FREQ       2       2 NEW                                               0        0 python
2025-07-01 05:56:34.731 TMP_ECP_FREQ       3       3 NEW                                               0        0 python
2025-07-01 05:56:34.740 TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:34.747 TMP_ECP_FREQ       4       5 RUN DML                                           0        0 firebird
2025-07-01 05:56:34.754 TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:34.764 TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:34.775 TMP_ECP_FREQ       1       8 BYE                                               0        1 python
2025-07-01 05:56:34.783 TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
2025-07-01 05:56:34.791 TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
2025-07-01 05:56:34.802 TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:34.812 TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:34.821 TMP_ECP_FREQ       4      13 BYE                                               0        0 firebird
2025-07-01 05:56:34.831 TMP_ECP_FREQ       2      14 BYE                                               0        1 python
2025-07-01 05:56:34.842 TMP_ECP_FREQ       6      15 NEW                                               0        0 firebird
2025-07-01 05:56:34.851 TMP_ECP_FREQ       6      16 RUN DML                                           0        0 firebird
2025-07-01 05:56:34.858 TMP_ECP_FREQ       6      17 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:34.865 TMP_ECP_FREQ       6      18 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:34.871 TMP_ECP_FREQ       6      19 BYE                                               0        0 firebird
2025-07-01 05:56:34.878 TMP_ECP_FREQ       3      20 BYE                                               0        0 python
2025-07-01 05:56:34.885 TMP_ECP_FREQ       5      21 BYE                                               0        0 firebird
2025-07-01 05:56:34.891 TMP_ECP_RARE       1       1 NEW                                               0        0 python
2025-07-01 05:56:34.904 TMP_ECP_RARE       2       2 NEW                                               0        0 python
2025-07-01 05:56:34.915 TMP_ECP_RARE       3       3 NEW                                               0        0 python
2025-07-01 05:56:34.923 TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:34.931 TMP_ECP_RARE       4       5 RUN DML                                           0        0 firebird
2025-07-01 05:56:34.942 TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:34.954 TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:34.965 TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
2025-07-01 05:56:34.975 TMP_ECP_RARE       1       9 BYE                                               0        0 python
2025-07-01 05:56:34.983 TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
2025-07-01 05:56:34.998 TMP_ECP_RARE       5      11 RUN DML                                           0        0 firebird
2025-07-01 05:56:35.010 TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:35.022 TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:35.036 TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
2025-07-01 05:56:35.044 TMP_ECP_RARE       2      15 BYE                                               0        0 python
2025-07-01 05:56:35.050 TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
2025-07-01 05:56:35.056 TMP_ECP_RARE       6      17 RUN DML                                           0        0 firebird
2025-07-01 05:56:35.061 TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:35.065 TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:35.070 TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
2025-07-01 05:56:35.075 TMP_ECP_RARE       3      21 BYE                                               0        0 python
2025-07-01 05:56:35.086 """
2025-07-01 05:56:35.096 else:
2025-07-01 05:56:35.103 act.expected_stdout = """
2025-07-01 05:56:35.110 WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
2025-07-01 05:56:35.117 ============ ======= ======= ======================================== ========== ======== ========
2025-07-01 05:56:35.123 TMP_ECP_FREQ       1       1 NEW                                               0        0 python
2025-07-01 05:56:35.128 TMP_ECP_FREQ       2       2 NEW                                               0        0 python
2025-07-01 05:56:35.135 TMP_ECP_FREQ       3       3 NEW                                               0        0 python
2025-07-01 05:56:35.143 TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:35.154 TMP_ECP_FREQ       4       5 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.167 TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.176 TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.184 TMP_ECP_FREQ       1       8 BYE                                               0        1 python
2025-07-01 05:56:35.189 TMP_ECP_FREQ       4       9 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.196 TMP_ECP_FREQ       4      10 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.204 TMP_ECP_FREQ       4      11 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.211 TMP_ECP_FREQ       2      12 BYE                                               0        1 python
2025-07-01 05:56:35.218 TMP_ECP_FREQ       4      13 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.225 TMP_ECP_FREQ       4      14 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.231 TMP_ECP_FREQ       4      15 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.236 TMP_ECP_FREQ       4      16 BYE                                               0        0 firebird
2025-07-01 05:56:35.241 TMP_ECP_FREQ       3      17 BYE                                               0        0 python
2025-07-01 05:56:35.256 TMP_ECP_RARE       1       1 NEW                                               0        0 python
2025-07-01 05:56:35.266 TMP_ECP_RARE       2       2 NEW                                               0        0 python
2025-07-01 05:56:35.275 TMP_ECP_RARE       3       3 NEW                                               0        0 python
2025-07-01 05:56:35.281 TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:35.286 TMP_ECP_RARE       4       5 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.291 TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.296 TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.301 TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
2025-07-01 05:56:35.307 TMP_ECP_RARE       1       9 BYE                                               0        0 python
2025-07-01 05:56:35.313 TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
2025-07-01 05:56:35.318 TMP_ECP_RARE       5      11 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.323 TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.329 TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.337 TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
2025-07-01 05:56:35.348 TMP_ECP_RARE       2      15 BYE                                               0        0 python
2025-07-01 05:56:35.356 TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
2025-07-01 05:56:35.363 TMP_ECP_RARE       6      17 RUN DML                                           1        0 firebird
2025-07-01 05:56:35.370 TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
2025-07-01 05:56:35.380 TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
2025-07-01 05:56:35.391 TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
2025-07-01 05:56:35.402 TMP_ECP_RARE       3      21 BYE                                               0        0 python
2025-07-01 05:56:35.412 """
2025-07-01 05:56:35.423 act.isql(switches = ['-q', '-pag', '999999'], input = 'select who,att,id,evt,active_cnt,idle_cnt,clnt_bin from v_ecp_audit;', combine_output = True, io_enc = locale.getpreferredencoding())
2025-07-01 05:56:35.430 >       assert act.clean_stdout == act.clean_expected_stdout
2025-07-01 05:56:35.440 E       assert
2025-07-01 05:56:35.451 E           WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
2025-07-01 05:56:35.461 E           ============ ======= ======= ======================================== ========== ======== ========
2025-07-01 05:56:35.472 E         - TMP_ECP_FREQ       1       1 NEW                                               0        0 python
2025-07-01 05:56:35.487 E         + TMP_ECP_FREQ       1      1NEW                                               0       0python
2025-07-01 05:56:35.494 E         - TMP_ECP_FREQ       2       2 NEW                                               0        0 python
2025-07-01 05:56:35.506 E         + TMP_ECP_FREQ       2      2NEW                                               0       0python
2025-07-01 05:56:35.513 E         - TMP_ECP_FREQ       3       3 NEW                                               0        0 python
2025-07-01 05:56:35.526 E         + TMP_ECP_FREQ       3      3NEW                                               0       0python
2025-07-01 05:56:35.533 E         - TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:35.547 E         + TMP_ECP_FREQ       4      4NEW                                               0       0firebird
2025-07-01 05:56:35.552 E         - TMP_ECP_FREQ       4       5 RUN DML                                           0        0 firebird
2025-07-01 05:56:35.563 E         + TMP_ECP_FREQ       4      5RUN DML                                           0       0firebird
2025-07-01 05:56:35.570 E         - TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:35.590 E         + TMP_ECP_FREQ       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:35.598 E         - TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:35.613 E         + TMP_ECP_FREQ       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:35.620 E         - TMP_ECP_FREQ       1       8 BYE                                               0        1 python
2025-07-01 05:56:35.633 E         + TMP_ECP_FREQ       1      8BYE                                               0       1python
2025-07-01 05:56:35.639 E         - TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
2025-07-01 05:56:35.657 E         + TMP_ECP_FREQ       5      9NEW                                               0       0firebird
2025-07-01 05:56:35.667 E         - TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
2025-07-01 05:56:35.685 E         + TMP_ECP_FREQ       5     10RUN DML                                           0       0firebird
2025-07-01 05:56:35.692 E         - TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:35.707 E         + TMP_ECP_FREQ       5     11MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:35.716 E         - TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:35.735 E         + TMP_ECP_FREQ       5     12TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:35.745 E         - TMP_ECP_FREQ       4      13 BYE                                               0        0 firebird
2025-07-01 05:56:35.762 E         + TMP_ECP_FREQ       4     13BYE                                               0       0firebird
2025-07-01 05:56:35.774 E         - TMP_ECP_FREQ       2      14 BYE                                               0        1 python
2025-07-01 05:56:35.794 E         + TMP_ECP_FREQ       2     14BYE                                               0       1python
2025-07-01 05:56:35.803 E         - TMP_ECP_FREQ       6      15 NEW                                               0        0 firebird
2025-07-01 05:56:35.824 E         + TMP_ECP_FREQ       6     15NEW                                               0       0firebird
2025-07-01 05:56:35.832 E         - TMP_ECP_FREQ       6      16 RUN DML                                           0        0 firebird
2025-07-01 05:56:35.845 E         + TMP_ECP_FREQ       6     16RUN DML                                           0       0firebird
2025-07-01 05:56:35.851 E         - TMP_ECP_FREQ       6      17 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:35.865 E         + TMP_ECP_FREQ       6     17MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:35.871 E         - TMP_ECP_FREQ       6      18 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:35.892 E         + TMP_ECP_FREQ       6     18TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:35.903 E         - TMP_ECP_FREQ       6      19 BYE                                               0        0 firebird
2025-07-01 05:56:35.918 E         + TMP_ECP_FREQ       6     19BYE                                               0       0firebird
2025-07-01 05:56:35.923 E         - TMP_ECP_FREQ       3      20 BYE                                               0        0 python
2025-07-01 05:56:35.932 E         + TMP_ECP_FREQ       3     20BYE                                               0       0python
2025-07-01 05:56:35.937 E         - TMP_ECP_FREQ       5      21 BYE                                               0        0 firebird
2025-07-01 05:56:35.948 E         + TMP_ECP_FREQ       5     21BYE                                               0       0firebird
2025-07-01 05:56:35.954 E         - TMP_ECP_RARE       1       1 NEW                                               0        0 python
2025-07-01 05:56:35.966 E         + TMP_ECP_RARE       1      1NEW                                               0       0python
2025-07-01 05:56:35.972 E         - TMP_ECP_RARE       2       2 NEW                                               0        0 python
2025-07-01 05:56:35.983 E         + TMP_ECP_RARE       2      2NEW                                               0       0python
2025-07-01 05:56:35.990 E         - TMP_ECP_RARE       3       3 NEW                                               0        0 python
2025-07-01 05:56:36.003 E         + TMP_ECP_RARE       3      3NEW                                               0       0python
2025-07-01 05:56:36.012 E         - TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
2025-07-01 05:56:36.027 E         + TMP_ECP_RARE       4      4NEW                                               0       0firebird
2025-07-01 05:56:36.036 E         - TMP_ECP_RARE       4       5 RUN DML                                           0        0 firebird
2025-07-01 05:56:36.056 E         + TMP_ECP_RARE       4      5RUN DML                                           0       0firebird
2025-07-01 05:56:36.062 E         - TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:36.077 E         + TMP_ECP_RARE       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:36.084 E         - TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:36.098 E         + TMP_ECP_RARE       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:36.106 E         - TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
2025-07-01 05:56:36.119 E         + TMP_ECP_RARE       4      8BYE                                               0       0firebird
2025-07-01 05:56:36.127 E         - TMP_ECP_RARE       1       9 BYE                                               0        0 python
2025-07-01 05:56:36.148 E         + TMP_ECP_RARE       1      9BYE                                               0       0python
2025-07-01 05:56:36.156 E         - TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
2025-07-01 05:56:36.177 E         + TMP_ECP_RARE       5     10NEW                                               0       0firebird
2025-07-01 05:56:36.187 E         - TMP_ECP_RARE       5      11 RUN DML                                           0        0 firebird
2025-07-01 05:56:36.201 E         + TMP_ECP_RARE       5     11RUN DML                                           0       0firebird
2025-07-01 05:56:36.208 E         - TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:36.219 E         + TMP_ECP_RARE       5     12MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:36.233 E         - TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:36.251 E         + TMP_ECP_RARE       5     13TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:36.257 E         - TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
2025-07-01 05:56:36.267 E         + TMP_ECP_RARE       5     14BYE                                               0       0firebird
2025-07-01 05:56:36.273 E         - TMP_ECP_RARE       2      15 BYE                                               0        0 python
2025-07-01 05:56:36.292 E         + TMP_ECP_RARE       2     15BYE                                               0       0python
2025-07-01 05:56:36.301 E         - TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
2025-07-01 05:56:36.322 E         + TMP_ECP_RARE       6     16NEW                                               0       0firebird
2025-07-01 05:56:36.332 E         - TMP_ECP_RARE       6      17 RUN DML                                           0        0 firebird
2025-07-01 05:56:36.355 E         + TMP_ECP_RARE       6     17RUN DML                                           0       0firebird
2025-07-01 05:56:36.368 E         - TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
2025-07-01 05:56:36.388 E         + TMP_ECP_RARE       6     18MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
2025-07-01 05:56:36.394 E         - TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
2025-07-01 05:56:36.407 E         + TMP_ECP_RARE       6     19TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
2025-07-01 05:56:36.416 E         - TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
2025-07-01 05:56:36.433 E         + TMP_ECP_RARE       6     20BYE                                               0       0firebird
2025-07-01 05:56:36.446 E         - TMP_ECP_RARE       3      21 BYE                                               0        0 python
2025-07-01 05:56:36.464 E         + TMP_ECP_RARE       3     21BYE                                               0       0python
2025-07-01 05:56:36.470
2025-07-01 05:56:36.478 tests/functional/session/test_ext_conn_pool_01.py:391: AssertionError
2025-07-01 05:56:36.484 ---------------------------- Captured stdout setup -----------------------------
2025-07-01 05:56:36.491 Creating db: localhost:/var/tmp/qa_2024/test_12338/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-07-01 05:56:36.497 CREATE user: TMP_ECP_FREQ PLUGIN: Srp
2025-07-01 05:56:36.503 CREATE user: TMP_ECP_RARE PLUGIN: Srp
2025-07-01 05:56:36.509 CREATE role: CLEANER_EXT_POOL
2025-07-01 05:56:36.515 --------------------------- Captured stdout teardown ---------------------------
2025-07-01 05:56:36.522 DROP role: CLEANER_EXT_POOL
2025-07-01 05:56:36.528 DROP user: TMP_ECP_RARE PLUGIN: Srp
2025-07-01 05:56:36.536 DROP user: TMP_ECP_FREQ PLUGIN: Srp
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_user_freq = <firebird.qa.plugin.User pytest object at [hex]>
tmp_user_rare = <firebird.qa.plugin.User pytest object at [hex]>
tmp_cleaner_role = <firebird.qa.plugin.Role pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.es_eds
    @pytest.mark.version('>=4.0')
    def test_1(act: Action, tmp_user_freq: User, tmp_user_rare: User, tmp_cleaner_role: Role, capsys):
    
        # [doc] state of external connections pool could be queried using ...:
        # - EXT_CONN_POOL_SIZE			pool size
        # - EXT_CONN_POOL_LIFETIME		idle connection lifetime, in seconds
        ECP_SIZE, ECP_LIFE = -1, -1
        with act.db.connect() as con:
            with con.cursor() as cur:
                cur.execute("select cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_SIZE') as int), cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_LIFETIME') as int) from rdb$database")
                ECP_SIZE, ECP_LIFE = cur.fetchone()
        assert ECP_SIZE > 1;
    
        SERVER_MODE = act.get_server_architecture()
        sql_init = f'''
            set bail on;
            set list on;
            set wng off;
            alter database set linger to {ECP_LIFE+ADD_DELAY_FOR_RARE+2};
            alter role {tmp_cleaner_role.name} set system privileges to MODIFY_EXT_CONN_POOL;
            commit;
    
            grant default {tmp_cleaner_role.name} to user {tmp_user_freq.name};
            grant default {tmp_cleaner_role.name} to user {tmp_user_rare.name};
            commit;
    
            set term ^;
            create function fn_get_bin_name() returns varchar(255) as
                declare v_bin_name varchar(255);
            begin
                v_bin_name = rdb$get_context('SYSTEM','CLIENT_PROCESS');
    
                -- ::: NOTE ::: Python binary can have numeric suffixes on Linux:
                if (v_bin_name similar to '%((\\python([[:DIGIT:]]+%)?.exe)|(/python([[:DIGIT:]]+%)?))') then
                    return 'python'; -- '/usr/bin/python3.9' ==> 'python'
    
                if (v_bin_name similar to '%((\\firebird([[:DIGIT:]]+%)?.exe)|(/python([[:DIGIT:]]+%)?))') then
                    return 'firebird';
    
                -- Extracts file name from full path of client binary process.
                -- For Windows: removes extension, in order returning name be the same as on Linux.
                -- 'c:\\program files\\firebird30\\firebird.exe' --> 'firebird'
                -- '/opt/firebird/bin/firebird'                  --> 'firebird'
                -- ::: NOTE ::: backslash must be duplicated when using this DDL in any Python
                -- environment otherwise it will be swallowed
                return
                (
                    select
                        --p
                        --,r
                        --,ext_pos
                        --,n
                        --,x
                        reverse(left(x,n)) as clnt_bin
                        -- reverse(x)  as clnt_bin
                    from
                    (
                        select
                            p
                            ,reverse(p) r
                            ,ext_pos
                            ,substring(reverse(p) from iif( is_win, ext_pos+1, 1) ) x
                            ,position( '|' in replace(replace(reverse( p ),'\\','|'),'/','|') ) - iif(is_win, ext_pos+1, 1) as n
                        from (
                            select
                                trim(p) as p
                                ,position( '\\' in p ) > 0 as is_win
                                ,iif( position( '\\' in p ) > 0, position('.' in reverse(trim(p))), 0) as ext_pos
                            from (
                                select rdb$get_context('SYSTEM','CLIENT_PROCESS') as p from rdb$database
                            )
                        )
                    )
                );
    
            end
            ^
            set term ;^
    
    
            create table ecp_audit(
                 id smallint generated by default as identity constraint pk_audit primary key
                ,srvmode varchar(12) -- 'Super' / 'SuperClassic' / 'Classic'
                ,who varchar(12) default current_user -- 'TMP_ECP_FREQ' / 'TMP_ECP_RARE' / 'SYSDBA'
                ,evt varchar(40) not null
                ,att smallint default current_connection
                ,trn smallint default current_transaction
                ,dts timestamp default 'now'
                ,pool_active_count smallint
                ,pool_idle_count smallint
                ,clnt_bin varchar(8)
                ,aux_info varchar(100)
            );
    
            create view v_ecp_audit as
            select
                who
               ,att
               ,id
               ,evt
               ,active_cnt
               ,idle_cnt
               ,clnt_bin
            from (
                select
                     srvmode
                    ,who
                    ,cast(dense_rank()over(partition by who order by att) as smallint) as att
                    ,cast(dense_rank()over(partition by who order by id) as smallint) as id
                    ,evt
                    ,trn
                    ,pool_active_count as active_cnt
                    ,pool_idle_count as idle_cnt
                    ,clnt_bin
                from ecp_audit
            )
            order by who, id
            ;
    
    
            grant select,insert on ecp_audit to public;
            grant select on v_ecp_audit to public;
            commit;
    
            set term ^;
            create or alter trigger trg_aud_bi for ecp_audit active before insert sql security definer as
                declare v_srvmode varchar(30);
                declare p int;
            begin
                new.srvmode = '{SERVER_MODE}';
                new.pool_active_count = rdb$get_context('SYSTEM','EXT_CONN_POOL_ACTIVE_COUNT');
                new.pool_idle_count = rdb$get_context('SYSTEM','EXT_CONN_POOL_IDLE_COUNT');
                new.clnt_bin = right(fn_get_bin_name(), 8);
                -- right(rdb$get_context('SYSTEM','CLIENT_PROCESS'),15);
            end
            ^
    
            create or alter trigger trg_connect inactive on connect sql security definer as
                declare p smallint;
            begin
                if (current_user <> '{act.db.user}') then
                begin
    
                    insert into ecp_audit(
                        evt
                    ) values (
                        iif(resetting, 'TAKE FROM POOL: IDLE -> ACTIVE', 'NEW')
                    );
                end
            end
            ^
    
            create or alter trigger trg_disconnect inactive on disconnect sql security definer as
            begin
                if (current_user <> '{act.db.user}') then
                begin
                    insert into ecp_audit(
                        evt
                    ) values (
                        iif(resetting, 'MOVE INTO POOL: ACTIVE -> IDLE', 'BYE')
                    );
                end
            end
            ^
            set term ;^
            commit;
            alter trigger trg_connect active;
            alter trigger trg_disconnect active;
            commit;
        '''
    
        act.expected_stdout = ''
        act.isql(switches = ['-q'], input = sql_init, combine_output = True, io_enc = locale.getpreferredencoding())
        assert act.clean_stdout == act.clean_expected_stdout
        act.reset()
    
        #-----------------------------------------------------
    
        sql_for_run = '''
            execute block as
                declare c int;
            begin
                execute statement ( q'{ insert into ecp_audit( evt ) values( 'RUN DML') }' )
                on external
                   'localhost:' || rdb$get_context('SYSTEM','DB_NAME')
                with autonomous transaction -- <<< !!! THIS IS MANDATORY IF WE WANT TO USE EXT CONN POOL !!! <<<
                as user current_user password '123'
                ;
            end
        '''
    
        for usr in (tmp_user_freq, tmp_user_rare):
            conn_list = []
            for i in range(0, ITER_LOOP_CNT):
                conn_list.append( act.db.connect(user = usr.name, password = usr.password) )
    
            for i,c in enumerate(conn_list):
    
                # ::: NOTE :::
                # ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                # On every iteration DIFFERENT connection is used for run ES/EDS,
                # but all of them use the same user/password/role, so apropriate
                # item in the ExtConnPool can be used to run this statement.
                # But this will be so only for user = 'FREQ' because he does such
                # actions 'frequently': each (<ECP_LIFE> - 2) seconds.
                # For user 'RARE' new attachment will be created every time when
                # he runs ES/EDS because he does that 'rarely' and idle connection
                # (from his previous iteration) is removed from ExtConnPool due to
                # expiration of ExtConnPoolLifeTime:
                # ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                try:
                    #c.execute_immediate( sql_for_run )
                    with c.cursor() as cur:
                        cur.execute(sql_for_run)
    
                    if i < len(conn_list)-1:
                        time.sleep( 1 if usr == tmp_user_freq else ECP_LIFE + ADD_DELAY_FOR_RARE )
                    else:
                        c.execute_immediate( 'ALTER EXTERNAL CONNECTIONS POOL CLEAR ALL' )
                finally:
                    if c:
                        c.close()
    
        if SERVER_MODE == 'Classic':
            act.expected_stdout = """
                WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
                ============ ======= ======= ======================================== ========== ======== ========
                TMP_ECP_FREQ       1       1 NEW                                               0        0 python
                TMP_ECP_FREQ       2       2 NEW                                               0        0 python
                TMP_ECP_FREQ       3       3 NEW                                               0        0 python
                TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
                TMP_ECP_FREQ       4       5 RUN DML                                           0        0 firebird
                TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_FREQ       1       8 BYE                                               0        1 python
                TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
                TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
                TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_FREQ       4      13 BYE                                               0        0 firebird
                TMP_ECP_FREQ       2      14 BYE                                               0        1 python
                TMP_ECP_FREQ       6      15 NEW                                               0        0 firebird
                TMP_ECP_FREQ       6      16 RUN DML                                           0        0 firebird
                TMP_ECP_FREQ       6      17 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_FREQ       6      18 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_FREQ       6      19 BYE                                               0        0 firebird
                TMP_ECP_FREQ       3      20 BYE                                               0        0 python
                TMP_ECP_FREQ       5      21 BYE                                               0        0 firebird
                TMP_ECP_RARE       1       1 NEW                                               0        0 python
                TMP_ECP_RARE       2       2 NEW                                               0        0 python
                TMP_ECP_RARE       3       3 NEW                                               0        0 python
                TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
                TMP_ECP_RARE       4       5 RUN DML                                           0        0 firebird
                TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
                TMP_ECP_RARE       1       9 BYE                                               0        0 python
                TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
                TMP_ECP_RARE       5      11 RUN DML                                           0        0 firebird
                TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
                TMP_ECP_RARE       2      15 BYE                                               0        0 python
                TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
                TMP_ECP_RARE       6      17 RUN DML                                           0        0 firebird
                TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
                TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
                TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
                TMP_ECP_RARE       3      21 BYE                                               0        0 python
            """
        else:
            act.expected_stdout = """
                WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
                ============ ======= ======= ======================================== ========== ======== ========
                TMP_ECP_FREQ       1       1 NEW                                               0        0 python
                TMP_ECP_FREQ       2       2 NEW                                               0        0 python
                TMP_ECP_FREQ       3       3 NEW                                               0        0 python
                TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
                TMP_ECP_FREQ       4       5 RUN DML                                           1        0 firebird
                TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_FREQ       1       8 BYE                                               0        1 python
                TMP_ECP_FREQ       4       9 RUN DML                                           1        0 firebird
                TMP_ECP_FREQ       4      10 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_FREQ       4      11 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_FREQ       2      12 BYE                                               0        1 python
                TMP_ECP_FREQ       4      13 RUN DML                                           1        0 firebird
                TMP_ECP_FREQ       4      14 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_FREQ       4      15 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_FREQ       4      16 BYE                                               0        0 firebird
                TMP_ECP_FREQ       3      17 BYE                                               0        0 python
                TMP_ECP_RARE       1       1 NEW                                               0        0 python
                TMP_ECP_RARE       2       2 NEW                                               0        0 python
                TMP_ECP_RARE       3       3 NEW                                               0        0 python
                TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
                TMP_ECP_RARE       4       5 RUN DML                                           1        0 firebird
                TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
                TMP_ECP_RARE       1       9 BYE                                               0        0 python
                TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
                TMP_ECP_RARE       5      11 RUN DML                                           1        0 firebird
                TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
                TMP_ECP_RARE       2      15 BYE                                               0        0 python
                TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
                TMP_ECP_RARE       6      17 RUN DML                                           1        0 firebird
                TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    1        0 firebird
                TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    1        0 firebird
                TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
                TMP_ECP_RARE       3      21 BYE                                               0        0 python
            """
        act.isql(switches = ['-q', '-pag', '999999'], input = 'select who,att,id,evt,active_cnt,idle_cnt,clnt_bin from v_ecp_audit;', combine_output = True, io_enc = locale.getpreferredencoding())
>       assert act.clean_stdout == act.clean_expected_stdout
E       assert   
E           WHO              ATT      ID EVT                                      ACTIVE_CNT IDLE_CNT CLNT_BIN
E           ============ ======= ======= ======================================== ========== ======== ========
E         - TMP_ECP_FREQ       1       1 NEW                                               0        0 python
E         + TMP_ECP_FREQ       1      1NEW                                               0       0python
E         - TMP_ECP_FREQ       2       2 NEW                                               0        0 python
E         + TMP_ECP_FREQ       2      2NEW                                               0       0python
E         - TMP_ECP_FREQ       3       3 NEW                                               0        0 python
E         + TMP_ECP_FREQ       3      3NEW                                               0       0python
E         - TMP_ECP_FREQ       4       4 NEW                                               0        0 firebird
E         + TMP_ECP_FREQ       4      4NEW                                               0       0firebird
E         - TMP_ECP_FREQ       4       5 RUN DML                                           0        0 firebird
E         + TMP_ECP_FREQ       4      5RUN DML                                           0       0firebird
E         - TMP_ECP_FREQ       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_FREQ       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_FREQ       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_FREQ       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_FREQ       1       8 BYE                                               0        1 python
E         + TMP_ECP_FREQ       1      8BYE                                               0       1python
E         - TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
E         + TMP_ECP_FREQ       5      9NEW                                               0       0firebird
E         - TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
E         + TMP_ECP_FREQ       5     10RUN DML                                           0       0firebird
E         - TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_FREQ       5     11MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_FREQ       5     12TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_FREQ       4      13 BYE                                               0        0 firebird
E         + TMP_ECP_FREQ       4     13BYE                                               0       0firebird
E         - TMP_ECP_FREQ       2      14 BYE                                               0        1 python
E         + TMP_ECP_FREQ       2     14BYE                                               0       1python
E         - TMP_ECP_FREQ       6      15 NEW                                               0        0 firebird
E         + TMP_ECP_FREQ       6     15NEW                                               0       0firebird
E         - TMP_ECP_FREQ       6      16 RUN DML                                           0        0 firebird
E         + TMP_ECP_FREQ       6     16RUN DML                                           0       0firebird
E         - TMP_ECP_FREQ       6      17 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_FREQ       6     17MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_FREQ       6      18 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_FREQ       6     18TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_FREQ       6      19 BYE                                               0        0 firebird
E         + TMP_ECP_FREQ       6     19BYE                                               0       0firebird
E         - TMP_ECP_FREQ       3      20 BYE                                               0        0 python
E         + TMP_ECP_FREQ       3     20BYE                                               0       0python
E         - TMP_ECP_FREQ       5      21 BYE                                               0        0 firebird
E         + TMP_ECP_FREQ       5     21BYE                                               0       0firebird
E         - TMP_ECP_RARE       1       1 NEW                                               0        0 python
E         + TMP_ECP_RARE       1      1NEW                                               0       0python
E         - TMP_ECP_RARE       2       2 NEW                                               0        0 python
E         + TMP_ECP_RARE       2      2NEW                                               0       0python
E         - TMP_ECP_RARE       3       3 NEW                                               0        0 python
E         + TMP_ECP_RARE       3      3NEW                                               0       0python
E         - TMP_ECP_RARE       4       4 NEW                                               0        0 firebird
E         + TMP_ECP_RARE       4      4NEW                                               0       0firebird
E         - TMP_ECP_RARE       4       5 RUN DML                                           0        0 firebird
E         + TMP_ECP_RARE       4      5RUN DML                                           0       0firebird
E         - TMP_ECP_RARE       4       6 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_RARE       4      6MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_RARE       4       7 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_RARE       4      7TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_RARE       4       8 BYE                                               0        0 firebird
E         + TMP_ECP_RARE       4      8BYE                                               0       0firebird
E         - TMP_ECP_RARE       1       9 BYE                                               0        0 python
E         + TMP_ECP_RARE       1      9BYE                                               0       0python
E         - TMP_ECP_RARE       5      10 NEW                                               0        0 firebird
E         + TMP_ECP_RARE       5     10NEW                                               0       0firebird
E         - TMP_ECP_RARE       5      11 RUN DML                                           0        0 firebird
E         + TMP_ECP_RARE       5     11RUN DML                                           0       0firebird
E         - TMP_ECP_RARE       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_RARE       5     12MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_RARE       5      13 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_RARE       5     13TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_RARE       5      14 BYE                                               0        0 firebird
E         + TMP_ECP_RARE       5     14BYE                                               0       0firebird
E         - TMP_ECP_RARE       2      15 BYE                                               0        0 python
E         + TMP_ECP_RARE       2     15BYE                                               0       0python
E         - TMP_ECP_RARE       6      16 NEW                                               0        0 firebird
E         + TMP_ECP_RARE       6     16NEW                                               0       0firebird
E         - TMP_ECP_RARE       6      17 RUN DML                                           0        0 firebird
E         + TMP_ECP_RARE       6     17RUN DML                                           0       0firebird
E         - TMP_ECP_RARE       6      18 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
E         + TMP_ECP_RARE       6     18MOVE INTO POOL: ACTIVE -> IDLE                    0       0firebird
E         - TMP_ECP_RARE       6      19 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
E         + TMP_ECP_RARE       6     19TAKE FROM POOL: IDLE -> ACTIVE                    0       0firebird
E         - TMP_ECP_RARE       6      20 BYE                                               0        0 firebird
E         + TMP_ECP_RARE       6     20BYE                                               0       0firebird
E         - TMP_ECP_RARE       3      21 BYE                                               0        0 python
E         + TMP_ECP_RARE       3     21BYE                                               0       0python

tests/functional/session/test_ext_conn_pool_01.py:391: AssertionError
Full history of outcomes and elapsed time, ms:
NN SNAP_INFO CS_outcome SS_outcome CS_run_time SS_run_time CS_run_beg CS_run_end SS_run_beg SS_run_end
1 6.0.0.884 2025.06.30 f7e5f F F 30046 28049 2025.07.01 02:33:18.120 2025.07.01 02:33:48.166 2025.06.30 23:52:20.254 2025.06.30 23:52:48.303
2 6.0.0.881 2025.06.27 7035d P P 30071 28202 2025.06.30 02:24:46.148 2025.06.30 02:25:16.219 2025.06.29 23:39:24.137 2025.06.29 23:39:52.339
3 6.0.0.877 2025.06.26 8e38f P P 29694 27914 2025.06.27 02:02:27.850 2025.06.27 02:02:57.544 2025.06.26 23:29:24.430 2025.06.26 23:29:52.344
4 6.0.0.876 2025.06.25 b1bec P P 29626 27993 2025.06.26 02:06:19.107 2025.06.26 02:06:48.733 2025.06.25 23:31:26.789 2025.06.25 23:31:54.782
5 6.0.0.863 2025.06.24 c3c20 P P 29699 27851 2025.06.25 02:06:38.291 2025.06.25 02:07:07.990 2025.06.24 23:31:13.275 2025.06.24 23:31:41.126
6 6.0.0.858 2025.06.23 8d6f7 P P 29693 28069 2025.06.24 02:06:52.657 2025.06.24 02:07:22.350 2025.06.23 23:31:09.492 2025.06.23 23:31:37.561
7 6.0.0.849 2025.06.20 7b79c P P 29613 27855 2025.06.21 02:18:26.977 2025.06.21 02:18:56.590 2025.06.20 23:41:11.355 2025.06.20 23:41:39.210
8 6.0.0.848 2025.06.19 c483c P P 29576 27965 2025.06.20 02:14:46.616 2025.06.20 02:15:16.192 2025.06.19 23:37:33.177 2025.06.19 23:38:01.142
9 6.0.0.845 2025.06.18 22b12 P P 29702 28201 2025.06.19 02:23:32.849 2025.06.19 02:24:02.551 2025.06.18 23:41:10.821 2025.06.18 23:41:39.022
10 6.0.0.843 2025.06.16 995f4 P P 29684 28123 2025.06.18 02:21:49.474 2025.06.18 02:22:19.158 2025.06.17 23:43:57.007 2025.06.17 23:44:25.130
11 6.0.0.840 2025.06.14 29bca P P 29459 27897 2025.06.16 02:13:32.618 2025.06.16 02:14:02.077 2025.06.15 23:34:47.085 2025.06.15 23:35:14.982
12 6.0.0.838 2025.06.13 0e28a P P 29922 28347 2025.06.14 02:27:15.784 2025.06.14 02:27:45.706 2025.06.13 23:43:23.619 2025.06.13 23:43:51.966
13 6.0.0.835 2025.06.12 2cf29 P P 29816 27238 2025.06.13 02:26:19.926 2025.06.13 02:26:49.742 2025.06.12 23:48:11.190 2025.06.12 23:48:38.428
14 6.0.0.834 2025.06.11 e889f P P 29913 28118 2025.06.12 02:21:56.420 2025.06.12 02:22:26.333 2025.06.11 23:43:12.252 2025.06.11 23:43:40.370
15 6.0.0.800 2025.06.10 1f226 P P 29962 27764 2025.06.11 00:52:24.692 2025.06.11 00:52:54.654 2025.06.10 22:43:30.458 2025.06.10 22:43:58.222
16 6.0.0.799 2025.06.07 be644 P P 29821 27702 2025.06.10 00:55:11.673 2025.06.10 00:55:41.494 2025.06.09 22:43:03.006 2025.06.09 22:43:30.708
17 6.0.0.797 2025.06.06 303e8 P P 29714 27856 2025.06.07 00:58:41.283 2025.06.07 00:59:10.997 2025.06.06 22:42:50.365 2025.06.06 22:43:18.221
18 6.0.0.795 2025.05.29 7a71a P P 29883 27580 2025.06.06 00:53:03.642 2025.06.06 00:53:33.525 2025.06.05 22:41:49.742 2025.06.05 22:42:17.322
19 6.0.0.792 2025.05.28 b4327 P P 29950 27866 2025.05.29 01:08:31.016 2025.05.29 01:09:00.966 2025.05.28 22:45:36.201 2025.05.28 22:46:04.067
20 6.0.0.791 2025.05.27 02db8 P P 29919 27505 2025.05.28 01:06:19.997 2025.05.28 01:06:49.916 2025.05.27 22:44:43.387 2025.05.27 22:45:10.892
21 6.0.0.789 2025.05.21 64051 P P 29870 27735 2025.05.25 00:58:25.750 2025.05.25 00:58:55.620 2025.05.24 22:43:31.155 2025.05.24 22:43:58.890
22 6.0.0.787 2025.05.20 230ad P P 29850 27791 2025.05.21 00:55:28.768 2025.05.21 00:55:58.618 2025.05.20 22:41:54.219 2025.05.20 22:42:22.010
23 6.0.0.783 2025.05.12 37320 P P 29992 27808 2025.05.19 12:26:36.190 2025.05.19 12:27:06.182 2025.05.19 10:27:06.402 2025.05.19 10:27:34.210
24 6.0.0.779 2025.05.11 136fa P P 30153 28119 2025.05.12 00:50:24.166 2025.05.12 00:50:54.319 2025.05.11 22:40:40.959 2025.05.11 22:41:09.078
25 6.0.0.778 2025.05.07 d735e P P 29870 28066 2025.05.08 00:51:42.564 2025.05.08 00:52:12.434 2025.05.07 22:39:27.840 2025.05.07 22:39:55.906
26 6.0.0.776 2025.05.06 007cd P P 29495 27420 2025.05.07 00:48:01.502 2025.05.07 00:48:30.997 2025.05.06 22:39:45.938 2025.05.06 22:40:13.358
27 6.0.0.770 2025.05.05 82c4a P P 29409 28013 2025.05.06 00:47:38.241 2025.05.06 00:48:07.650 2025.05.05 22:38:41.622 2025.05.05 22:39:09.635
28 6.0.0.767 2025.05.01 cdd29 P P 29373 27995 2025.05.02 00:41:58.723 2025.05.02 00:42:28.096 2025.05.01 22:37:49.595 2025.05.01 22:38:17.590
29 6.0.0.762 2025.04.30 5cb15 F P 31984 28176 2025.05.01 00:39:09.170 2025.05.01 00:39:41.154 2025.04.30 22:36:09.038 2025.04.30 22:36:37.214
30 6.0.0.755 2025.04.29 739c6 P P 29891 28183 2025.04.30 00:42:31.298 2025.04.30 00:43:01.189 2025.04.29 22:37:49.192 2025.04.29 22:38:17.375
31 6.0.0.753 2025.04.27 29ab3 P P 30420 28228 2025.04.28 00:44:38.898 2025.04.28 00:45:09.318 2025.04.27 22:36:45.632 2025.04.27 22:37:13.860
32 6.0.0.745 2025.04.21 78ad8 P P 30040 27494 2025.04.26 00:39:25.285 2025.04.26 00:39:55.325 2025.04.25 22:38:05.206 2025.04.25 22:38:32.700
33 6.0.0.744 2025.04.19 e883a P P 30218 28132 2025.04.20 00:42:20.675 2025.04.20 00:42:50.893 2025.04.19 22:38:31.610 2025.04.19 22:38:59.742
34 6.0.0.742 2025.04.17 abc3b P P 30014 27661 2025.04.19 00:44:59.287 2025.04.19 00:45:29.301 2025.04.18 22:38:42.778 2025.04.18 22:39:10.439
35 6.0.0.737 2025.04.16 fe52b F P 31893 27920 2025.04.17 00:40:44.470 2025.04.17 00:41:16.363 2025.04.16 22:38:45.302 2025.04.16 22:39:13.222
36 6.0.0.736 2025.04.14 3e6be P P 29129 27911 2025.04.15 00:19:03.954 2025.04.15 00:19:33.083 2025.04.14 22:28:31.324 2025.04.14 22:28:59.235
37 6.0.0.735 2025.04.13 6635c P P 34363 27709 2025.04.14 00:23:41.172 2025.04.14 00:24:15.535 2025.04.13 22:29:46.669 2025.04.13 22:30:14.378
38 6.0.0.734 2025.04.12 12f3f P P 29476 27886 2025.04.13 00:20:44.794 2025.04.13 00:21:14.270 2025.04.12 22:29:02.880 2025.04.12 22:29:30.766
39 6.0.0.730 2025.04.11 240b8 P P 31211 27887 2025.04.12 00:23:27.939 2025.04.12 00:23:59.150 2025.04.11 22:29:00.899 2025.04.11 22:29:28.786
40 6.0.0.726 2025.04.10 d79c6 P P 29728 27887 2025.04.11 00:23:26.963 2025.04.11 00:23:56.691 2025.04.10 22:28:55.088 2025.04.10 22:29:22.975
41 6.0.0.725 2025.04.09 a2b05 P P 29878 27897 2025.04.10 00:23:07.983 2025.04.10 00:23:37.861 2025.04.09 22:29:28.189 2025.04.09 22:29:56.086
42 6.0.0.722 2025.04.08 a8b86 F P 31870 28156 2025.04.09 00:39:17.689 2025.04.09 00:39:49.559 2025.04.08 22:36:54.794 2025.04.08 22:37:22.950
43 6.0.0.719 2025.04.06 90fd9 F P 31417 27889 2025.04.07 00:37:19.521 2025.04.07 00:37:50.938 2025.04.06 22:34:49.394 2025.04.06 22:35:17.283
44 6.0.0.717 2025.04.04 53d70 P P 31373 28048 2025.04.05 00:32:28.234 2025.04.05 00:32:59.607 2025.04.04 22:33:56.442 2025.04.04 22:34:24.490
45 6.0.0.716 2025.04.03 fc636 P P 30461 27792 2025.04.04 00:35:42.742 2025.04.04 00:36:13.203 2025.04.03 22:35:50.642 2025.04.03 22:36:18.434
46 6.0.0.715 2025.04.02 907ed P P 29419 28080 2025.04.03 00:36:04.367 2025.04.03 00:36:33.786 2025.04.02 22:35:56.535 2025.04.02 22:36:24.615
47 6.0.0.710 2025.04.01 40651 P P 30098 27943 2025.04.02 00:34:34.963 2025.04.02 00:35:05.061 2025.04.01 22:34:43.431 2025.04.01 22:35:11.374
48 6.0.0.708 2025.03.31 cb069 P P 30820 27882 2025.04.01 00:25:09.350 2025.04.01 00:25:40.170 2025.03.31 22:29:34.894 2025.03.31 22:30:02.776
49 6.0.0.707 2025.03.28 4bd4f P P 29809 28025 2025.03.31 00:26:21.428 2025.03.31 00:26:51.237 2025.03.30 22:30:05.414 2025.03.30 22:30:33.439
50 6.0.0.698 2025.03.26 d72a7 P P 30251 28313 2025.03.28 00:46:58.390 2025.03.28 00:47:28.641 2025.03.27 22:37:16.309 2025.03.27 22:37:44.622
51 6.0.0.693 2025.03.24 0b559 P P 30360 27702 2025.03.25 00:36:05.402 2025.03.25 00:36:35.762 2025.03.24 22:33:04.720 2025.03.24 22:33:32.422
52 6.0.0.687 2025.03.22 730aa F P 32305 27534 2025.03.24 00:46:00.989 2025.03.24 00:46:33.294 2025.03.23 22:40:08.482 2025.03.23 22:40:36.016
53 6.0.0.686 2025.03.20 71bf6 P P 29353 28288 2025.03.21 00:51:35.766 2025.03.21 00:52:05.119 2025.03.20 22:43:01.106 2025.03.20 22:43:29.394
54 6.0.0.685 2025.03.19 a8577 F P 31649 27809 2025.03.20 01:00:31.185 2025.03.20 01:01:02.834 2025.03.19 22:41:07.754 2025.03.19 22:41:35.563
55 6.0.0.680 2025.03.18 90d29 P P 752 412 2025.03.19 11:13:31.307 2025.03.19 11:13:32.059 2025.03.19 09:23:57.725 2025.03.19 09:23:58.137
56 6.0.0.677 2025.03.16 c0a60 P P 638 637 2025.03.17 00:41:58.782 2025.03.17 00:41:59.420 2025.03.16 22:36:00.106 2025.03.16 22:36:00.743
57 6.0.0.676 2025.03.15 3034f P P 776 454 2025.03.16 16:12:01.734 2025.03.16 16:12:02.510 2025.03.16 14:24:54.483 2025.03.16 14:24:54.937
58 6.0.0.673 2025.03.13 40f5b P P 649 523 2025.03.14 00:38:28.103 2025.03.14 00:38:28.752 2025.03.13 22:34:58.858 2025.03.13 22:34:59.381
59 6.0.0.671 2025.03.12 a4fff P P 1053 531 2025.03.13 00:42:08.427 2025.03.13 00:42:09.480 2025.03.12 22:37:58.335 2025.03.12 22:37:58.866
60 6.0.0.663 2025.03.11 daad2 P P 692 516 2025.03.12 00:42:39.624 2025.03.12 00:42:40.316 2025.03.11 22:37:08.791 2025.03.11 22:37:09.307
61 6.0.0.661 2025.03.07 b9869 P P 921 544 2025.03.11 00:18:14.710 2025.03.11 00:18:15.631 2025.03.10 22:27:45.019 2025.03.10 22:27:45.563
62 6.0.0.660 2025.03.04 a6700 P P 986 569 2025.03.07 00:28:55.700 2025.03.07 00:28:56.686 2025.03.06 22:32:09.751 2025.03.06 22:32:10.320
63 6.0.0.658 2025.03.03 f15f8 P P 524 554 2025.03.04 00:22:47.570 2025.03.04 00:22:48.094 2025.03.03 22:28:09.658 2025.03.03 22:28:10.212
64 6.0.0.656 2025.02.27 25fb4 P P 652 598 2025.03.03 00:55:14.415 2025.03.03 00:55:15.067 2025.03.02 22:39:30.347 2025.03.02 22:39:30.945
65 6.0.0.655 2025.02.25 6e3e0 P P 566 537 2025.02.27 00:26:06.580 2025.02.27 00:26:07.146 2025.02.26 22:29:06.489 2025.02.26 22:29:07.026
66 6.0.0.654 2025.02.24 b7141 P P 645 611 2025.02.25 00:30:18.214 2025.02.25 00:30:18.859 2025.02.24 22:31:04.790 2025.02.24 22:31:05.401
67 6.0.0.652 2025.02.22 22662 P P 816 408 2025.02.24 07:46:03.789 2025.02.24 07:46:04.605 2025.02.24 00:42:00.488 2025.02.24 00:42:00.896
68 6.0.0.647 2025.02.21 9fccb F P 1065 577 2025.02.22 00:30:16.719 2025.02.22 00:30:17.784 2025.02.21 22:34:06.298 2025.02.21 22:34:06.875
69 6.0.0.640 2025.02.19 9b8ac P P 662 576 2025.02.20 00:27:01.610 2025.02.20 00:27:02.272 2025.02.19 22:28:59.746 2025.02.19 22:29:00.322
70 6.0.0.639 2025.02.18 201a4 P P 602 551 2025.02.19 00:20:17.935 2025.02.19 00:20:18.537 2025.02.18 22:27:28.503 2025.02.18 22:27:29.054
71 6.0.0.637 2025.02.12 6d0f5 P P 645 616 2025.02.14 00:39:03.089 2025.02.14 00:39:03.734 2025.02.13 22:34:52.511 2025.02.13 22:34:53.127
72 6.0.0.636 2025.02.11 0424f F P 1079 677 2025.02.12 00:35:07.963 2025.02.12 00:35:09.042 2025.02.11 22:34:19.113 2025.02.11 22:34:19.790
73 6.0.0.635 2025.02.10 f640f P P 579 537 2025.02.11 00:33:24.930 2025.02.11 00:33:25.509 2025.02.10 22:34:19.674 2025.02.10 22:34:20.211
74 6.0.0.629 2025.02.07 194f9 F P 1068 493 2025.02.08 00:33:38.625 2025.02.08 00:33:39.693 2025.02.07 22:33:14.382 2025.02.07 22:33:14.875
75 6.0.0.628 2025.02.06 859d5 P P 722 411 2025.02.07 00:49:52.453 2025.02.07 00:49:53.175 2025.02.06 22:40:26.067 2025.02.06 22:40:26.478
76 6.0.0.621 2025.02.05 34fe7 P P 655 555 2025.02.06 00:45:04.597 2025.02.06 00:45:05.252 2025.02.05 22:40:57.155 2025.02.05 22:40:57.710
77 6.0.0.609 2025.02.04 76d57 P P 749 299 2025.02.05 00:39:17.496 2025.02.05 00:39:18.245 2025.02.04 22:37:12.862 2025.02.04 22:37:13.161
78 6.0.0.607 2025.02.03 1985b P P 661 322 2025.02.04 00:37:19.332 2025.02.04 00:37:19.993 2025.02.03 22:38:06.029 2025.02.03 22:38:06.351
79 6.0.0.601 2025.02.01 6af07 P P 615 496 2025.02.02 00:30:00.827 2025.02.02 00:30:01.442 2025.02.01 22:32:31.502 2025.02.01 22:32:31.998
80 6.0.0.600 2025.01.27 188de F P 1023 544 2025.01.28 00:38:47.211 2025.01.28 00:38:48.234 2025.01.27 22:34:42.742 2025.01.27 22:34:43.286
81 6.0.0.599 2025.01.25 ba588 P P 642 668 2025.01.26 00:37:46.637 2025.01.26 00:37:47.279 2025.01.25 22:35:16.724 2025.01.25 22:35:17.392
82 6.0.0.598 2025.01.23 ddbc3 P P 651 557 2025.01.25 00:38:36.100 2025.01.25 00:38:36.751 2025.01.24 22:34:08.982 2025.01.24 22:34:09.539
83 6.0.0.595 2025.01.22 e62f3 P P 956 569 2025.01.23 00:30:40.046 2025.01.23 00:30:41.002 2025.01.22 22:29:43.382 2025.01.22 22:29:43.951
84 6.0.0.594 2025.01.21 47fb6 P P 1031 341 2025.01.22 00:24:30.183 2025.01.22 00:24:31.214 2025.01.21 22:29:15.413 2025.01.21 22:29:15.754
85 6.0.0.590 2025.01.20 9dc1e F P 576 571 2025.01.21 00:32:23.778 2025.01.21 00:32:24.354 2025.01.20 22:34:00.202 2025.01.20 22:34:00.773
86 6.0.0.588 2025.01.19 b1c4e F P 693 569 2025.01.20 00:29:43.537 2025.01.20 00:29:44.230 2025.01.19 22:31:37.002 2025.01.19 22:31:37.571
87 6.0.0.587 2025.01.18 63e6e P P 616 528 2025.01.19 00:34:45.230 2025.01.19 00:34:45.846 2025.01.18 22:33:23.659 2025.01.18 22:33:24.187
88 6.0.0.585 2025.01.16 2d6bb P P 679 553 2025.01.18 00:26:58.031 2025.01.18 00:26:58.710 2025.01.17 22:30:18.610 2025.01.17 22:30:19.163
89 6.0.0.584 2025.01.15 a0aa2 P P 636 581 2025.01.16 00:31:53.454 2025.01.16 00:31:54.090 2025.01.15 22:33:16.038 2025.01.15 22:33:16.619
90 6.0.0.581 2025.01.14 21e9e P P 604 601 2025.01.15 00:33:40.649 2025.01.15 00:33:41.253 2025.01.14 22:31:51.818 2025.01.14 22:31:52.419
91 6.0.0.577 2025.01.13 7e293 P P 695 282 2025.01.14 00:32:14.231 2025.01.14 00:32:14.926 2025.01.13 22:32:21.267 2025.01.13 22:32:21.549
92 6.0.0.576 2025.01.12 05898 P P 617 466 2025.01.13 00:29:12.328 2025.01.13 00:29:12.945 2025.01.12 22:30:22.478 2025.01.12 22:30:22.944
93 6.0.0.573 2025.01.10 c20f3 P P 648 472 2025.01.11 00:30:50.446 2025.01.11 00:30:51.094 2025.01.10 22:31:34.915 2025.01.10 22:31:35.387
94 6.0.0.571 2024.12.31 81bba P P 536 424 2025.01.01 00:05:00.888 2025.01.01 00:05:01.424 2024.12.31 22:11:56.003 2024.12.31 22:11:56.427
95 6.0.0.570 2024.12.30 c3c8d F P 991 537 2024.12.31 00:05:42.679 2024.12.31 00:05:43.670 2024.12.30 22:11:52.712 2024.12.30 22:11:53.249
96 6.0.0.565 2024.12.28 5fc59 P P 563 306 2024.12.30 12:39:01.824 2024.12.30 12:39:02.387 2024.12.30 11:20:11.753 2024.12.30 11:20:12.059
97 6.0.0.564 2024.12.26 12514 P P 504 516 2024.12.27 00:06:54.779 2024.12.27 00:06:55.283 2024.12.26 22:12:01.931 2024.12.26 22:12:02.447
98 6.0.0.560 2024.12.25 fa83e P P 515 283 2024.12.25 23:58:53.796 2024.12.25 23:58:54.311 2024.12.25 22:11:50.681 2024.12.25 22:11:50.964
99 6.0.0.559 2024.12.23 cc800 P P 539 408 2024.12.25 00:00:33.477 2024.12.25 00:00:34.016 2024.12.24 22:12:35.925 2024.12.24 22:12:36.333
100 6.0.0.556 2024.12.22 a0404 P P 655 264 2024.12.23 00:06:25.783 2024.12.23 00:06:26.438 2024.12.22 22:11:46.957 2024.12.22 22:11:47.221
101 6.0.0.555 2024.12.19 6990a P P 578 312 2024.12.21 13:14:25.990 2024.12.21 13:14:26.568 2024.12.21 11:55:48.968 2024.12.21 11:55:49.280
102 6.0.0.553 2024.12.17 d1f8a P P 528 503 2024.12.18 00:00:45.428 2024.12.18 00:00:45.956 2024.12.17 22:12:39.059 2024.12.17 22:12:39.562
103 6.0.0.552 2024.12.11 85e25 P P 501 271 2024.12.16 00:05:03.611 2024.12.16 00:05:04.112 2024.12.15 22:12:13.250 2024.12.15 22:12:13.521
104 6.0.0.550 2024.12.10 b37ac P P 997 290 2024.12.11 00:00:15.579 2024.12.11 00:00:16.576 2024.12.10 22:13:53.772 2024.12.10 22:13:54.062
105 6.0.0.548 2024.12.08 2cc77 P P 516 353 2024.12.08 23:54:42.795 2024.12.08 23:54:43.311 2024.12.08 22:09:08.706 2024.12.08 22:09:09.059
106 6.0.0.544 2024.12.05 96943 P P 491 296 2024.12.05 23:58:18.015 2024.12.05 23:58:18.506 2024.12.05 22:13:47.946 2024.12.05 22:13:48.242
107 6.0.0.543 2024.12.03 30b77 P P 532 480 2024.12.03 23:58:33.159 2024.12.03 23:58:33.691 2024.12.03 22:11:54.527 2024.12.03 22:11:55.007
108 6.0.0.540 2024.12.02 4a1f4 P P 567 468 2024.12.02 23:55:10.189 2024.12.02 23:55:10.756 2024.12.02 22:10:24.759 2024.12.02 22:10:25.227
109 6.0.0.539 2024.11.28 1f283 P P 571 516 2024.11.30 00:07:33.699 2024.11.30 00:07:34.270 2024.11.29 22:11:32.283 2024.11.29 22:11:32.799
110 6.0.0.535 2024.11.26 77b95 P P 956 450 2024.11.26 23:50:01.526 2024.11.26 23:50:02.482 2024.11.26 22:08:16.597 2024.11.26 22:08:17.047
111 6.0.0.534 2024.11.25 e9584 P P 953 541 2024.11.25 23:51:21.185 2024.11.25 23:51:22.138 2024.11.25 22:09:23.322 2024.11.25 22:09:23.863
112 6.0.0.533 2024.11.17 933ac P P 587 315 2024.11.22 09:54:44.339 2024.11.22 09:54:44.926 2024.11.22 08:38:25.024 2024.11.22 08:38:25.339
113 6.0.0.532 2024.11.16 9e263 P P 999 540 2024.11.16 23:42:25.807 2024.11.16 23:42:26.806 2024.11.16 22:09:01.479 2024.11.16 22:09:02.019
114 6.0.0.530 2024.11.15 49804 P P 551 411 2024.11.16 01:49:10.014 2024.11.16 01:49:10.565 2024.11.16 00:08:37.475 2024.11.16 00:08:37.886
115 6.0.0.528 2024.11.14 9625b P P 1022 505 2024.11.15 01:52:42.917 2024.11.15 01:52:43.939 2024.11.15 00:10:00.456 2024.11.15 00:10:00.961
116 6.0.0.526 2024.11.12 65b80 P P 519 559 2024.11.14 01:52:03.723 2024.11.14 01:52:04.242 2024.11.14 00:09:36.567 2024.11.14 00:09:37.126
117 6.0.0.523 2024.11.08 8ca23 P P 527 497 2024.11.11 01:48:28.659 2024.11.11 01:48:29.186 2024.11.11 00:08:03.123 2024.11.11 00:08:03.620
118 6.0.0.520 2024.11.07 4eefa P P 495 446 2024.11.08 01:45:27.059 2024.11.08 01:45:27.554 2024.11.08 00:07:34.093 2024.11.08 00:07:34.539
119 6.0.0.516 2024.11.04 b0c36 P P 501 421 2024.11.05 01:44:38.008 2024.11.05 01:44:38.509 2024.11.05 00:07:17.057 2024.11.05 00:07:17.478
120 6.0.0.515 2024.10.30 d53f3 P P 494 474 2024.11.04 01:46:49.150 2024.11.04 01:46:49.644 2024.11.04 00:07:48.389 2024.11.04 00:07:48.863
121 6.0.0.512 2024.10.29 833ef P P 504 447 2024.10.30 01:49:30.879 2024.10.30 01:49:31.383 2024.10.30 00:09:33.553 2024.10.30 00:09:34.000
122 6.0.0.511 2024.10.26 c4bc9 P P 879 505 2024.10.29 01:48:51.884 2024.10.29 01:48:52.763 2024.10.29 00:09:06.197 2024.10.29 00:09:06.702
123 6.0.0.509 2024.10.25 3aedb P P 590 520 2024.10.26 01:59:57.707 2024.10.26 01:59:58.297 2024.10.26 00:13:06.602 2024.10.26 00:13:07.122
124 6.0.0.508 2024.10.24 a8f5b P P 1091 509 2024.10.25 01:53:14.510 2024.10.25 01:53:15.601 2024.10.25 00:10:23.559 2024.10.25 00:10:24.068
125 6.0.0.502 2024.10.22 6bfd7 P P 511 485 2024.10.23 01:53:41.382 2024.10.23 01:53:41.893 2024.10.23 00:09:59.873 2024.10.23 00:10:00.358
126 6.0.0.500 2024.10.21 be565 P P 544 314 2024.10.22 17:57:40.985 2024.10.22 17:57:41.529 2024.10.22 16:39:21.070 2024.10.22 16:39:21.384
127 6.0.0.499 2024.10.19 6214b P P 597 499 2024.10.20 01:53:29.397 2024.10.20 01:53:29.994 2024.10.20 00:11:18.879 2024.10.20 00:11:19.378
128 6.0.0.498 2024.10.18 591a7 P P 494 467 2024.10.19 01:51:39.380 2024.10.19 01:51:39.874 2024.10.19 00:09:22.543 2024.10.19 00:09:23.010
129 6.0.0.494 2024.10.17 cf5a4 P P 575 437 2024.10.18 01:52:30.644 2024.10.18 01:52:31.219 2024.10.18 00:11:01.309 2024.10.18 00:11:01.746
130 6.0.0.491 2024.10.14 dc5fb P P 518 453 2024.10.15 01:48:58.558 2024.10.15 01:48:59.076 2024.10.15 00:08:13.340 2024.10.15 00:08:13.793
131 6.0.0.489 2024.10.11 2ba59 P P 962 518 2024.10.12 01:56:14.495 2024.10.12 01:56:15.457 2024.10.12 00:10:50.777 2024.10.12 00:10:51.295
132 6.0.0.488 2024.10.09 1c93e P P 589 350 2024.10.10 02:04:57.774 2024.10.10 02:04:58.363 2024.10.10 00:15:02.312 2024.10.10 00:15:02.662
133 6.0.0.487 2024.10.06 065a3 P P 563 285 2024.10.07 02:04:15.337 2024.10.07 02:04:15.900 2024.10.07 00:14:42.780 2024.10.07 00:14:43.065
134 6.0.0.485 2024.10.04 e95c1 P P 553 588 2024.10.05 02:05:22.989 2024.10.05 02:05:23.542 2024.10.05 00:15:10.989 2024.10.05 00:15:11.577
135 6.0.0.483 2024.10.02 5e5ae P P 504 483 2024.10.03 02:00:42.209 2024.10.03 02:00:42.713 2024.10.03 00:14:05.001 2024.10.03 00:14:05.484
136 6.0.0.478 2024.09.30 b5010 P P 628 551 2024.10.01 01:55:11.034 2024.10.01 01:55:11.662 2024.10.01 00:13:00.987 2024.10.01 00:13:01.538
137 6.0.0.474 2024.09.26 e4efb P P 560 536 2024.09.30 01:55:09.259 2024.09.30 01:55:09.819 2024.09.30 00:11:11.513 2024.09.30 00:11:12.049
138 6.0.0.471 2024.09.24 01b51 P P 562 573 2024.09.25 23:59:56.442 2024.09.25 23:59:57.004 2024.09.25 22:12:15.282 2024.09.25 22:12:15.855
139 6.0.0.470 2024.09.23 77cc0 F P 1027 495 2024.09.23 23:57:40.438 2024.09.23 23:57:41.465 2024.09.23 22:12:21.761 2024.09.23 22:12:22.256
140 6.0.0.467 2024.09.21 ea0b8 P P 613 438 2024.09.22 23:56:40.417 2024.09.22 23:56:41.030 2024.09.22 22:11:15.561 2024.09.22 22:11:15.999
141 6.0.0.466 2024.09.20 32dc6 P P 554 485 2024.09.20 23:55:14.236 2024.09.20 23:55:14.790 2024.09.20 22:10:47.946 2024.09.20 22:10:48.431
142 6.0.0.461 2024.09.17 2c895 P P 1099 512 2024.09.18 00:31:53.688 2024.09.18 00:31:54.787 2024.09.17 22:33:30.653 2024.09.17 22:33:31.165
143 6.0.0.460 2024.09.11 3c253 P P 721 592 2024.09.17 00:32:46.209 2024.09.17 00:32:46.930 2024.09.16 22:34:40.453 2024.09.16 22:34:41.045
144 6.0.0.457 2024.09.09 fdc6f P P 951 514 2024.09.10 00:57:32.865 2024.09.10 00:57:33.816 2024.09.09 22:44:55.357 2024.09.09 22:44:55.871
145 6.0.0.455 2024.09.07 500d8 F P 779 603 2024.09.08 00:52:55.587 2024.09.08 00:52:56.366 2024.09.07 22:42:54.464 2024.09.07 22:42:55.067
146 6.0.0.454 2024.09.05 4d70f P P 878 517 2024.09.06 00:35:45.494 2024.09.06 00:35:46.372 2024.09.05 22:36:56.791 2024.09.05 22:36:57.308
147 6.0.0.452 2024.09.04 9ff9c P P 870 485 2024.09.05 00:32:55.951 2024.09.05 00:32:56.821 2024.09.04 22:34:59.599 2024.09.04 22:35:00.084
148 6.0.0.450 2024.09.02 27124 P P 793 491 2024.09.04 01:46:58.442 2024.09.04 01:46:59.235 2024.09.03 23:07:45.886 2024.09.03 23:07:46.377
149 6.0.0.447 2024.09.01 056ec P P 1440 412 2024.09.02 01:02:55.076 2024.09.02 01:02:56.516 2024.09.01 22:42:15.972 2024.09.01 22:42:16.384
150 6.0.0.446 2024.08.30 fe1b2 P P 716 588 2024.09.01 01:03:52.306 2024.09.01 01:03:53.022 2024.08.31 22:53:11.649 2024.08.31 22:53:12.237
151 6.0.0.444 2024.08.28 785d4 P P 758 1406 2024.08.30 01:22:23.341 2024.08.30 01:22:24.099 2024.08.29 23:04:56.657 2024.08.29 23:04:58.063
152 6.0.0.442 2024.08.21 4a68f F P 1034 664 2024.08.28 03:31:43.248 2024.08.28 03:31:44.282 2024.08.27 23:59:07.737 2024.08.27 23:59:08.401
153 6.0.0.441 2024.08.20 75042 P P 915 616 2024.08.21 00:49:55.594 2024.08.21 00:49:56.509 2024.08.20 22:42:38.521 2024.08.20 22:42:39.137
154 6.0.0.438 2024.08.16 088b5 P P 599 579 2024.08.18 23:59:41.714 2024.08.18 23:59:42.313 2024.08.18 22:19:17.798 2024.08.18 22:19:18.377
155 6.0.0.437 2024.08.14 3c88b P P 1228 635 2024.08.15 23:56:50.848 2024.08.15 23:56:52.076 2024.08.15 22:18:21.550 2024.08.15 22:18:22.185
156 6.0.0.432 2024.08.11 e82ac P P 619 511 2024.08.12 23:55:40.925 2024.08.12 23:55:41.544 2024.08.12 22:17:06.573 2024.08.12 22:17:07.084
157 6.0.0.431 2024.08.09 de5a7 P P 689 623 2024.08.09 23:55:37.193 2024.08.09 23:55:37.882 2024.08.09 22:17:30.689 2024.08.09 22:17:31.312
158 6.0.0.428 2024.08.08 9191b F P 799 578 2024.08.08 23:55:50.717 2024.08.08 23:55:51.516 2024.08.08 22:16:49.992 2024.08.08 22:16:50.570
159 6.0.0.423 2024.08.07 33b41 P P 729 426 2024.08.08 09:43:56.259 2024.08.08 09:43:56.988 2024.08.08 08:23:32.577 2024.08.08 08:23:33.003
160 6.0.0.421 2024.08.06 ed60d F P 365 278 2024.08.06 23:38:43.073 2024.08.06 23:38:43.438 2024.08.06 22:09:59.697 2024.08.06 22:09:59.975
161 6.0.0.419 2024.08.05 3505a P P 390 331 2024.08.05 23:40:51.689 2024.08.05 23:40:52.079 2024.08.05 22:09:54.821 2024.08.05 22:09:55.152
162 6.0.0.409 2024.08.02 ec18f P P 483 352 2024.08.04 23:43:50.614 2024.08.04 23:43:51.097 2024.08.04 22:10:57.109 2024.08.04 22:10:57.461
163 6.0.0.406 2024.08.01 b20be P P 469 376 2024.08.01 23:42:33.948 2024.08.01 23:42:34.417 2024.08.01 22:10:09.121 2024.08.01 22:10:09.497
164 6.0.0.405 2024.07.31 a62ac P P 394 366 2024.07.31 23:41:16.071 2024.07.31 23:41:16.465 2024.07.31 22:09:52.277 2024.07.31 22:09:52.643
165 6.0.0.403 2024.07.29 30f03 P P 400 332 2024.07.29 23:40:55.005 2024.07.29 23:40:55.405 2024.07.29 22:09:39.669 2024.07.29 22:09:40.001
166 6.0.0.401 2024.07.26 24e41 P P 396 328 2024.07.26 23:38:28.649 2024.07.26 23:38:29.045 2024.07.26 22:09:36.593 2024.07.26 22:09:36.921
167 6.0.0.400 2024.07.24 5bb78 P P 373 359 2024.07.24 23:38:18.209 2024.07.24 23:38:18.582 2024.07.24 22:09:51.193 2024.07.24 22:09:51.552
168 6.0.0.398 2024.07.23 85b18 F P 401 325 2024.07.23 23:44:03.604 2024.07.23 23:44:04.005 2024.07.23 22:15:43.346 2024.07.23 22:15:43.671
169 6.0.0.397 2024.07.22 c734c P P 386 356 2024.07.22 23:38:00.927 2024.07.22 23:38:01.313 2024.07.22 22:09:46.149 2024.07.22 22:09:46.505
170 6.0.0.396 2024.07.13 cf952 P P 416 324 2024.07.21 23:39:12.827 2024.07.21 23:39:13.243 2024.07.21 22:09:38.693 2024.07.21 22:09:39.017
171 6.0.0.395 2024.07.10 845f4 P P 863 335 2024.07.12 23:40:01.718 2024.07.12 23:40:02.581 2024.07.12 22:08:48.045 2024.07.12 22:08:48.380
172 6.0.0.392 2024.07.09 ea301 F P 736 328 2024.07.09 23:35:36.089 2024.07.09 23:35:36.825 2024.07.09 22:08:02.183 2024.07.09 22:08:02.511
173 6.0.0.391 2024.07.08 7d50c P P 405 364 2024.07.08 23:36:58.506 2024.07.08 23:36:58.911 2024.07.08 22:09:05.177 2024.07.08 22:09:05.541
174 6.0.0.389 2024.07.05 cc71c P P 540 317 2024.07.05 23:41:00.633 2024.07.05 23:41:01.173 2024.07.05 22:08:49.594 2024.07.05 22:08:49.911
175 6.0.0.388 2024.06.30 e5700 P P 388 322 2024.06.30 23:37:01.285 2024.06.30 23:37:01.673 2024.06.30 22:09:19.465 2024.06.30 22:09:19.787
176 6.0.0.387 2024.06.27 7c28a P P 379 323 2024.06.27 23:36:03.144 2024.06.27 23:36:03.523 2024.06.27 22:09:03.409 2024.06.27 22:09:03.732
177 6.0.0.386 2024.06.23 7c57f P P 589 353 2024.06.23 23:33:16.752 2024.06.23 23:33:17.341 2024.06.23 22:07:44.336 2024.06.23 22:07:44.689
178 6.0.0.384 2024.06.21 24d99 F P 384 345 2024.06.21 23:37:59.065 2024.06.21 23:37:59.449 2024.06.21 22:09:08.428 2024.06.21 22:09:08.773
179 6.0.0.374 2024.06.13 0097d F P 406 398 2024.06.20 23:35:58.225 2024.06.20 23:35:58.631 2024.06.20 22:08:17.658 2024.06.20 22:08:18.056
180 6.0.0.373 2024.06.09 363f0 P P 503 280 2024.06.13 13:44:02.139 2024.06.13 13:44:02.642 2024.06.13 12:32:00.379 2024.06.13 12:32:00.659
181 6.0.0.371 2024.06.08 f7130 P P 547 199 2024.06.11 22:30:34.568 2024.06.11 22:30:35.115 2024.06.11 21:25:38.770 2024.06.11 21:25:38.969
182 6.0.0.366 2024.05.30 ab2c9 F P 937 219 2024.06.12 09:43:55.245 2024.06.12 09:43:56.182 2024.06.12 07:59:49.340 2024.06.12 07:59:49.559
183 6.0.0.363 2024.05.27 06703 P P 501 211 2024.06.12 14:37:15.723 2024.06.12 14:37:16.224 2024.06.12 13:28:38.096 2024.06.12 13:28:38.307
184 6.0.0.359 2024.05.23 9cb11 P P 470 223 2024.06.12 12:29:21.010 2024.06.12 12:29:21.480 2024.06.12 11:21:13.981 2024.06.12 11:21:14.204
185 6.0.0.358 2024.05.21 995dd P P 498 196 2024.06.12 17:12:08.738 2024.06.12 17:12:09.236 2024.06.12 16:06:05.281 2024.06.12 16:06:05.477
186 6.0.0.357 2024.05.18 bf6c4 P P 479 234 2024.06.12 21:48:34.227 2024.06.12 21:48:34.706 2024.06.12 20:41:57.033 2024.06.12 20:41:57.267
187 6.0.0.356 2024.05.17 eab06 P P 493 204 2024.06.13 05:54:56.630 2024.06.13 05:54:57.123 2024.06.13 04:48:39.698 2024.06.13 04:48:39.902
188 6.0.0.355 2024.05.16 8dd6e P P 490 222 2024.06.13 08:02:45.930 2024.06.13 08:02:46.420 2024.06.13 06:56:10.461 2024.06.13 06:56:10.683
189 6.0.0.354 2024.05.15 d3adc P P 515 275 2024.06.13 11:08:32.930 2024.06.13 11:08:33.445 2024.06.13 09:57:16.147 2024.06.13 09:57:16.422
190 6.0.0.351 2024.05.14 2e3e0 P P 469 322 2024.06.13 16:22:22.468 2024.06.13 16:22:22.937 2024.06.13 15:10:30.400 2024.06.13 15:10:30.722

Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):