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       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       4       9 BYE                                               0        0 firebird
  - TMP_ECP_FREQ       5       9 NEW                                               0        0 firebird
  + TMP_ECP_FREQ       5      10 NEW                                               0        0 firebird
  - TMP_ECP_FREQ       5      10 RUN DML                                           0        0 firebird
  + TMP_ECP_FREQ       5      11 RUN DML                                           0        0 firebird
  - TMP_ECP_FREQ       5      11 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  + TMP_ECP_FREQ       5      12 MOVE INTO POOL: ACTIVE -> IDLE                    0        0 firebird
  - TMP_ECP_FREQ       5      12 TAKE FROM POOL: IDLE -> ACTIVE                    0        0 firebird
  + TMP_ECP_FREQ       5      13 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

LOG DETAILS:

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

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.07.01 44e00 F F 29160 27612 2025.07.01 14:42:18.922 2025.07.01 14:42:48.082 2025.07.01 12:55:57.906 2025.07.01 12:56:25.518
2 6.0.0.881 2025.06.27 7035d P P 28994 27280 2025.07.01 03:27:47.942 2025.07.01 03:28:16.936 2025.07.01 01:43:08.839 2025.07.01 01:43:36.119
3 6.0.0.877 2025.06.26 8e38f P P 29015 27253 2025.06.27 03:28:36.363 2025.06.27 03:29:05.378 2025.06.27 01:43:22.276 2025.06.27 01:43:49.529
4 6.0.0.876 2025.06.25 b1bec P P 28967 27237 2025.06.26 03:33:52.688 2025.06.26 03:34:21.655 2025.06.26 01:48:58.041 2025.06.26 01:49:25.278
5 6.0.0.863 2025.06.24 c3c20 P P 29092 27249 2025.06.25 08:18:09.872 2025.06.25 08:18:38.964 2025.06.25 01:43:00.850 2025.06.25 01:43:28.099
6 6.0.0.858 2025.06.24 cbbbf P P 28972 27252 2025.06.24 18:00:33.887 2025.06.24 18:01:02.859 2025.06.24 16:14:55.144 2025.06.24 16:15:22.396
7 6.0.0.858 2025.06.23 d377c P P 29143 27246 2025.06.24 09:12:37.334 2025.06.24 09:13:06.477 2025.06.24 07:27:05.003 2025.06.24 07:27:32.249
8 6.0.0.854 2025.06.23 10b58 P P 29056 27242 2025.06.23 15:53:25.989 2025.06.23 15:53:55.045 2025.06.23 14:06:57.493 2025.06.23 14:07:24.735
9 6.0.0.849 2025.06.20 7b79c P P 28963 27250 2025.06.21 03:31:45.492 2025.06.21 03:32:14.455 2025.06.21 01:43:35.679 2025.06.21 01:44:02.929
10 6.0.0.848 2025.06.19 c483c F P 29483 27245 2025.06.20 03:31:28.123 2025.06.20 03:31:57.606 2025.06.20 01:43:20.919 2025.06.20 01:43:48.164
11 6.0.0.845 2025.06.18 20191 P P 28980 27260 2025.06.19 03:30:53.776 2025.06.19 03:31:22.756 2025.06.19 01:43:02.914 2025.06.19 01:43:30.174
12 6.0.0.843 2025.06.16 995f4 P P 29278 27282 2025.06.18 03:30:40.259 2025.06.18 03:31:09.537 2025.06.18 01:42:36.013 2025.06.18 01:43:03.295
13 6.0.0.840 2025.06.14 29bca P P 29056 27335 2025.06.15 03:41:45.454 2025.06.15 03:42:14.510 2025.06.15 01:48:25.853 2025.06.15 01:48:53.188
14 6.0.0.838 2025.06.13 0e28a P P 29190 27581 2025.06.14 03:39:56.248 2025.06.14 03:40:25.438 2025.06.14 01:46:49.766 2025.06.14 01:47:17.347
15 6.0.0.834 2025.06.11 e889f P P 29333 27314 2025.06.12 03:35:40.777 2025.06.12 03:36:10.110 2025.06.12 01:45:57.132 2025.06.12 01:46:24.446
16 6.0.0.800 2025.06.10 1f226 P P 28939 27191 2025.06.11 02:20:17.756 2025.06.11 02:20:46.695 2025.06.11 01:08:47.801 2025.06.11 01:09:14.992
17 6.0.0.799 2025.06.07 be644 P P 28845 27177 2025.06.10 02:20:08.301 2025.06.10 02:20:37.146 2025.06.10 01:08:15.303 2025.06.10 01:08:42.480
18 6.0.0.797 2025.06.06 303e8 P P 29019 27168 2025.06.07 02:18:33.503 2025.06.07 02:19:02.522 2025.06.07 01:07:56.932 2025.06.07 01:08:24.100
19 6.0.0.795 2025.05.29 7a71a P P 28850 27143 2025.06.06 02:18:02.768 2025.06.06 02:18:31.618 2025.06.06 01:07:34.123 2025.06.06 01:08:01.266
20 6.0.0.792 2025.05.28 ee5a8 P P 28830 27145 2025.05.29 02:16:29.082 2025.05.29 02:16:57.912 2025.05.29 01:07:04.807 2025.05.29 01:07:31.952
21 6.0.0.791 2025.05.27 02db8 P P 28827 27791 2025.05.28 02:16:55.843 2025.05.28 02:17:24.670 2025.05.28 01:06:45.342 2025.05.28 01:07:13.133
22 6.0.0.789 2025.05.21 64051 P P 28841 27168 2025.05.25 02:16:38.180 2025.05.25 02:17:07.021 2025.05.25 01:07:24.441 2025.05.25 01:07:51.609
23 6.0.0.787 2025.05.20 230ad P P 28876 27159 2025.05.21 02:15:31.534 2025.05.21 02:16:00.410 2025.05.21 01:06:16.504 2025.05.21 01:06:43.663
24 6.0.0.783 2025.05.12 37320 P P 28912 27143 2025.05.19 02:15:08.662 2025.05.19 02:15:37.574 2025.05.19 01:06:23.402 2025.05.19 01:06:50.545
25 6.0.0.779 2025.05.11 136fa P P 28796 27144 2025.05.12 02:17:30.186 2025.05.12 02:17:58.982 2025.05.12 01:07:46.287 2025.05.12 01:08:13.431
26 6.0.0.778 2025.05.07 d735e P P 28838 27354 2025.05.11 02:16:54.192 2025.05.11 02:17:23.030 2025.05.11 01:07:14.572 2025.05.11 01:07:41.926
27 6.0.0.776 2025.05.06 007cd P P 28865 27393 2025.05.07 02:16:06.719 2025.05.07 02:16:35.584 2025.05.07 01:06:53.387 2025.05.07 01:07:20.780
28 6.0.0.770 2025.05.05 82c4a P P 28780 27180 2025.05.06 02:16:37.373 2025.05.06 02:17:06.153 2025.05.06 01:07:32.619 2025.05.06 01:07:59.799
29 6.0.0.767 2025.05.01 cdd29 P P 28821 27308 2025.05.02 02:17:02.289 2025.05.02 02:17:31.110 2025.05.02 01:07:53.430 2025.05.02 01:08:20.738
30 6.0.0.762 2025.04.30 5cb15 P P 28805 27154 2025.05.01 02:15:46.638 2025.05.01 02:16:15.443 2025.05.01 01:07:04.672 2025.05.01 01:07:31.826
31 6.0.0.755 2025.04.29 739c6 P P 28834 27155 2025.04.30 02:15:32.379 2025.04.30 02:16:01.213 2025.04.30 01:06:46.763 2025.04.30 01:07:13.918
32 6.0.0.753 2025.04.27 29ab3 P P 28774 27147 2025.04.29 02:15:42.146 2025.04.29 02:16:10.920 2025.04.29 01:07:08.043 2025.04.29 01:07:35.190
33 6.0.0.745 2025.04.21 78ad8 P P 28834 27255 2025.04.26 02:17:32.538 2025.04.26 02:18:01.372 2025.04.26 01:07:37.659 2025.04.26 01:08:04.914
34 6.0.0.744 2025.04.19 e883a P P 28898 27177 2025.04.20 02:16:48.924 2025.04.20 02:17:17.822 2025.04.20 01:07:13.881 2025.04.20 01:07:41.058
35 6.0.0.742 2025.04.17 abc3b P P 28839 27192 2025.04.19 02:16:20.737 2025.04.19 02:16:49.576 2025.04.19 01:07:00.867 2025.04.19 01:07:28.059
36 6.0.0.737 2025.04.16 fe52b P P 28813 27188 2025.04.17 02:16:41.048 2025.04.17 02:17:09.861 2025.04.17 01:07:26.949 2025.04.17 01:07:54.137
37 6.0.0.736 2025.04.14 3e6be P P 28811 27222 2025.04.15 02:17:37.538 2025.04.15 02:18:06.349 2025.04.15 01:07:29.423 2025.04.15 01:07:56.645
38 6.0.0.735 2025.04.13 6635c P P 28782 27220 2025.04.14 02:16:40.012 2025.04.14 02:17:08.794 2025.04.14 01:07:45.479 2025.04.14 01:08:12.699
39 6.0.0.734 2025.04.12 e2fd1 P P 28750 27170 2025.04.13 02:14:12.858 2025.04.13 02:14:41.608 2025.04.13 01:06:22.815 2025.04.13 01:06:49.985
40 6.0.0.730 2025.04.11 240b8 P P 28855 27202 2025.04.12 02:23:47.135 2025.04.12 02:24:15.990 2025.04.12 01:10:50.980 2025.04.12 01:11:18.182
41 6.0.0.726 2025.04.10 d79c6 P P 28861 27206 2025.04.11 02:24:15.034 2025.04.11 02:24:43.895 2025.04.11 01:10:39.601 2025.04.11 01:11:06.807
42 6.0.0.725 2025.04.09 a2b05 P P 28887 27191 2025.04.10 02:23:08.030 2025.04.10 02:23:36.917 2025.04.10 01:10:23.701 2025.04.10 01:10:50.892
43 6.0.0.722 2025.04.08 a8b86 P P 29093 27197 2025.04.09 02:17:06.861 2025.04.09 02:17:35.954 2025.04.09 01:07:10.323 2025.04.09 01:07:37.520
44 6.0.0.719 2025.04.06 90fd9 P P 28840 27251 2025.04.08 02:17:03.177 2025.04.08 02:17:32.017 2025.04.08 01:07:28.439 2025.04.08 01:07:55.690
45 6.0.0.717 2025.04.04 53d70 P P 28791 27205 2025.04.05 02:17:04.996 2025.04.05 02:17:33.787 2025.04.05 01:07:18.900 2025.04.05 01:07:46.105
46 6.0.0.716 2025.04.03 fc636 P P 28806 27197 2025.04.04 02:17:07.905 2025.04.04 02:17:36.711 2025.04.04 01:07:27.911 2025.04.04 01:07:55.108
47 6.0.0.715 2025.04.02 907ed P P 28841 27231 2025.04.03 02:17:17.532 2025.04.03 02:17:46.373 2025.04.03 01:07:31.588 2025.04.03 01:07:58.819
48 6.0.0.710 2025.04.01 40651 P P 28875 27184 2025.04.02 02:17:06.511 2025.04.02 02:17:35.386 2025.04.02 01:07:47.857 2025.04.02 01:08:15.041
49 6.0.0.708 2025.03.31 cb069 P P 28795 27207 2025.04.01 02:16:33.536 2025.04.01 02:17:02.331 2025.04.01 01:07:00.706 2025.04.01 01:07:27.913
50 6.0.0.707 2025.03.28 4bd4f P P 28822 27190 2025.03.31 02:17:07.941 2025.03.31 02:17:36.763 2025.03.31 01:07:06.034 2025.03.31 01:07:33.224
51 6.0.0.702 2025.03.27 86f4d P E 28958 2460 2025.03.28 02:34:30.839 2025.03.28 02:34:59.797 2025.03.28 01:20:24.760 2025.03.28 01:20:27.220
52 6.0.0.698 2025.03.26 d72a7 P P 28914 27261 2025.03.27 16:00:38.947 2025.03.27 16:01:07.861 2025.03.27 14:48:46.032 2025.03.27 14:49:13.293
53 6.0.0.693 2025.03.25 8aac2 P P 28926 27272 2025.03.26 02:21:19.673 2025.03.26 02:21:48.599 2025.03.26 01:09:15.539 2025.03.26 01:09:42.811
54 6.0.0.693 2025.03.24 0b559 P P 28942 27280 2025.03.25 02:21:52.084 2025.03.25 02:22:21.026 2025.03.25 01:09:20.428 2025.03.25 01:09:47.708
55 6.0.0.687 2025.03.22 730aa P P 29157 27233 2025.03.24 02:21:40.327 2025.03.24 02:22:09.484 2025.03.24 01:09:47.223 2025.03.24 01:10:14.456
56 6.0.0.686 2025.03.20 71bf6 P P 28873 27189 2025.03.21 02:17:42.313 2025.03.21 02:18:11.186 2025.03.21 01:07:50.730 2025.03.21 01:08:17.919
57 6.0.0.685 2025.03.19 a8577 P P 28822 27202 2025.03.20 02:18:04.454 2025.03.20 02:18:33.276 2025.03.20 01:08:13.455 2025.03.20 01:08:40.657
58 6.0.0.680 2025.03.18 90d29 P P 28984 27195 2025.03.19 02:18:22.283 2025.03.19 02:18:51.267 2025.03.19 01:08:21.651 2025.03.19 01:08:48.846
59 6.0.0.677 2025.03.16 c0a60 P P 28789 27196 2025.03.18 02:14:40.987 2025.03.18 02:15:09.776 2025.03.18 01:06:38.281 2025.03.18 01:07:05.477
60 6.0.0.676 2025.03.15 11cfb P P 28781 27211 2025.03.16 02:14:02.168 2025.03.16 02:14:30.949 2025.03.16 01:05:42.944 2025.03.16 01:06:10.155
61 6.0.0.674 2025.03.14 7d82c P P 28802 27229 2025.03.15 02:12:48.750 2025.03.15 02:13:17.552 2025.03.15 01:06:08.252 2025.03.15 01:06:35.481
62 6.0.0.673 2025.03.13 40f5b P P 28768 27340 2025.03.14 14:43:20.164 2025.03.14 14:43:48.932 2025.03.14 13:36:01.991 2025.03.14 13:36:29.331
63 6.0.0.671 2025.03.12 a4fff P P 29458 27257 2025.03.13 02:18:31.902 2025.03.13 02:19:01.360 2025.03.13 01:08:14.216 2025.03.13 01:08:41.473
64 6.0.0.663 2025.03.11 65970 P P 28916 27263 2025.03.12 02:17:56.998 2025.03.12 02:18:25.914 2025.03.12 01:08:04.263 2025.03.12 01:08:31.526
65 6.0.0.661 2025.03.07 b9869 P P 28966 27254 2025.03.11 02:18:26.517 2025.03.11 02:18:55.483 2025.03.11 01:07:57.520 2025.03.11 01:08:24.774
66 6.0.0.660 2025.03.04 a6700 P P 29105 27206 2025.03.06 02:18:20.839 2025.03.06 02:18:49.944 2025.03.06 01:07:47.846 2025.03.06 01:08:15.052
67 6.0.0.658 2025.03.03 f15f8 P P 29543 27208 2025.03.04 02:14:52.103 2025.03.04 02:15:21.646 2025.03.04 01:06:42.752 2025.03.04 01:07:09.960
68 6.0.0.656 2025.02.27 25fb4 P P 28838 27243 2025.03.03 02:15:06.217 2025.03.03 02:15:35.055 2025.03.03 01:06:47.865 2025.03.03 01:07:15.108
69 6.0.0.655 2025.02.25 6e3e0 P P 28948 27258 2025.02.27 02:16:24.641 2025.02.27 02:16:53.589 2025.02.27 01:07:06.317 2025.02.27 01:07:33.575
70 6.0.0.654 2025.02.24 b7141 P P 28975 27191 2025.02.25 02:12:48.980 2025.02.25 02:13:17.955 2025.02.25 01:05:33.251 2025.02.25 01:06:00.442
71 6.0.0.652 2025.02.22 22662 P P 28813 27205 2025.02.24 02:12:03.821 2025.02.24 02:12:32.634 2025.02.24 01:04:55.493 2025.02.24 01:05:22.698
72 6.0.0.647 2025.02.21 9fccb P P 28780 27192 2025.02.22 02:10:46.583 2025.02.22 02:11:15.363 2025.02.22 01:04:28.112 2025.02.22 01:04:55.304
73 6.0.0.640 2025.02.19 9b8ac P P 28876 27210 2025.02.20 02:12:14.329 2025.02.20 02:12:43.205 2025.02.20 01:05:01.396 2025.02.20 01:05:28.606
74 6.0.0.639 2025.02.18 201a4 P P 28953 27226 2025.02.19 02:12:58.228 2025.02.19 02:13:27.181 2025.02.19 01:05:45.807 2025.02.19 01:06:13.033
75 6.0.0.637 2025.02.12 6d0f5 P P 28840 27255 2025.02.14 02:13:46.455 2025.02.14 02:14:15.295 2025.02.14 01:06:16.252 2025.02.14 01:06:43.507
76 6.0.0.636 2025.02.11 0424f P P 28813 27218 2025.02.12 02:13:10.541 2025.02.12 02:13:39.354 2025.02.12 01:05:37.688 2025.02.12 01:06:04.906
77 6.0.0.635 2025.02.10 f640f P P 28819 27251 2025.02.11 02:12:38.423 2025.02.11 02:13:07.242 2025.02.11 01:05:25.338 2025.02.11 01:05:52.589
78 6.0.0.629 2025.02.07 194f9 P P 28823 27221 2025.02.08 02:12:33.487 2025.02.08 02:13:02.310 2025.02.08 01:05:22.239 2025.02.08 01:05:49.460
79 6.0.0.628 2025.02.06 859d5 P P 29028 27212 2025.02.07 11:16:20.152 2025.02.07 11:16:49.180 2025.02.07 10:02:44.955 2025.02.07 10:03:12.167
80 6.0.0.621 2025.02.05 34fe7 P P 28811 27264 2025.02.07 02:26:20.718 2025.02.07 02:26:49.529 2025.02.07 01:12:24.551 2025.02.07 01:12:51.815
81 6.0.0.609 2025.02.04 76d57 P P 28879 27277 2025.02.05 02:26:03.524 2025.02.05 02:26:32.403 2025.02.05 01:12:29.033 2025.02.05 01:12:56.310
82 6.0.0.607 2025.02.03 1985b P P 28840 27218 2025.02.04 02:26:00.688 2025.02.04 02:26:29.528 2025.02.04 01:12:06.964 2025.02.04 01:12:34.182
83 6.0.0.601 2025.02.01 6af07 P P 29088 27330 2025.02.02 02:12:21.452 2025.02.02 02:12:50.540 2025.02.02 01:05:29.394 2025.02.02 01:05:56.724
84 6.0.0.600 2025.01.27 188de P P 28834 27201 2025.01.28 02:12:26.187 2025.01.28 02:12:55.021 2025.01.28 01:05:06.330 2025.01.28 01:05:33.531
85 6.0.0.599 2025.01.25 ba588 P P 28827 27220 2025.01.26 02:12:06.598 2025.01.26 02:12:35.425 2025.01.26 01:05:11.737 2025.01.26 01:05:38.957
86 6.0.0.598 2025.01.23 ddbc3 P P 28799 27333 2025.01.25 12:00:42.256 2025.01.25 12:01:11.055 2025.01.25 10:53:06.545 2025.01.25 10:53:33.878
87 6.0.0.595 2025.01.22 e62f3 P P 28790 27307 2025.01.23 02:12:32.408 2025.01.23 02:13:01.198 2025.01.23 01:05:07.437 2025.01.23 01:05:34.744
88 6.0.0.594 2025.01.21 47fb6 P P 28823 27202 2025.01.22 02:11:58.583 2025.01.22 02:12:27.406 2025.01.22 01:05:03.283 2025.01.22 01:05:30.485
89 6.0.0.590 2025.01.20 3d7c0 P P 28808 27214 2025.01.21 02:12:13.790 2025.01.21 02:12:42.598 2025.01.21 01:04:58.078 2025.01.21 01:05:25.292
90 6.0.0.588 2025.01.19 b1c4e P P 28811 27260 2025.01.20 02:11:39.072 2025.01.20 02:12:07.883 2025.01.20 01:04:51.680 2025.01.20 01:05:18.940
91 6.0.0.587 2025.01.18 63e6e P P 28861 27273 2025.01.19 02:11:27.192 2025.01.19 02:11:56.053 2025.01.19 01:04:44.591 2025.01.19 01:05:11.864
92 6.0.0.585 2025.01.16 2d6bb P P 28720 27188 2025.01.18 02:09:41.449 2025.01.18 02:10:10.169 2025.01.18 01:05:03.558 2025.01.18 01:05:30.746
93 6.0.0.584 2025.01.15 a0aa2 P P 28809 27227 2025.01.16 02:13:59.828 2025.01.16 02:14:28.637 2025.01.16 01:06:09.240 2025.01.16 01:06:36.467
94 6.0.0.581 2025.01.15 69690 P P 28887 27264 2025.01.15 18:23:42.359 2025.01.15 18:24:11.246 2025.01.15 17:14:47.781 2025.01.15 17:15:15.045
95 6.0.0.581 2025.01.14 21e9e P P 28932 27276 2025.01.15 02:12:59.187 2025.01.15 02:13:28.119 2025.01.15 01:05:53.012 2025.01.15 01:06:20.288
96 6.0.0.577 2025.01.14 91dce P P 28917 27192 2025.01.14 17:34:14.112 2025.01.14 17:34:43.029 2025.01.14 16:26:43.625 2025.01.14 16:27:10.817
97 6.0.0.577 2025.01.13 7e293 P P 28810 27209 2025.01.14 11:56:51.946 2025.01.14 11:57:20.756 2025.01.14 10:49:56.555 2025.01.14 10:50:23.764
98 6.0.0.576 2025.01.12 05898 P P 28843 27205 2025.01.13 02:14:28.225 2025.01.13 02:14:57.068 2025.01.13 01:06:03.194 2025.01.13 01:06:30.399
99 6.0.0.573 2025.01.10 c20f3 P P 28808 27300 2025.01.11 02:14:23.535 2025.01.11 02:14:52.343 2025.01.11 01:06:19.004 2025.01.11 01:06:46.304
100 6.0.0.571 2024.12.31 81bba P P 29015 27223 2025.01.01 02:13:23.017 2025.01.01 02:13:52.032 2025.01.01 01:05:38.057 2025.01.01 01:06:05.280
101 6.0.0.570 2024.12.30 c3c8d P P 28804 27209 2024.12.31 02:12:58.244 2024.12.31 02:13:27.048 2024.12.31 01:05:56.675 2024.12.31 01:06:23.884
102 6.0.0.565 2024.12.28 5fc59 P P 28849 27258 2024.12.29 18:08:21.225 2024.12.29 18:08:50.074 2024.12.29 17:01:07.245 2024.12.29 17:01:34.503
103 6.0.0.564 2024.12.26 12514 P P 28812 27266 2024.12.27 02:12:32.280 2024.12.27 02:13:01.092 2024.12.27 01:05:30.046 2024.12.27 01:05:57.312
104 6.0.0.560 2024.12.25 fa83e P P 28983 27200 2024.12.26 02:13:20.428 2024.12.26 02:13:49.411 2024.12.26 01:05:36.227 2024.12.26 01:06:03.427
105 6.0.0.559 2024.12.23 cc800 P P 28802 27241 2024.12.25 02:12:36.397 2024.12.25 02:13:05.199 2024.12.25 01:05:34.060 2024.12.25 01:06:01.301
106 6.0.0.556 2024.12.22 a0404 P P 28818 27217 2024.12.23 02:12:29.205 2024.12.23 02:12:58.023 2024.12.23 01:05:14.508 2024.12.23 01:05:41.725
107 6.0.0.555 2024.12.19 6990a P P 28852 27259 2024.12.21 13:07:22.118 2024.12.21 13:07:50.970 2024.12.21 11:59:33.023 2024.12.21 12:00:00.282
108 6.0.0.553 2024.12.17 d1f8a P P 28872 27260 2024.12.18 02:11:40.292 2024.12.18 02:12:09.164 2024.12.18 01:05:07.852 2024.12.18 01:05:35.112
109 6.0.0.552 2024.12.11 85e25 P P 28865 27189 2024.12.16 02:11:10.620 2024.12.16 02:11:39.485 2024.12.16 01:04:54.477 2024.12.16 01:05:21.666
110 6.0.0.550 2024.12.10 b37ac P P 30445 27205 2024.12.11 02:14:45.166 2024.12.11 02:15:15.611 2024.12.11 01:05:22.241 2024.12.11 01:05:49.446
111 6.0.0.548 2024.12.08 2cc77 F P 29476 27651 2024.12.09 02:15:49.089 2024.12.09 02:16:18.565 2024.12.09 01:07:11.675 2024.12.09 01:07:39.326
112 6.0.0.544 2024.12.05 96943 P P 29110 27234 2024.12.06 02:10:18.701 2024.12.06 02:10:47.811 2024.12.06 01:03:57.416 2024.12.06 01:04:24.650
113 6.0.0.543 2024.12.03 30b77 P P 28866 27213 2024.12.04 02:10:16.026 2024.12.04 02:10:44.892 2024.12.04 01:04:37.410 2024.12.04 01:05:04.623
114 6.0.0.540 2024.12.02 4a1f4 P P 28863 27195 2024.12.03 02:09:34.161 2024.12.03 02:10:03.024 2024.12.03 01:03:52.296 2024.12.03 01:04:19.491
115 6.0.0.539 2024.11.28 1f283 P P 28857 27328 2024.11.30 02:09:00.122 2024.11.30 02:09:28.979 2024.11.30 01:03:39.762 2024.11.30 01:04:07.090
116 6.0.0.535 2024.11.27 6551a P P 29445 27208 2024.11.28 02:07:42.567 2024.11.28 02:08:12.012 2024.11.28 01:03:01.442 2024.11.28 01:03:28.650
117 6.0.0.535 2024.11.26 77b95 P P 28817 27351 2024.11.27 02:07:59.630 2024.11.27 02:08:28.447 2024.11.27 01:03:17.253 2024.11.27 01:03:44.604
118 6.0.0.534 2024.11.25 e9584 P P 28905 27425 2024.11.26 02:08:13.623 2024.11.26 02:08:42.528 2024.11.26 01:03:04.854 2024.11.26 01:03:32.279
119 6.0.0.533 2024.11.17 933ac P P 28845 27220 2024.11.22 02:08:51.998 2024.11.22 02:09:20.843 2024.11.22 01:03:33.384 2024.11.22 01:04:00.604
120 6.0.0.532 2024.11.17 1a471 P P 28873 27209 2024.11.17 14:42:37.111 2024.11.17 14:43:05.984 2024.11.17 13:37:59.080 2024.11.17 13:38:26.289
121 6.0.0.532 2024.11.16 9e263 F P 29758 27203 2024.11.17 02:07:27.923 2024.11.17 02:07:57.681 2024.11.17 01:02:43.609 2024.11.17 01:03:10.812
122 6.0.0.530 2024.11.15 49804 P P 28764 27405 2024.11.16 02:05:07.374 2024.11.16 02:05:36.138 2024.11.16 01:02:42.692 2024.11.16 01:03:10.097
123 6.0.0.528 2024.11.14 9625b P P 28830 27248 2024.11.15 02:10:08.721 2024.11.15 02:10:37.551 2024.11.15 01:04:24.428 2024.11.15 01:04:51.676
124 6.0.0.526 2024.11.12 65b80 P P 29048 27182 2024.11.14 02:09:16.883 2024.11.14 02:09:45.931 2024.11.14 01:03:44.054 2024.11.14 01:04:11.236
125 6.0.0.523 2024.11.08 8ca23 P P 28818 27277 2024.11.11 02:07:30.461 2024.11.11 02:07:59.279 2024.11.11 01:03:04.589 2024.11.11 01:03:31.866
126 6.0.0.520 2024.11.08 52657 P P 28811 27186 2024.11.08 18:40:55.940 2024.11.08 18:41:24.751 2024.11.08 17:37:37.367 2024.11.08 17:38:04.553
127 6.0.0.520 2024.11.07 4eefa P P 28847 27190 2024.11.08 02:06:34.136 2024.11.08 02:07:02.983 2024.11.08 01:03:03.887 2024.11.08 01:03:31.077
128 6.0.0.516 2024.11.04 b0c36 P P 28844 27204 2024.11.05 02:07:39.948 2024.11.05 02:08:08.792 2024.11.05 01:02:54.567 2024.11.05 01:03:21.771
129 6.0.0.515 2024.10.30 d53f3 P P 28804 27252 2024.11.04 02:07:15.471 2024.11.04 02:07:44.275 2024.11.04 01:02:55.711 2024.11.04 01:03:22.963
130 6.0.0.512 2024.10.29 833ef P P 28830 27209 2024.10.30 02:09:47.110 2024.10.30 02:10:15.940 2024.10.30 01:04:00.666 2024.10.30 01:04:27.875
131 6.0.0.511 2024.10.26 c4bc9 P P 28852 27321 2024.10.29 02:09:26.265 2024.10.29 02:09:55.117 2024.10.29 01:03:43.211 2024.10.29 01:04:10.532
132 6.0.0.508 2024.10.24 a8f5b P P 28969 27256 2024.10.26 10:18:07.858 2024.10.26 10:18:36.827 2024.10.26 09:10:12.689 2024.10.26 09:10:39.945
133 6.0.0.502 2024.10.22 6bfd7 P P 28956 27284 2024.10.23 02:09:15.636 2024.10.23 02:09:44.592 2024.10.23 01:03:24.892 2024.10.23 01:03:52.176
134 6.0.0.500 2024.10.21 be565 P P 29329 27210 2024.10.22 02:09:29.231 2024.10.22 02:09:58.560 2024.10.22 01:03:38.975 2024.10.22 01:04:06.185
135 6.0.0.499 2024.10.19 6214b P P 28882 27207 2024.10.20 02:08:25.814 2024.10.20 02:08:54.696 2024.10.20 01:03:23.113 2024.10.20 01:03:50.320
136 6.0.0.498 2024.10.18 591a7 P P 28979 27190 2024.10.19 02:08:14.441 2024.10.19 02:08:43.420 2024.10.19 01:02:48.074 2024.10.19 01:03:15.264
137 6.0.0.494 2024.10.17 042ce P P 28821 27278 2024.10.18 02:08:30.825 2024.10.18 02:08:59.646 2024.10.18 01:03:11.809 2024.10.18 01:03:39.087
138 6.0.0.491 2024.10.14 dc5fb P P 28842 27319 2024.10.15 02:08:07.201 2024.10.15 02:08:36.043 2024.10.15 01:02:49.894 2024.10.15 01:03:17.213
139 6.0.0.489 2024.10.11 2ba59 P P 28820 27202 2024.10.12 02:07:35.993 2024.10.12 02:08:04.813 2024.10.12 01:02:32.881 2024.10.12 01:03:00.083
140 6.0.0.488 2024.10.09 1c93e P P 28754 27206 2024.10.10 02:07:17.885 2024.10.10 02:07:46.639 2024.10.10 01:02:54.799 2024.10.10 01:03:22.005
141 6.0.0.487 2024.10.06 065a3 P P 29031 27204 2024.10.07 02:08:49.192 2024.10.07 02:09:18.223 2024.10.07 01:03:38.723 2024.10.07 01:04:05.927
142 6.0.0.485 2024.10.05 9f5f7 P P 28845 27400 2024.10.06 02:08:28.621 2024.10.06 02:08:57.466 2024.10.06 01:03:13.456 2024.10.06 01:03:40.856
143 6.0.0.485 2024.10.04 e95c1 P P 28963 27229 2024.10.05 02:08:21.269 2024.10.05 02:08:50.232 2024.10.05 01:02:56.313 2024.10.05 01:03:23.542
144 6.0.0.483 2024.10.02 5e5ae P P 28898 27204 2024.10.03 02:09:33.475 2024.10.03 02:10:02.373 2024.10.03 01:03:38.165 2024.10.03 01:04:05.369
145 6.0.0.478 2024.09.30 b5010 P P 29456 27189 2024.10.01 02:08:32.486 2024.10.01 02:09:01.942 2024.10.01 01:03:08.880 2024.10.01 01:03:36.069
146 6.0.0.474 2024.09.26 e4efb P P 28936 27215 2024.09.30 02:08:23.617 2024.09.30 02:08:52.553 2024.09.30 01:03:06.076 2024.09.30 01:03:33.291
147 6.0.0.471 2024.09.25 dab71 P P 28835 27220 2024.09.26 02:08:06.494 2024.09.26 02:08:35.329 2024.09.26 01:03:16.792 2024.09.26 01:03:44.012
148 6.0.0.471 2024.09.24 01b51 P P 28811 27209 2024.09.25 02:08:56.155 2024.09.25 02:09:24.966 2024.09.25 01:03:40.683 2024.09.25 01:04:07.892
149 6.0.0.470 2024.09.23 77cc0 F P 30050 27268 2024.09.24 02:08:07.452 2024.09.24 02:08:37.502 2024.09.24 01:03:23.914 2024.09.24 01:03:51.182
150 6.0.0.467 2024.09.21 ea0b8 P P 28781 27273 2024.09.23 02:09:21.499 2024.09.23 02:09:50.280 2024.09.23 01:04:20.874 2024.09.23 01:04:48.147
151 6.0.0.466 2024.09.20 32dc6 P P 28845 27197 2024.09.21 02:07:36.266 2024.09.21 02:08:05.111 2024.09.21 01:02:59.482 2024.09.21 01:03:26.679
152 6.0.0.461 2024.09.17 2c895 P P 28976 27196 2024.09.18 02:06:59.122 2024.09.18 02:07:28.098 2024.09.18 01:02:06.149 2024.09.18 01:02:33.345
153 6.0.0.460 2024.09.11 3c253 P P 28919 27240 2024.09.17 02:07:05.772 2024.09.17 02:07:34.691 2024.09.17 01:02:32.637 2024.09.17 01:02:59.877
154 6.0.0.457 2024.09.09 fdc6f P P 28874 27212 2024.09.10 02:07:55.564 2024.09.10 02:08:24.438 2024.09.10 01:02:44.731 2024.09.10 01:03:11.943
155 6.0.0.455 2024.09.07 500d8 P P 28857 27189 2024.09.08 02:08:09.426 2024.09.08 02:08:38.283 2024.09.08 01:03:22.742 2024.09.08 01:03:49.931
156 6.0.0.454 2024.09.05 4d70f P P 28834 27277 2024.09.06 02:08:19.100 2024.09.06 02:08:47.934 2024.09.06 01:03:17.860 2024.09.06 01:03:45.137
157 6.0.0.452 2024.09.04 9ff9c P P 28842 27499 2024.09.05 02:07:53.435 2024.09.05 02:08:22.277 2024.09.05 01:02:54.896 2024.09.05 01:03:22.395
158 6.0.0.450 2024.09.02 27124 P P 28851 27395 2024.09.04 02:08:16.511 2024.09.04 02:08:45.362 2024.09.04 01:03:14.937 2024.09.04 01:03:42.332
159 6.0.0.447 2024.09.01 901b4 P P 28873 27199 2024.09.02 01:58:27.214 2024.09.02 01:58:56.087 2024.09.02 00:52:48.729 2024.09.02 00:53:15.928
160 6.0.0.446 2024.08.30 fe1b2 P P 28901 27196 2024.09.01 01:57:01.649 2024.09.01 01:57:30.550 2024.09.01 00:52:48.827 2024.09.01 00:53:16.023
161 6.0.0.444 2024.08.28 785d4 P P 28864 27199 2024.08.30 01:57:25.128 2024.08.30 01:57:53.992 2024.08.30 00:53:07.236 2024.08.30 00:53:34.435
162 6.0.0.442 2024.08.21 4a68f P P 28831 27220 2024.08.28 01:57:04.126 2024.08.28 01:57:32.957 2024.08.28 00:52:46.548 2024.08.28 00:53:13.768
163 6.0.0.441 2024.08.20 75042 P P 29005 27198 2024.08.21 01:56:30.066 2024.08.21 01:56:59.071 2024.08.21 00:52:05.582 2024.08.21 00:52:32.780
164 6.0.0.438 2024.08.16 088b5 P P 29009 27217 2024.08.19 01:59:34.581 2024.08.19 02:00:03.590 2024.08.19 00:53:21.908 2024.08.19 00:53:49.125
165 6.0.0.437 2024.08.14 3c88b P P 29002 27448 2024.08.16 02:02:45.312 2024.08.16 02:03:14.314 2024.08.16 00:54:24.348 2024.08.16 00:54:51.796
166 6.0.0.436 2024.08.13 b8e75 P P 29551 27456 2024.08.14 02:01:23.270 2024.08.14 02:01:52.821 2024.08.14 00:53:42.164 2024.08.14 00:54:09.620
167 6.0.0.432 2024.08.11 e82ac P P 29131 27691 2024.08.13 01:59:56.790 2024.08.13 02:00:25.921 2024.08.13 00:53:14.120 2024.08.13 00:53:41.811
168 6.0.0.431 2024.08.11 16bb1 P P 29067 27229 2024.08.11 18:05:32.457 2024.08.11 18:06:01.524 2024.08.11 16:58:19.703 2024.08.11 16:58:46.932
169 6.0.0.431 2024.08.09 de5a7 P P 28965 27252 2024.08.10 17:37:50.847 2024.08.10 17:38:19.812 2024.08.10 16:32:00.744 2024.08.10 16:32:27.996
170 6.0.0.428 2024.08.08 9191b P P 29060 27571 2024.08.10 01:58:23.583 2024.08.10 01:58:52.643 2024.08.10 00:52:39.409 2024.08.10 00:53:06.980
171 6.0.0.423 2024.08.07 33b41 P P 29103 27240 2024.08.08 08:57:47.709 2024.08.08 08:58:16.812 2024.08.08 07:51:56.586 2024.08.08 07:52:23.826
172 6.0.0.421 2024.08.06 ed60d P P 29464 27189 2024.08.07 01:52:52.727 2024.08.07 01:53:22.191 2024.08.07 00:50:50.158 2024.08.07 00:51:17.347
173 6.0.0.419 2024.08.05 3505a P P 28960 27194 2024.08.06 01:50:49.588 2024.08.06 01:51:18.548 2024.08.06 00:50:02.705 2024.08.06 00:50:29.899
174 6.0.0.409 2024.08.02 ec18f P P 28943 27218 2024.08.05 01:50:00.415 2024.08.05 01:50:29.358 2024.08.05 00:49:20.336 2024.08.05 00:49:47.554
175 6.0.0.406 2024.08.01 b20be P P 29064 27595 2024.08.02 01:48:46.171 2024.08.02 01:49:15.235 2024.08.02 00:48:38.619 2024.08.02 00:49:06.214
176 6.0.0.405 2024.07.31 a62ac P P 28970 27300 2024.08.01 01:56:53.940 2024.08.01 01:57:22.910 2024.08.01 00:54:59.950 2024.08.01 00:55:27.250
177 6.0.0.403 2024.07.29 30f03 P P 28982 27236 2024.07.30 01:52:07.326 2024.07.30 01:52:36.308 2024.07.30 00:50:22.608 2024.07.30 00:50:49.844
178 6.0.0.401 2024.07.26 24e41 P P 29043 27233 2024.07.27 01:51:37.388 2024.07.27 01:52:06.431 2024.07.27 00:49:53.668 2024.07.27 00:50:20.901
179 6.0.0.400 2024.07.24 5bb78 P P 29126 27300 2024.07.25 01:52:07.052 2024.07.25 01:52:36.178 2024.07.25 00:50:22.099 2024.07.25 00:50:49.399
180 6.0.0.398 2024.07.23 85b18 P E 28977 2432 2024.07.24 02:15:28.430 2024.07.24 02:15:57.407 2024.07.24 01:08:41.961 2024.07.24 01:08:44.393
181 6.0.0.397 2024.07.22 c734c P P 28968 27198 2024.07.23 01:51:55.463 2024.07.23 01:52:24.431 2024.07.23 00:50:09.990 2024.07.23 00:50:37.188
182 6.0.0.396 2024.07.13 cf952 P P 29012 27204 2024.07.22 01:52:05.968 2024.07.22 01:52:34.980 2024.07.22 00:50:18.934 2024.07.22 00:50:46.138
183 6.0.0.395 2024.07.10 845f4 P P 28902 27201 2024.07.13 01:51:33.723 2024.07.13 01:52:02.625 2024.07.13 00:50:58.212 2024.07.13 00:51:25.413
184 6.0.0.392 2024.07.09 ea301 P P 28937 27163 2024.07.10 01:59:41.007 2024.07.10 02:00:09.944 2024.07.10 00:52:08.842 2024.07.10 00:52:36.005
185 6.0.0.391 2024.07.08 7d50c P P 29004 27270 2024.07.09 01:56:10.378 2024.07.09 01:56:39.382 2024.07.09 00:52:19.321 2024.07.09 00:52:46.591
186 6.0.0.389 2024.07.05 cc71c P P 29032 27209 2024.07.06 01:56:45.849 2024.07.06 01:57:14.881 2024.07.06 00:52:40.656 2024.07.06 00:53:07.865
187 6.0.0.388 2024.06.30 e5700 P P 29067 27185 2024.07.01 01:56:52.961 2024.07.01 01:57:22.028 2024.07.01 00:52:40.961 2024.07.01 00:53:08.146
188 6.0.0.387 2024.06.27 7c28a P P 28972 27423 2024.06.28 01:56:32.139 2024.06.28 01:57:01.111 2024.06.28 00:52:53.241 2024.06.28 00:53:20.664
189 6.0.0.386 2024.06.23 7c57f P P 29067 27240 2024.06.24 01:51:37.921 2024.06.24 01:52:06.988 2024.06.24 00:50:02.134 2024.06.24 00:50:29.374
190 6.0.0.384 2024.06.21 24d99 P P 29000 27194 2024.06.22 01:48:13.638 2024.06.22 01:48:42.638 2024.06.22 00:48:47.396 2024.06.22 00:49:14.590
191 6.0.0.374 2024.06.13 0097d P P 29110 27528 2024.06.21 18:35:10.166 2024.06.21 18:35:39.276 2024.06.21 17:35:26.545 2024.06.21 17:35:54.073
192 6.0.0.373 2024.06.09 363f0 P P 28972 27005 2024.06.12 23:49:21.940 2024.06.12 23:49:50.912 2024.06.12 22:53:18.157 2024.06.12 22:53:45.162
193 6.0.0.372 2024.06.08 9e7f2 P P 28691 26956 2024.06.09 19:14:51.109 2024.06.09 19:15:19.800 2024.06.09 18:22:01.155 2024.06.09 18:22:28.111
194 6.0.0.368 2024.06.03 25f3e P P 29104 27155 2024.06.15 12:10:48.809 2024.06.15 12:11:17.913 2024.06.15 11:12:23.435 2024.06.15 11:12:50.590
195 6.0.0.366 2024.05.28 8e46f P P 28737 26988 2024.06.10 20:08:57.920 2024.06.10 20:09:26.657 2024.06.10 19:15:46.288 2024.06.10 19:16:13.276
196 6.0.0.363 2024.05.28 95442 P P 28706 26987 2024.06.10 16:29:03.841 2024.06.10 16:29:32.547 2024.06.10 15:35:55.754 2024.06.10 15:36:22.741
197 6.0.0.363 2024.05.28 40d0b P P 28707 26988 2024.06.10 18:22:24.294 2024.06.10 18:22:53.001 2024.06.10 17:29:19.326 2024.06.10 17:29:46.314
198 6.0.0.362 2024.05.24 ecc49 P P 28941 26988 2024.05.24 23:49:10.428 2024.05.24 23:49:39.369 2024.05.24 22:53:13.150 2024.05.24 22:53:40.138
199 6.0.0.359 2024.05.23 9cb11 P P 29003 26987 2024.05.23 23:49:52.459 2024.05.23 23:50:21.462 2024.05.23 22:53:37.902 2024.05.23 22:54:04.889
200 6.0.0.358 2024.05.21 995dd P P 28956 26958 2024.05.22 23:49:43.459 2024.05.22 23:50:12.415 2024.05.22 22:53:14.997 2024.05.22 22:53:41.955
201 6.0.0.357 2024.05.18 bf6c4 P P 28958 26941 2024.05.20 23:48:42.887 2024.05.20 23:49:11.845 2024.05.20 22:53:11.956 2024.05.20 22:53:38.897
202 6.0.0.356 2024.05.17 eab06 P P 28972 26988 2024.05.17 23:48:40.635 2024.05.17 23:49:09.607 2024.05.17 22:53:20.628 2024.05.17 22:53:47.616
203 6.0.0.355 2024.05.16 8dd6e P P 29020 26973 2024.05.16 23:48:45.755 2024.05.16 23:49:14.775 2024.05.16 22:53:08.494 2024.05.16 22:53:35.467
204 6.0.0.354 2024.05.15 d3adc P P 28972 26972 2024.05.15 23:48:52.269 2024.05.15 23:49:21.241 2024.05.15 22:53:28.085 2024.05.15 22:53:55.057
205 6.0.0.351 2024.05.14 2e3e0 P P 28973 26972 2024.05.14 23:48:12.900 2024.05.14 23:48:41.873 2024.05.14 22:52:58.935 2024.05.14 22:53:25.907
206 6.0.0.348 2024.05.08 e1ec4 P P 28956 26989 2024.05.13 23:48:43.136 2024.05.13 23:49:12.092 2024.05.13 22:53:20.269 2024.05.13 22:53:47.258
207 6.0.0.346 2024.05.07 9d7de P P 30035 26987 2024.05.07 23:48:50.629 2024.05.07 23:49:20.664 2024.05.07 22:53:30.190 2024.05.07 22:53:57.177
208 6.0.0.345 2024.05.06 154a0 P P 29053 26988 2024.05.06 23:48:25.941 2024.05.06 23:48:54.994 2024.05.06 22:53:03.085 2024.05.06 22:53:30.073
209 6.0.0.344 2024.05.02 b49d8 P P 28957 26956 2024.05.02 23:47:33.146 2024.05.02 23:48:02.103 2024.05.02 22:52:40.726 2024.05.02 22:53:07.682
210 6.0.0.342 2024.04.29 e6247 P P 28972 26972 2024.04.29 23:47:41.296 2024.04.29 23:48:10.268 2024.04.29 22:53:01.095 2024.04.29 22:53:28.067
211 6.0.0.339 2024.04.28 0bcba P P 29004 26940 2024.04.28 23:47:41.358 2024.04.28 23:48:10.362 2024.04.28 22:52:41.940 2024.04.28 22:53:08.880
212 6.0.0.336 2024.04.24 7d2ac P P 29926 26971 2024.04.26 23:47:47.628 2024.04.26 23:48:17.554 2024.04.26 22:52:42.701 2024.04.26 22:53:09.672
213 6.0.0.333 2024.04.23 85d98 P P 28957 26987 2024.04.23 23:48:20.350 2024.04.23 23:48:49.307 2024.04.23 22:53:05.729 2024.04.23 22:53:32.716
214 6.0.0.328 2024.04.22 485d0 P P 28956 26972 2024.04.22 23:47:53.055 2024.04.22 23:48:22.011 2024.04.22 22:52:42.339 2024.04.22 22:53:09.311
215 6.0.0.327 2024.04.19 eeed9 P P 28941 26972 2024.04.21 23:48:10.428 2024.04.21 23:48:39.369 2024.04.21 22:53:10.970 2024.04.21 22:53:37.942
216 6.0.0.325 2024.04.18 f5930 P P 28971 26988 2024.04.18 23:48:09.033 2024.04.18 23:48:38.004 2024.04.18 22:52:46.753 2024.04.18 22:53:13.741
217 6.0.0.324 2024.04.17 84ac9 P P 28941 26988 2024.04.17 23:48:44.860 2024.04.17 23:49:13.801 2024.04.17 22:53:01.691 2024.04.17 22:53:28.679
218 6.0.0.321 2024.04.16 eba22 P P 28988 26988 2024.04.16 23:47:08.172 2024.04.16 23:47:37.160 2024.04.16 22:52:28.859 2024.04.16 22:52:55.847
219 6.0.0.315 2024.04.15 4e80d P P 28959 26975 2024.04.15 23:47:38.087 2024.04.15 23:48:07.046 2024.04.15 22:52:47.883 2024.04.15 22:53:14.858
220 6.0.0.313 2024.04.14 b6eab P P 28646 26957 2024.04.14 23:43:52.037 2024.04.14 23:44:20.683 2024.04.14 22:52:37.633 2024.04.14 22:53:04.590
221 6.0.0.313 2024.04.12 aaf5f P P 28645 26956 2024.04.12 23:43:30.706 2024.04.12 23:43:59.351 2024.04.12 22:52:14.668 2024.04.12 22:52:41.624
222 6.0.0.312 2024.04.12 ff9f0 P P 28612 26957 2024.04.12 10:30:15.283 2024.04.12 10:30:43.895 2024.04.12 09:39:19.153 2024.04.12 09:39:46.110
223 6.0.0.312 2024.04.04 3496c P P 28535 26941 2024.04.09 23:43:20.061 2024.04.09 23:43:48.596 2024.04.09 22:53:10.927 2024.04.09 22:53:37.868
224 6.0.0.310 2024.04.03 e93f6 P P 28597 26924 2024.04.04 09:54:15.836 2024.04.04 09:54:44.433 2024.04.04 09:05:14.643 2024.04.04 09:05:41.567
225 6.0.0.308 2024.04.03 fa979 P P 28613 26940 2024.04.03 17:07:57.429 2024.04.03 17:08:26.042 2024.04.03 16:18:55.008 2024.04.03 16:19:21.948
226 6.0.0.308 2024.04.02 65562 P P 28581 26941 2024.04.03 00:47:55.855 2024.04.03 00:48:24.436 2024.04.02 23:59:48.603 2024.04.03 00:00:15.544
227 6.0.0.305 2024.04.01 8a4f6 P P 28582 26947 2024.04.02 09:00:20.635 2024.04.02 09:00:49.217 2024.04.02 08:12:08.357 2024.04.02 08:12:35.304
228 6.0.0.303 2024.03.31 ecb39 P P 28565 26939 2024.04.01 09:06:15.368 2024.04.01 09:06:43.933 2024.04.01 05:39:19.623 2024.04.01 05:39:46.562
229 6.0.0.301 2024.03.25 69d0a P P 28549 26939 2024.03.28 23:04:44.826 2024.03.28 23:05:13.375 2024.03.28 22:16:45.127 2024.03.28 22:17:12.066
230 6.0.0.299 2024.03.22 b1ba8 P P 28549 26908 2024.03.24 00:35:37.782 2024.03.24 00:36:06.331 2024.03.23 23:46:32.887 2024.03.23 23:46:59.795
231 6.0.0.295 2024.03.22 ef66a P P 28549 26939 2024.03.22 13:26:10.064 2024.03.22 13:26:38.613 2024.03.22 12:37:19.310 2024.03.22 12:37:46.249
232 6.0.0.295 2024.03.21 bf5ab P P 28534 26940 2024.03.21 22:46:20.425 2024.03.21 22:46:48.959 2024.03.21 21:57:21.979 2024.03.21 21:57:48.919
233 6.0.0.294 2024.03.20 bd00d P P 28518 26941 2024.03.21 01:49:08.408 2024.03.21 01:49:36.926 2024.03.21 01:00:16.542 2024.03.21 01:00:43.483
234 6.0.0.293 2024.03.20 fb994 P P 28535 26908 2024.03.20 18:21:28.911 2024.03.20 18:21:57.446 2024.03.20 17:32:33.714 2024.03.20 17:33:00.622

Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):