Check firebird.log [no messages found 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   
    checked_mode: table, STDLOG: Records affected: 10
    checked_mode: table, STDLOG: ID
    checked_mode: table, STDLOG:
    checked_mode: table, STDLOG: -140
    checked_mode: table, STDLOG: -130
    checked_mode: table, STDLOG: -120
    checked_mode: table, STDLOG: -110
    checked_mode: table, STDLOG: -2
    checked_mode: table, STDLOG: -1
    checked_mode: table, STDLOG: 11
    checked_mode: table, STDLOG: 12
    checked_mode: table, STDLOG: 13
    checked_mode: table, STDLOG: 14
    checked_mode: table, STDLOG: Records affected: 10
    checked_mode: table, STDLOG: OLD_ID OP SNAP_NO_RANK
    checked_mode: table, STDLOG:
  - checked_mode: table, STDLOG: 1 UPD 1
  + checked_mode: table, STDLOG: 1UPD 1
  - checked_mode: table, STDLOG: -14 UPD 2
  + checked_mode: table, STDLOG: -14UPD 2
  - checked_mode: table, STDLOG: -13 UPD 2
  + checked_mode: table, STDLOG: -13UPD 2
  - checked_mode: table, STDLOG: -12 UPD 2
  + checked_mode: table, STDLOG: -12UPD 2
  - checked_mode: table, STDLOG: -11 UPD 2
  + checked_mode: table, STDLOG: -11UPD 2
  - checked_mode: table, STDLOG: 1 UPD 2
  + checked_mode: table, STDLOG: 1UPD 2
  - checked_mode: table, STDLOG: 2 UPD 2
  + checked_mode: table, STDLOG: 2UPD 2
  - checked_mode: table, STDLOG: 110 UPD 2
  + checked_mode: table, STDLOG: 110UPD 2
  - checked_mode: table, STDLOG: 120 UPD 2
  + checked_mode: table, STDLOG: 120UPD 2
  - checked_mode: table, STDLOG: 130 UPD 2
  + checked_mode: table, STDLOG: 130UPD 2
  - checked_mode: table, STDLOG: 140 UPD 2
  + checked_mode: table, STDLOG: 140UPD 2
    checked_mode: table, STDLOG: Records affected: 11

LOG DETAILS:

2025-07-02 06:41:24.468
2025-07-02 06:41:24.468 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-02 06:41:24.468 fn_worker_sql = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.sql')
2025-07-02 06:41:24.468 fn_worker_log = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.log')
2025-07-02 06:41:24.468 fn_worker_err = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.err')
2025-07-02 06:41:24.469 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-02 06:41:24.469
2025-07-02 06:41:24.469     @pytest.mark.trace
2025-07-02 06:41:24.469     @pytest.mark.version('>=4.0.2')
2025-07-02 06:41:24.469     def test_1(act: Action, fn_worker_sql: Path, fn_worker_log: Path, fn_worker_err: Path, capsys):
2025-07-02 06:41:24.469         sql_init = (act.files_dir / 'read-consist-sttm-restart-DDL.sql').read_text()
2025-07-02 06:41:24.469
2025-07-02 06:41:24.469         for checked_mode in('table', 'view'):
2025-07-02 06:41:24.469             target_obj = 'test' if checked_mode == 'table' else 'v_test'
2025-07-02 06:41:24.469
2025-07-02 06:41:24.469             SQL_TO_BE_RESTARTED = f"update /* {SQL_TAG_THAT_WE_WAITING_FOR} */ {target_obj} set id = -id order by id ROWS 10"
2025-07-02 06:41:24.469
2025-07-02 06:41:24.469             # add rows with ID = 1, 2:
2025-07-02 06:41:24.469             sql_addi = f'''
2025-07-02 06:41:24.469                 set term ^;
2025-07-02 06:41:24.469                 execute block as
2025-07-02 06:41:24.469                 begin
2025-07-02 06:41:24.469                     rdb$set_context('USER_SESSION', 'WHO', 'INIT_DATA');
2025-07-02 06:41:24.470                 end
2025-07-02 06:41:24.470                 ^
2025-07-02 06:41:24.470                 set term ;^
2025-07-02 06:41:24.470                 insert into {target_obj}(id, x) select row_number()over(),row_number()over() from rdb$types rows 2;
2025-07-02 06:41:24.470                 commit;
2025-07-02 06:41:24.470             '''
2025-07-02 06:41:24.470
2025-07-02 06:41:24.470             act.isql(switches=['-q'], input = ''.join( (sql_init, sql_addi) ) )
2025-07-02 06:41:24.470             # ::: NOTE ::: We have to immediately quit if any error raised in prepare phase.
2025-07-02 06:41:24.470             # See also letter from dimitr, 01-feb-2022 14:46
2025-07-02 06:41:24.470             assert act.stderr == ''
2025-07-02 06:41:24.470             act.reset()
2025-07-02 06:41:24.470
2025-07-02 06:41:24.470             trace_cfg_items = [
2025-07-02 06:41:24.470                 'time_threshold = 0',
2025-07-02 06:41:24.470                 'log_errors = true',
2025-07-02 06:41:24.470                 'log_statement_start = true',
2025-07-02 06:41:24.470                 'log_statement_finish = true',
2025-07-02 06:41:24.470             ]
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471             with act.trace(db_events = trace_cfg_items, encoding=locale.getpreferredencoding()):
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471                 with act.db.connect() as con_lock_1, act.db.connect() as con_lock_2, act.db.connect() as con_monitoring:
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471                     tpb_monitoring = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0)
2025-07-02 06:41:24.471                     tx_monitoring = con_monitoring.transaction_manager(tpb_monitoring)
2025-07-02 06:41:24.471                     cur_monitoring = tx_monitoring.cursor()
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471                     for i,c in enumerate((con_lock_1,con_lock_2)):
2025-07-02 06:41:24.471                         sttm = f"execute block as begin rdb$set_context('USER_SESSION', 'WHO', 'LOCKER #{i+1}'); end"
2025-07-02 06:41:24.471                         c.execute_immediate(sttm)
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471                     #########################
2025-07-02 06:41:24.471                     ###  L O C K E R - 1  ###
2025-07-02 06:41:24.471                     #########################
2025-07-02 06:41:24.471
2025-07-02 06:41:24.471                     con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 2' )
2025-07-02 06:41:24.472
2025-07-02 06:41:24.472                     worker_sql = f'''
2025-07-02 06:41:24.472                         set list on;
2025-07-02 06:41:24.472                         set autoddl off;
2025-07-02 06:41:24.472                         set term ^;
2025-07-02 06:41:24.472                         execute block returns (whoami varchar(30)) as
2025-07-02 06:41:24.472                         begin
2025-07-02 06:41:24.472                             whoami = 'WORKER'; -- , ATT#' || current_connection;
2025-07-02 06:41:24.472                             rdb$set_context('USER_SESSION','WHO', whoami);
2025-07-02 06:41:24.472                             -- suspend;
2025-07-02 06:41:24.472                         end
2025-07-02 06:41:24.472                         ^
2025-07-02 06:41:24.472                         set term ;^
2025-07-02 06:41:24.472                         commit;
2025-07-02 06:41:24.472                         SET KEEP_TRAN_PARAMS ON;
2025-07-02 06:41:24.472                         set transaction read committed read consistency;
2025-07-02 06:41:24.472                         set list off;
2025-07-02 06:41:24.472                         set wng off;
2025-07-02 06:41:24.472                         set count on;
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                         -- WORKER. THIS MUST BE LOCKED NOW BY LOCKER_i:
2025-07-02 06:41:24.473                         {SQL_TO_BE_RESTARTED};
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                         -- check results:
2025-07-02 06:41:24.473                         -- ###############
2025-07-02 06:41:24.473                         select id from {target_obj} order by id; -- this will produce output only after all lockers do their commit/rollback
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                         select v.old_id, v.op, v.snap_no_rank from v_worker_log v where v.op = 'upd';
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                         set width who 10;
2025-07-02 06:41:24.473                         -- DO NOT check this! Values can differ here from one run to another!
2025-07-02 06:41:24.473                         -- select id, trn, who, old_id, new_id, op, rec_vers, global_cn, snap_no from tlog_done order by id;
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                         rollback;
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                     '''
2025-07-02 06:41:24.473
2025-07-02 06:41:24.473                     fn_worker_sql.write_text(worker_sql)
2025-07-02 06:41:24.474
2025-07-02 06:41:24.474                     with fn_worker_log.open(mode='w') as hang_out, fn_worker_err.open(mode='w') as hang_err:
2025-07-02 06:41:24.474
2025-07-02 06:41:24.474                         ############################################################################
2025-07-02 06:41:24.474                         ###  L A U N C H     W O R K E R    U S I N G     I S Q L,   A S Y N C.  ###
2025-07-02 06:41:24.474                         ############################################################################
2025-07-02 06:41:24.474                         p_worker = subprocess.Popen([act.vars['isql'], '-i', str(fn_worker_sql),
2025-07-02 06:41:24.474                                                        '-user', act.db.user,
2025-07-02 06:41:24.474                                                        '-password', act.db.password,
2025-07-02 06:41:24.474                                                        '-pag', '999999',
2025-07-02 06:41:24.474                                                        act.db.dsn
2025-07-02 06:41:24.474                                                     ],
2025-07-02 06:41:24.474                                                       stdout = hang_out,
2025-07-02 06:41:24.474                                                       stderr = hang_err
2025-07-02 06:41:24.474                                                    )
2025-07-02 06:41:24.474                         # NB: when ISQL will establish attach, first record that it must lock is ID = 1 -- see above SQL_TO_BE_RESTARTED
2025-07-02 06:41:24.474                         # We must to ensure that this (worker) attachment has been really created and LOCKS this record:
2025-07-02 06:41:24.474                         #
2025-07-02 06:41:24.475                         wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id=1', SQL_TAG_THAT_WE_WAITING_FOR)
2025-07-02 06:41:24.475
2025-07-02 06:41:24.475
2025-07-02 06:41:24.475                         #########################
2025-07-02 06:41:24.475                         ###  L O C K E R - 2  ###
2025-07-02 06:41:24.475                         #########################
2025-07-02 06:41:24.475                         con_lock_2.execute_immediate( f'insert /* LOCKER-2 */ into {target_obj}(id) values(110)' )
2025-07-02 06:41:24.475                         con_lock_2.execute_immediate( f'insert /* LOCKER-2 */ into {target_obj}(id) values(-11)' )
2025-07-02 06:41:24.475                         con_lock_2.commit()
2025-07-02 06:41:24.475                         con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = 110' )
2025-07-02 06:41:24.475                         con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = -11' )
2025-07-02 06:41:24.475
2025-07-02 06:41:24.475                         #########################
2025-07-02 06:41:24.475                         ###  L O C K E R - 1  ###
2025-07-02 06:41:24.475                         #########################
2025-07-02 06:41:24.475                         con_lock_1.commit() # releases record with ID = 2 ==> now it can be locked by worker.
2025-07-02 06:41:24.475
2025-07-02 06:41:24.475                         # We have to WAIT HERE until worker will actually 'catch' just released record with ID = 2.
2025-07-02 06:41:24.476                         #
2025-07-02 06:41:24.476                         wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id=2', SQL_TAG_THAT_WE_WAITING_FOR)
2025-07-02 06:41:24.476                         # If we come here then it means that record with ID = 2 for sure is locked by WORKER.
2025-07-02 06:41:24.476
2025-07-02 06:41:24.476                         con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(120)' )
2025-07-02 06:41:24.476                         con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(-12)' )
2025-07-02 06:41:24.476                         con_lock_1.commit()
2025-07-02 06:41:24.476                         con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 120' )
2025-07-02 06:41:24.476                         con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = -12' )
2025-07-02 06:41:24.476
2025-07-02 06:41:24.476
2025-07-02 06:41:24.476                         #########################
2025-07-02 06:41:24.476                         ###  L O C K E R - 2  ###
2025-07-02 06:41:24.476                         #########################
2025-07-02 06:41:24.476                         con_lock_2.commit() # releases TWO records with ID = -11 and 110.
2025-07-02 06:41:24.476
2025-07-02 06:41:24.476                         # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -11, then with ID = 110.
2025-07-02 06:41:24.476                         #
2025-07-02 06:41:24.477                         wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 110', SQL_TAG_THAT_WE_WAITING_FOR)
2025-07-02 06:41:24.477                         # If we come here then it means that TWO records with ID = -11 and 110 for sure are locked by WORKER.
2025-07-02 06:41:24.477
2025-07-02 06:41:24.477
2025-07-02 06:41:24.477                         con_lock_2.execute_immediate( f'insert into /* LOCKER-2 */ {target_obj}(id) values(130)' )
2025-07-02 06:41:24.477                         con_lock_2.execute_immediate( f'insert into /* LOCKER-2 */ {target_obj}(id) values(-13)' )
2025-07-02 06:41:24.477                         con_lock_2.commit()
2025-07-02 06:41:24.477                         con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = 130' )
2025-07-02 06:41:24.477                         con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = -13' )
2025-07-02 06:41:24.477
2025-07-02 06:41:24.477                         #########################
2025-07-02 06:41:24.477                         ###  L O C K E R - 1  ###
2025-07-02 06:41:24.477                         #########################
2025-07-02 06:41:24.477                         con_lock_1.commit() # releases TWO records with ID = -12 and 120.
2025-07-02 06:41:24.477
2025-07-02 06:41:24.477                         # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -12, then with ID = 120.
2025-07-02 06:41:24.477                         #
2025-07-02 06:41:24.477                         wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 120', SQL_TAG_THAT_WE_WAITING_FOR)
2025-07-02 06:41:24.478                         # If we come here then it means that TWO records with ID = -12 and 120 for sure are locked by WORKER.
2025-07-02 06:41:24.478
2025-07-02 06:41:24.478
2025-07-02 06:41:24.478                         con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(140)' )
2025-07-02 06:41:24.478                         con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(-14)' )
2025-07-02 06:41:24.478                         con_lock_1.commit()
2025-07-02 06:41:24.478                         con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 140' )
2025-07-02 06:41:24.478                         con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = -14' )
2025-07-02 06:41:24.478
2025-07-02 06:41:24.478                         #########################
2025-07-02 06:41:24.478                         ###  L O C K E R - 2  ###
2025-07-02 06:41:24.478                         #########################
2025-07-02 06:41:24.478                         con_lock_2.commit()
2025-07-02 06:41:24.478
2025-07-02 06:41:24.478                         # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -13, then with ID = 130.
2025-07-02 06:41:24.478                         #
2025-07-02 06:41:24.478                         wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 130', SQL_TAG_THAT_WE_WAITING_FOR)
2025-07-02 06:41:24.478                         # If we come here then it means that TWO records with ID = -13 and 130 for sure are locked by WORKER.
2025-07-02 06:41:24.478
2025-07-02 06:41:24.479                         #########################
2025-07-02 06:41:24.479                         ###  L O C K E R - 1  ###
2025-07-02 06:41:24.479                         #########################
2025-07-02 06:41:24.479                         con_lock_1.commit() # WORKER will complete his job after this
2025-07-02 06:41:24.479
2025-07-02 06:41:24.479
2025-07-02 06:41:24.479                         # Here we wait for ISQL complete its mission:
2025-07-02 06:41:24.479                         p_worker.wait()
2025-07-02 06:41:24.479
2025-07-02 06:41:24.479                 #< with act.db.connect()
2025-07-02 06:41:24.479
2025-07-02 06:41:24.479                 for g in (fn_worker_log, fn_worker_err):
2025-07-02 06:41:24.479                     with g.open() as f:
2025-07-02 06:41:24.479                         for line in f:
2025-07-02 06:41:24.479                             if line.split():
2025-07-02 06:41:24.479                                 if g == fn_worker_log:
2025-07-02 06:41:24.479                                     print(f'checked_mode: {checked_mode}, STDLOG: {line}')
2025-07-02 06:41:24.479                                 else:
2025-07-02 06:41:24.479                                     print(f'UNEXPECTED STDERR {line}')
2025-07-02 06:41:24.480
2025-07-02 06:41:24.480                 expected_stdout_worker = f"""
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: Records affected: 10
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: ID
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG:
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -140
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -130
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -120
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -110
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -2
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: -1
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: 11
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: 12
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: 13
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: 14
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: Records affected: 10
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: OLD_ID OP SNAP_NO_RANK
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG:
2025-07-02 06:41:24.480                     checked_mode: {checked_mode}, STDLOG: 1 UPD 1
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: -14 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: -13 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: -12 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: -11 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 1 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 2 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 110 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 120 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 130 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: 140 UPD 2
2025-07-02 06:41:24.481                     checked_mode: {checked_mode}, STDLOG: Records affected: 11
2025-07-02 06:41:24.481                 """
2025-07-02 06:41:24.481
2025-07-02 06:41:24.481                 act.expected_stdout = expected_stdout_worker
2025-07-02 06:41:24.481                 act.stdout = capsys.readouterr().out
2025-07-02 06:41:24.481 >               assert act.clean_stdout == act.clean_expected_stdout
2025-07-02 06:41:24.481 E               assert
2025-07-02 06:41:24.481 E                   checked_mode: table, STDLOG: Records affected: 10
2025-07-02 06:41:24.481 E                   checked_mode: table, STDLOG: ID
2025-07-02 06:41:24.481 E                   checked_mode: table, STDLOG:
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -140
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -130
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -120
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -110
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -2
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: -1
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: 11
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: 12
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: 13
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: 14
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: Records affected: 10
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG: OLD_ID OP SNAP_NO_RANK
2025-07-02 06:41:24.482 E                   checked_mode: table, STDLOG:
2025-07-02 06:41:24.482 E                 - checked_mode: table, STDLOG: 1 UPD 1
2025-07-02 06:41:24.482 E                 + checked_mode: table, STDLOG: 1UPD 1
2025-07-02 06:41:24.482 E                 - checked_mode: table, STDLOG: -14 UPD 2
2025-07-02 06:41:24.482 E                 + checked_mode: table, STDLOG: -14UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: -13 UPD 2
2025-07-02 06:41:24.483 E                 + checked_mode: table, STDLOG: -13UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: -12 UPD 2
2025-07-02 06:41:24.483 E                 + checked_mode: table, STDLOG: -12UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: -11 UPD 2
2025-07-02 06:41:24.483 E                 + checked_mode: table, STDLOG: -11UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: 1 UPD 2
2025-07-02 06:41:24.483 E                 + checked_mode: table, STDLOG: 1UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: 2 UPD 2
2025-07-02 06:41:24.483 E                 + checked_mode: table, STDLOG: 2UPD 2
2025-07-02 06:41:24.483 E                 - checked_mode: table, STDLOG: 110 UPD 2
2025-07-02 06:41:24.484 E                 + checked_mode: table, STDLOG: 110UPD 2
2025-07-02 06:41:24.484 E                 - checked_mode: table, STDLOG: 120 UPD 2
2025-07-02 06:41:24.484 E                 + checked_mode: table, STDLOG: 120UPD 2
2025-07-02 06:41:24.484 E                 - checked_mode: table, STDLOG: 130 UPD 2
2025-07-02 06:41:24.484 E                 + checked_mode: table, STDLOG: 130UPD 2
2025-07-02 06:41:24.484 E                 - checked_mode: table, STDLOG: 140 UPD 2
2025-07-02 06:41:24.484 E                 + checked_mode: table, STDLOG: 140UPD 2
2025-07-02 06:41:24.484 E                   checked_mode: table, STDLOG: Records affected: 11
2025-07-02 06:41:24.484
2025-07-02 06:41:24.484 tests\functional\transactions\test_read_consist_sttm_restart_on_update_03.py:480: AssertionError
2025-07-02 06:41:24.484 ---------------------------- Captured stdout setup ----------------------------
2025-07-02 06:41:24.484 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_12509\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
fn_worker_sql = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.sql')
fn_worker_log = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.log')
fn_worker_err = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12509/tmp_worker.err')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.trace
    @pytest.mark.version('>=4.0.2')
    def test_1(act: Action, fn_worker_sql: Path, fn_worker_log: Path, fn_worker_err: Path, capsys):
        sql_init = (act.files_dir / 'read-consist-sttm-restart-DDL.sql').read_text()
    
        for checked_mode in('table', 'view'):
            target_obj = 'test' if checked_mode == 'table' else 'v_test'
    
            SQL_TO_BE_RESTARTED = f"update /* {SQL_TAG_THAT_WE_WAITING_FOR} */ {target_obj} set id = -id order by id ROWS 10"
    
            # add rows with ID = 1, 2:
            sql_addi = f'''
                set term ^;
                execute block as
                begin
                    rdb$set_context('USER_SESSION', 'WHO', 'INIT_DATA');
                end
                ^
                set term ;^
                insert into {target_obj}(id, x) select row_number()over(),row_number()over() from rdb$types rows 2;
                commit;
            '''
    
            act.isql(switches=['-q'], input = ''.join( (sql_init, sql_addi) ) )
            # ::: NOTE ::: We have to immediately quit if any error raised in prepare phase.
            # See also letter from dimitr, 01-feb-2022 14:46
            assert act.stderr == ''
            act.reset()
    
            trace_cfg_items = [
                'time_threshold = 0',
                'log_errors = true',
                'log_statement_start = true',
                'log_statement_finish = true',
            ]
    
            with act.trace(db_events = trace_cfg_items, encoding=locale.getpreferredencoding()):
    
                with act.db.connect() as con_lock_1, act.db.connect() as con_lock_2, act.db.connect() as con_monitoring:
    
                    tpb_monitoring = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0)
                    tx_monitoring = con_monitoring.transaction_manager(tpb_monitoring)
                    cur_monitoring = tx_monitoring.cursor()
    
                    for i,c in enumerate((con_lock_1,con_lock_2)):
                        sttm = f"execute block as begin rdb$set_context('USER_SESSION', 'WHO', 'LOCKER #{i+1}'); end"
                        c.execute_immediate(sttm)
    
                    #########################
                    ###  L O C K E R - 1  ###
                    #########################
    
                    con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 2' )
    
                    worker_sql = f'''
                        set list on;
                        set autoddl off;
                        set term ^;
                        execute block returns (whoami varchar(30)) as
                        begin
                            whoami = 'WORKER'; -- , ATT#' || current_connection;
                            rdb$set_context('USER_SESSION','WHO', whoami);
                            -- suspend;
                        end
                        ^
                        set term ;^
                        commit;
                        SET KEEP_TRAN_PARAMS ON;
                        set transaction read committed read consistency;
                        set list off;
                        set wng off;
                        set count on;
    
                        -- WORKER. THIS MUST BE LOCKED NOW BY LOCKER_i:
                        {SQL_TO_BE_RESTARTED};
    
                        -- check results:
                        -- ###############
                        select id from {target_obj} order by id; -- this will produce output only after all lockers do their commit/rollback
    
                        select v.old_id, v.op, v.snap_no_rank from v_worker_log v where v.op = 'upd';
    
                        set width who 10;
                        -- DO NOT check this! Values can differ here from one run to another!
                        -- select id, trn, who, old_id, new_id, op, rec_vers, global_cn, snap_no from tlog_done order by id;
    
                        rollback;
    
                    '''
    
                    fn_worker_sql.write_text(worker_sql)
    
                    with fn_worker_log.open(mode='w') as hang_out, fn_worker_err.open(mode='w') as hang_err:
    
                        ############################################################################
                        ###  L A U N C H     W O R K E R    U S I N G     I S Q L,   A S Y N C.  ###
                        ############################################################################
                        p_worker = subprocess.Popen([act.vars['isql'], '-i', str(fn_worker_sql),
                                                       '-user', act.db.user,
                                                       '-password', act.db.password,
                                                       '-pag', '999999',
                                                       act.db.dsn
                                                    ],
                                                      stdout = hang_out,
                                                      stderr = hang_err
                                                   )
                        # NB: when ISQL will establish attach, first record that it must lock is ID = 1 -- see above SQL_TO_BE_RESTARTED
                        # We must to ensure that this (worker) attachment has been really created and LOCKS this record:
                        #
                        wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id=1', SQL_TAG_THAT_WE_WAITING_FOR)
    
    
                        #########################
                        ###  L O C K E R - 2  ###
                        #########################
                        con_lock_2.execute_immediate( f'insert /* LOCKER-2 */ into {target_obj}(id) values(110)' )
                        con_lock_2.execute_immediate( f'insert /* LOCKER-2 */ into {target_obj}(id) values(-11)' )
                        con_lock_2.commit()
                        con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = 110' )
                        con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = -11' )
    
                        #########################
                        ###  L O C K E R - 1  ###
                        #########################
                        con_lock_1.commit() # releases record with ID = 2 ==> now it can be locked by worker.
    
                        # We have to WAIT HERE until worker will actually 'catch' just released record with ID = 2.
                        #
                        wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id=2', SQL_TAG_THAT_WE_WAITING_FOR)
                        # If we come here then it means that record with ID = 2 for sure is locked by WORKER.
    
                        con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(120)' )
                        con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(-12)' )
                        con_lock_1.commit()
                        con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 120' )
                        con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = -12' )
    
    
                        #########################
                        ###  L O C K E R - 2  ###
                        #########################
                        con_lock_2.commit() # releases TWO records with ID = -11 and 110.
    
                        # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -11, then with ID = 110.
                        #
                        wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 110', SQL_TAG_THAT_WE_WAITING_FOR)
                        # If we come here then it means that TWO records with ID = -11 and 110 for sure are locked by WORKER.
    
    
                        con_lock_2.execute_immediate( f'insert into /* LOCKER-2 */ {target_obj}(id) values(130)' )
                        con_lock_2.execute_immediate( f'insert into /* LOCKER-2 */ {target_obj}(id) values(-13)' )
                        con_lock_2.commit()
                        con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = 130' )
                        con_lock_2.execute_immediate( f'update /* LOCKER-2 */ {target_obj} set id=id where id = -13' )
    
                        #########################
                        ###  L O C K E R - 1  ###
                        #########################
                        con_lock_1.commit() # releases TWO records with ID = -12 and 120.
    
                        # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -12, then with ID = 120.
                        #
                        wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 120', SQL_TAG_THAT_WE_WAITING_FOR)
                        # If we come here then it means that TWO records with ID = -12 and 120 for sure are locked by WORKER.
    
    
                        con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(140)' )
                        con_lock_1.execute_immediate( f'insert /* LOCKER-1 */ into {target_obj}(id) values(-14)' )
                        con_lock_1.commit()
                        con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = 140' )
                        con_lock_1.execute_immediate( f'update /* LOCKER-1 */ {target_obj} set id=id where id = -14' )
    
                        #########################
                        ###  L O C K E R - 2  ###
                        #########################
                        con_lock_2.commit()
    
                        # We have to WAIT HERE until worker will actually 'catch' just released records, in the order of its cursor: first with ID = -13, then with ID = 130.
                        #
                        wait_for_record_become_locked(tx_monitoring, cur_monitoring, f'update {target_obj} set id=id where id = 130', SQL_TAG_THAT_WE_WAITING_FOR)
                        # If we come here then it means that TWO records with ID = -13 and 130 for sure are locked by WORKER.
    
                        #########################
                        ###  L O C K E R - 1  ###
                        #########################
                        con_lock_1.commit() # WORKER will complete his job after this
    
    
                        # Here we wait for ISQL complete its mission:
                        p_worker.wait()
    
                #< with act.db.connect()
    
                for g in (fn_worker_log, fn_worker_err):
                    with g.open() as f:
                        for line in f:
                            if line.split():
                                if g == fn_worker_log:
                                    print(f'checked_mode: {checked_mode}, STDLOG: {line}')
                                else:
                                    print(f'UNEXPECTED STDERR {line}')
    
                expected_stdout_worker = f"""
                    checked_mode: {checked_mode}, STDLOG: Records affected: 10
                    checked_mode: {checked_mode}, STDLOG: ID
                    checked_mode: {checked_mode}, STDLOG:
                    checked_mode: {checked_mode}, STDLOG: -140
                    checked_mode: {checked_mode}, STDLOG: -130
                    checked_mode: {checked_mode}, STDLOG: -120
                    checked_mode: {checked_mode}, STDLOG: -110
                    checked_mode: {checked_mode}, STDLOG: -2
                    checked_mode: {checked_mode}, STDLOG: -1
                    checked_mode: {checked_mode}, STDLOG: 11
                    checked_mode: {checked_mode}, STDLOG: 12
                    checked_mode: {checked_mode}, STDLOG: 13
                    checked_mode: {checked_mode}, STDLOG: 14
                    checked_mode: {checked_mode}, STDLOG: Records affected: 10
                    checked_mode: {checked_mode}, STDLOG: OLD_ID OP SNAP_NO_RANK
                    checked_mode: {checked_mode}, STDLOG:
                    checked_mode: {checked_mode}, STDLOG: 1 UPD 1
                    checked_mode: {checked_mode}, STDLOG: -14 UPD 2
                    checked_mode: {checked_mode}, STDLOG: -13 UPD 2
                    checked_mode: {checked_mode}, STDLOG: -12 UPD 2
                    checked_mode: {checked_mode}, STDLOG: -11 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 1 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 2 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 110 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 120 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 130 UPD 2
                    checked_mode: {checked_mode}, STDLOG: 140 UPD 2
                    checked_mode: {checked_mode}, STDLOG: Records affected: 11
                """
    
                act.expected_stdout = expected_stdout_worker
                act.stdout = capsys.readouterr().out
>               assert act.clean_stdout == act.clean_expected_stdout
E               assert   
E                   checked_mode: table, STDLOG: Records affected: 10
E                   checked_mode: table, STDLOG: ID
E                   checked_mode: table, STDLOG:
E                   checked_mode: table, STDLOG: -140
E                   checked_mode: table, STDLOG: -130
E                   checked_mode: table, STDLOG: -120
E                   checked_mode: table, STDLOG: -110
E                   checked_mode: table, STDLOG: -2
E                   checked_mode: table, STDLOG: -1
E                   checked_mode: table, STDLOG: 11
E                   checked_mode: table, STDLOG: 12
E                   checked_mode: table, STDLOG: 13
E                   checked_mode: table, STDLOG: 14
E                   checked_mode: table, STDLOG: Records affected: 10
E                   checked_mode: table, STDLOG: OLD_ID OP SNAP_NO_RANK
E                   checked_mode: table, STDLOG:
E                 - checked_mode: table, STDLOG: 1 UPD 1
E                 + checked_mode: table, STDLOG: 1UPD 1
E                 - checked_mode: table, STDLOG: -14 UPD 2
E                 + checked_mode: table, STDLOG: -14UPD 2
E                 - checked_mode: table, STDLOG: -13 UPD 2
E                 + checked_mode: table, STDLOG: -13UPD 2
E                 - checked_mode: table, STDLOG: -12 UPD 2
E                 + checked_mode: table, STDLOG: -12UPD 2
E                 - checked_mode: table, STDLOG: -11 UPD 2
E                 + checked_mode: table, STDLOG: -11UPD 2
E                 - checked_mode: table, STDLOG: 1 UPD 2
E                 + checked_mode: table, STDLOG: 1UPD 2
E                 - checked_mode: table, STDLOG: 2 UPD 2
E                 + checked_mode: table, STDLOG: 2UPD 2
E                 - checked_mode: table, STDLOG: 110 UPD 2
E                 + checked_mode: table, STDLOG: 110UPD 2
E                 - checked_mode: table, STDLOG: 120 UPD 2
E                 + checked_mode: table, STDLOG: 120UPD 2
E                 - checked_mode: table, STDLOG: 130 UPD 2
E                 + checked_mode: table, STDLOG: 130UPD 2
E                 - checked_mode: table, STDLOG: 140 UPD 2
E                 + checked_mode: table, STDLOG: 140UPD 2
E                   checked_mode: table, STDLOG: Records affected: 11

tests\functional\transactions\test_read_consist_sttm_restart_on_update_03.py:480: 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.892 2025.07.02 10f7d P P 8353 6705 2025.07.03 03:39:22.817 2025.07.03 03:39:31.170 2025.07.03 01:50:27.403 2025.07.03 01:50:34.108
2 6.0.0.889 2025.07.02 4b4e6 P P 8324 5907 2025.07.02 11:34:51.459 2025.07.02 11:34:59.783 2025.07.02 09:48:43.704 2025.07.02 09:48:49.611
3 6.0.0.889 2025.07.01 969ac F F 3549 3937 2025.07.02 03:39:54.751 2025.07.02 03:39:58.300 2025.07.02 01:51:28.144 2025.07.02 01:51:32.081
4 6.0.0.881 2025.06.27 7035d P P 8387 6923 2025.07.01 03:34:51.466 2025.07.01 03:34:59.853 2025.07.01 01:48:34.186 2025.07.01 01:48:41.109
5 6.0.0.877 2025.06.26 8e38f P P 8315 6667 2025.06.27 03:35:42.407 2025.06.27 03:35:50.722 2025.06.27 01:49:08.002 2025.06.27 01:49:14.669
6 6.0.0.876 2025.06.25 b1bec P P 8356 6659 2025.06.26 03:40:58.798 2025.06.26 03:41:07.154 2025.06.26 01:54:20.493 2025.06.26 01:54:27.152
7 6.0.0.863 2025.06.24 c3c20 P P 7282 6678 2025.06.25 08:25:19.630 2025.06.25 08:25:26.912 2025.06.25 01:48:23.179 2025.06.25 01:48:29.857
8 6.0.0.858 2025.06.24 cbbbf P P 8353 6734 2025.06.24 18:07:37.706 2025.06.24 18:07:46.059 2025.06.24 16:20:17.723 2025.06.24 16:20:24.457
9 6.0.0.858 2025.06.23 d377c P P 8347 6764 2025.06.24 09:19:43.550 2025.06.24 09:19:51.897 2025.06.24 07:32:26.551 2025.06.24 07:32:33.315
10 6.0.0.854 2025.06.23 10b58 P P 7679 6991 2025.06.23 16:00:32.863 2025.06.23 16:00:40.542 2025.06.23 14:12:19.549 2025.06.23 14:12:26.540
11 6.0.0.849 2025.06.20 7b79c P P 8391 6673 2025.06.21 03:38:47.092 2025.06.21 03:38:55.483 2025.06.21 01:48:56.202 2025.06.21 01:49:02.875
12 6.0.0.848 2025.06.19 c483c P P 8370 6914 2025.06.20 03:38:30.240 2025.06.20 03:38:38.610 2025.06.20 01:48:41.415 2025.06.20 01:48:48.329
13 6.0.0.845 2025.06.18 20191 P P 8692 6673 2025.06.19 03:37:55.946 2025.06.19 03:38:04.638 2025.06.19 01:48:21.763 2025.06.19 01:48:28.436
14 6.0.0.843 2025.06.16 995f4 P P 8311 6682 2025.06.18 03:37:47.475 2025.06.18 03:37:55.786 2025.06.18 01:47:56.523 2025.06.18 01:48:03.205
15 6.0.0.840 2025.06.14 29bca P P 8438 5991 2025.06.15 03:48:46.690 2025.06.15 03:48:55.128 2025.06.15 01:54:01.356 2025.06.15 01:54:07.347
16 6.0.0.838 2025.06.13 0e28a P P 7623 6769 2025.06.14 03:47:07.513 2025.06.14 03:47:15.136 2025.06.14 01:52:23.679 2025.06.14 01:52:30.448
17 6.0.0.834 2025.06.11 e889f P P 8365 6012 2025.06.12 03:42:44.521 2025.06.12 03:42:52.886 2025.06.12 01:51:20.716 2025.06.12 01:51:26.728
18 6.0.0.800 2025.06.10 1f226 P P 8301 5638 2025.06.11 02:26:44.448 2025.06.11 02:26:52.749 2025.06.11 01:14:08.925 2025.06.11 01:14:14.563
19 6.0.0.799 2025.06.07 be644 P P 8303 6626 2025.06.10 02:26:34.309 2025.06.10 02:26:42.612 2025.06.10 01:13:36.772 2025.06.10 01:13:43.398
20 6.0.0.797 2025.06.06 303e8 P P 8272 6613 2025.06.07 02:25:00.013 2025.06.07 02:25:08.285 2025.06.07 01:13:04.873 2025.06.07 01:13:11.486
21 6.0.0.795 2025.05.29 7a71a P P 7230 6619 2025.06.06 02:24:22.812 2025.06.06 02:24:30.042 2025.06.06 01:12:41.002 2025.06.06 01:12:47.621
22 6.0.0.792 2025.05.28 ee5a8 P P 8248 6637 2025.05.29 02:22:34.997 2025.05.29 02:22:43.245 2025.05.29 01:12:14.676 2025.05.29 01:12:21.313
23 6.0.0.791 2025.05.27 02db8 P P 8245 5860 2025.05.28 02:23:03.737 2025.05.28 02:23:11.982 2025.05.28 01:12:13.832 2025.05.28 01:12:19.692
24 6.0.0.789 2025.05.21 64051 P P 8262 6623 2025.05.25 02:22:43.533 2025.05.25 02:22:51.795 2025.05.25 01:12:23.987 2025.05.25 01:12:30.610
25 6.0.0.787 2025.05.20 230ad P P 8284 6629 2025.05.21 02:21:34.842 2025.05.21 02:21:43.126 2025.05.21 01:11:15.574 2025.05.21 01:11:22.203
26 6.0.0.783 2025.05.12 37320 P P 8209 6602 2025.05.19 02:21:11.943 2025.05.19 02:21:20.152 2025.05.19 01:11:32.832 2025.05.19 01:11:39.434
27 6.0.0.779 2025.05.11 136fa P P 8255 6643 2025.05.12 02:23:41.177 2025.05.12 02:23:49.432 2025.05.12 01:12:46.463 2025.05.12 01:12:53.106
28 6.0.0.778 2025.05.07 d735e P P 8237 6889 2025.05.11 02:23:01.535 2025.05.11 02:23:09.772 2025.05.11 01:12:26.880 2025.05.11 01:12:33.769
29 6.0.0.776 2025.05.06 007cd P P 8446 6631 2025.05.07 02:22:20.509 2025.05.07 02:22:28.955 2025.05.07 01:11:53.912 2025.05.07 01:12:00.543
30 6.0.0.770 2025.05.05 82c4a P P 8257 6628 2025.05.06 02:22:44.657 2025.05.06 02:22:52.914 2025.05.06 01:12:30.091 2025.05.06 01:12:36.719
31 6.0.0.767 2025.05.01 cdd29 P P 8250 6680 2025.05.02 02:23:07.338 2025.05.02 02:23:15.588 2025.05.02 01:13:02.037 2025.05.02 01:13:08.717
32 6.0.0.762 2025.04.30 5cb15 P P 8295 6620 2025.05.01 02:21:49.509 2025.05.01 02:21:57.804 2025.05.01 01:12:02.013 2025.05.01 01:12:08.633
33 6.0.0.755 2025.04.29 739c6 P P 8275 6713 2025.04.30 02:21:33.286 2025.04.30 02:21:41.561 2025.04.30 01:11:55.082 2025.04.30 01:12:01.795
34 6.0.0.753 2025.04.27 29ab3 P P 8227 5853 2025.04.29 02:21:47.955 2025.04.29 02:21:56.182 2025.04.29 01:12:04.297 2025.04.29 01:12:10.150
35 6.0.0.745 2025.04.21 78ad8 P P 8240 6135 2025.04.26 02:23:35.193 2025.04.26 02:23:43.433 2025.04.26 01:12:39.324 2025.04.26 01:12:45.459
36 6.0.0.744 2025.04.19 e883a P P 8246 5941 2025.04.20 02:22:49.827 2025.04.20 02:22:58.073 2025.04.20 01:12:14.388 2025.04.20 01:12:20.329
37 6.0.0.742 2025.04.17 abc3b P P 8261 5925 2025.04.19 02:22:21.933 2025.04.19 02:22:30.194 2025.04.19 01:11:59.080 2025.04.19 01:12:05.005
38 6.0.0.737 2025.04.16 fe52b P P 8262 5865 2025.04.17 02:22:40.509 2025.04.17 02:22:48.771 2025.04.17 01:12:25.697 2025.04.17 01:12:31.562
39 6.0.0.736 2025.04.14 3e6be P P 8275 6694 2025.04.15 02:23:40.717 2025.04.15 02:23:48.992 2025.04.15 01:12:30.408 2025.04.15 01:12:37.102
40 6.0.0.735 2025.04.13 6635c P P 8228 6656 2025.04.14 02:22:39.391 2025.04.14 02:22:47.619 2025.04.14 01:12:43.404 2025.04.14 01:12:50.060
41 6.0.0.734 2025.04.12 e2fd1 P P 8191 5788 2025.04.13 02:20:08.569 2025.04.13 02:20:16.760 2025.04.13 01:11:15.860 2025.04.13 01:11:21.648
42 6.0.0.730 2025.04.11 240b8 P P 8390 6913 2025.04.12 02:29:49.409 2025.04.12 02:29:57.799 2025.04.12 01:15:53.412 2025.04.12 01:16:00.325
43 6.0.0.726 2025.04.10 d79c6 P P 7539 5918 2025.04.11 02:30:20.902 2025.04.11 02:30:28.441 2025.04.11 01:15:42.304 2025.04.11 01:15:48.222
44 6.0.0.725 2025.04.09 a2b05 P P 7289 5926 2025.04.10 02:29:16.408 2025.04.10 02:29:23.697 2025.04.10 01:15:27.213 2025.04.10 01:15:33.139
45 6.0.0.722 2025.04.08 a8b86 P P 8289 5894 2025.04.09 02:23:13.314 2025.04.09 02:23:21.603 2025.04.09 01:12:13.965 2025.04.09 01:12:19.859
46 6.0.0.719 2025.04.06 90fd9 P P 8266 5899 2025.04.08 02:23:10.169 2025.04.08 02:23:18.435 2025.04.08 01:12:37.176 2025.04.08 01:12:43.075
47 6.0.0.717 2025.04.04 53d70 P P 8251 6173 2025.04.05 02:23:08.448 2025.04.05 02:23:16.699 2025.04.05 01:12:22.618 2025.04.05 01:12:28.791
48 6.0.0.716 2025.04.03 fc636 P P 7297 6691 2025.04.04 02:23:11.490 2025.04.04 02:23:18.787 2025.04.04 01:12:36.967 2025.04.04 01:12:43.658
49 6.0.0.715 2025.04.02 907ed P P 8320 6677 2025.04.03 02:23:22.600 2025.04.03 02:23:30.920 2025.04.03 01:12:35.178 2025.04.03 01:12:41.855
50 6.0.0.710 2025.04.01 40651 P P 8329 5908 2025.04.02 02:23:12.507 2025.04.02 02:23:20.836 2025.04.02 01:12:52.929 2025.04.02 01:12:58.837
51 6.0.0.708 2025.03.31 cb069 P P 8325 5918 2025.04.01 02:22:42.914 2025.04.01 02:22:51.239 2025.04.01 01:12:03.974 2025.04.01 01:12:09.892
52 6.0.0.707 2025.03.28 4bd4f P P 8233 5913 2025.03.31 02:23:11.811 2025.03.31 02:23:20.044 2025.03.31 01:12:08.534 2025.03.31 01:12:14.447
53 6.0.0.702 2025.03.27 86f4d P E 8288 2426 2025.03.28 02:40:37.415 2025.03.28 02:40:45.703 2025.03.28 01:26:14.436 2025.03.28 01:26:16.862
54 6.0.0.698 2025.03.26 d72a7 P P 8321 5929 2025.03.27 16:06:51.647 2025.03.27 16:06:59.968 2025.03.27 14:53:56.182 2025.03.27 14:54:02.111
55 6.0.0.693 2025.03.25 8aac2 P P 8291 7502 2025.03.26 02:27:31.795 2025.03.26 02:27:40.086 2025.03.26 01:14:25.412 2025.03.26 01:14:32.914
56 6.0.0.693 2025.03.24 0b559 P P 8432 6953 2025.03.25 02:28:06.050 2025.03.25 02:28:14.482 2025.03.25 01:14:27.422 2025.03.25 01:14:34.375
57 6.0.0.687 2025.03.22 730aa P P 8324 6919 2025.03.24 02:27:52.118 2025.03.24 02:28:00.442 2025.03.24 01:14:54.207 2025.03.24 01:15:01.126
58 6.0.0.686 2025.03.20 71bf6 P P 8272 5690 2025.03.21 02:23:45.622 2025.03.21 02:23:53.894 2025.03.21 01:12:52.739 2025.03.21 01:12:58.429
59 6.0.0.685 2025.03.19 a8577 P P 8319 6898 2025.03.20 02:24:06.393 2025.03.20 02:24:14.712 2025.03.20 01:13:15.563 2025.03.20 01:13:22.461
60 6.0.0.680 2025.03.18 90d29 P P 8283 5925 2025.03.19 02:24:25.797 2025.03.19 02:24:34.080 2025.03.19 01:13:23.565 2025.03.19 01:13:29.490
61 6.0.0.677 2025.03.16 c0a60 P P 7218 6678 2025.03.18 02:20:45.061 2025.03.18 02:20:52.279 2025.03.18 01:11:42.378 2025.03.18 01:11:49.056
62 6.0.0.676 2025.03.15 11cfb P P 8315 5904 2025.03.16 02:20:03.920 2025.03.16 02:20:12.235 2025.03.16 01:10:45.296 2025.03.16 01:10:51.200
63 6.0.0.673 2025.03.13 40f5b P P 8203 6388 2025.03.14 14:49:18.928 2025.03.14 14:49:27.131 2025.03.14 13:41:04.777 2025.03.14 13:41:11.165
64 6.0.0.671 2025.03.12 a4fff P P 8332 7188 2025.03.13 02:24:37.988 2025.03.13 02:24:46.320 2025.03.13 01:13:21.375 2025.03.13 01:13:28.563
65 6.0.0.663 2025.03.11 65970 P P 8300 6901 2025.03.12 02:24:04.790 2025.03.12 02:24:13.090 2025.03.12 01:13:07.061 2025.03.12 01:13:13.962
66 6.0.0.661 2025.03.07 b9869 P P 8319 6689 2025.03.11 02:24:34.249 2025.03.11 02:24:42.568 2025.03.11 01:13:14.651 2025.03.11 01:13:21.340
67 6.0.0.660 2025.03.04 a6700 P P 7304 6790 2025.03.06 02:24:41.992 2025.03.06 02:24:49.296 2025.03.06 01:12:57.424 2025.03.06 01:13:04.214
68 6.0.0.658 2025.03.03 f15f8 P P 8254 6687 2025.03.04 02:20:58.329 2025.03.04 02:21:06.583 2025.03.04 01:11:42.925 2025.03.04 01:11:49.612
69 6.0.0.656 2025.02.27 25fb4 P P 7528 6435 2025.03.03 02:21:06.211 2025.03.03 02:21:13.739 2025.03.03 01:11:56.804 2025.03.03 01:12:03.239
70 6.0.0.655 2025.02.25 6e3e0 P P 7594 6148 2025.02.27 02:22:29.372 2025.02.27 02:22:36.966 2025.02.27 01:12:07.331 2025.02.27 01:12:13.479
71 6.0.0.654 2025.02.24 b7141 P P 8399 7154 2025.02.25 02:18:54.998 2025.02.25 02:19:03.397 2025.02.25 01:10:38.853 2025.02.25 01:10:46.007
72 6.0.0.652 2025.02.22 22662 P P 8224 5912 2025.02.24 02:18:04.081 2025.02.24 02:18:12.305 2025.02.24 01:09:54.503 2025.02.24 01:10:00.415
73 6.0.0.647 2025.02.21 9fccb P P 7283 6162 2025.02.22 02:16:46.756 2025.02.22 02:16:54.039 2025.02.22 01:09:27.079 2025.02.22 01:09:33.241
74 6.0.0.640 2025.02.19 9b8ac P P 7468 6160 2025.02.20 02:18:13.668 2025.02.20 02:18:21.136 2025.02.20 01:10:00.342 2025.02.20 01:10:06.502
75 6.0.0.639 2025.02.18 201a4 P P 7476 6659 2025.02.19 02:19:07.779 2025.02.19 02:19:15.255 2025.02.19 01:10:47.130 2025.02.19 01:10:53.789
76 6.0.0.637 2025.02.12 6d0f5 P P 7515 6168 2025.02.14 02:19:46.484 2025.02.14 02:19:53.999 2025.02.14 01:11:18.128 2025.02.14 01:11:24.296
77 6.0.0.636 2025.02.11 0424f P P 7465 6161 2025.02.12 02:19:11.080 2025.02.12 02:19:18.545 2025.02.12 01:10:39.422 2025.02.12 01:10:45.583
78 6.0.0.635 2025.02.10 f640f P P 7536 6193 2025.02.11 02:18:39.583 2025.02.11 02:18:47.119 2025.02.11 01:10:27.635 2025.02.11 01:10:33.828
79 6.0.0.629 2025.02.07 194f9 P P 7789 6891 2025.02.08 02:18:34.261 2025.02.08 02:18:42.050 2025.02.08 01:10:23.927 2025.02.08 01:10:30.818
80 6.0.0.628 2025.02.06 859d5 P P 7759 6913 2025.02.07 11:22:28.947 2025.02.07 11:22:36.706 2025.02.07 10:07:44.923 2025.02.07 10:07:51.836
81 6.0.0.621 2025.02.05 34fe7 P P 8258 6419 2025.02.07 02:32:22.142 2025.02.07 02:32:30.400 2025.02.07 01:17:28.748 2025.02.07 01:17:35.167
82 6.0.0.609 2025.02.04 76d57 P P 7542 6152 2025.02.05 02:32:03.587 2025.02.05 02:32:11.129 2025.02.05 01:17:32.381 2025.02.05 01:17:38.533
83 6.0.0.607 2025.02.03 1985b P P 8296 6687 2025.02.04 02:32:01.212 2025.02.04 02:32:09.508 2025.02.04 01:17:06.344 2025.02.04 01:17:13.031
84 6.0.0.601 2025.02.01 6af07 P P 7477 6666 2025.02.02 02:18:25.154 2025.02.02 02:18:32.631 2025.02.02 01:10:31.221 2025.02.02 01:10:37.887
85 6.0.0.600 2025.01.27 188de P P 8331 6163 2025.01.28 02:18:24.209 2025.01.28 02:18:32.540 2025.01.28 01:10:07.381 2025.01.28 01:10:13.544
86 6.0.0.599 2025.01.25 ba588 P P 7488 6158 2025.01.26 02:18:07.620 2025.01.26 02:18:15.108 2025.01.26 01:10:10.683 2025.01.26 01:10:16.841
87 6.0.0.598 2025.01.23 ddbc3 P P 7476 7159 2025.01.25 12:06:42.411 2025.01.25 12:06:49.887 2025.01.25 10:58:08.425 2025.01.25 10:58:15.584
88 6.0.0.595 2025.01.22 e62f3 P P 8286 6159 2025.01.23 02:18:34.477 2025.01.23 02:18:42.763 2025.01.23 01:10:12.660 2025.01.23 01:10:18.819
89 6.0.0.594 2025.01.21 47fb6 P P 7467 6166 2025.01.22 02:17:59.754 2025.01.22 02:18:07.221 2025.01.22 01:10:10.062 2025.01.22 01:10:16.228
90 6.0.0.590 2025.01.20 3d7c0 P P 8235 6187 2025.01.21 02:18:12.904 2025.01.21 02:18:21.139 2025.01.21 01:09:58.063 2025.01.21 01:10:04.250
91 6.0.0.588 2025.01.19 b1c4e P P 7473 6183 2025.01.20 02:17:38.584 2025.01.20 02:17:46.057 2025.01.20 01:09:54.294 2025.01.20 01:10:00.477
92 6.0.0.587 2025.01.18 63e6e P P 8268 6649 2025.01.19 02:17:27.534 2025.01.19 02:17:35.802 2025.01.19 01:09:45.422 2025.01.19 01:09:52.071
93 6.0.0.585 2025.01.16 2d6bb P P 8200 6100 2025.01.18 02:15:42.734 2025.01.18 02:15:50.934 2025.01.18 01:10:00.026 2025.01.18 01:10:06.126
94 6.0.0.584 2025.01.15 a0aa2 P P 8268 6934 2025.01.16 02:20:00.158 2025.01.16 02:20:08.426 2025.01.16 01:11:10.069 2025.01.16 01:11:17.003
95 6.0.0.581 2025.01.15 69690 P P 8319 5936 2025.01.15 18:29:54.150 2025.01.15 18:30:02.469 2025.01.15 17:20:00.052 2025.01.15 17:20:05.988
96 6.0.0.581 2025.01.14 21e9e P P 8281 6991 2025.01.15 02:19:00.590 2025.01.15 02:19:08.871 2025.01.15 01:10:59.420 2025.01.15 01:11:06.411
97 6.0.0.577 2025.01.14 91dce P P 7904 5935 2025.01.14 17:40:23.447 2025.01.14 17:40:31.351 2025.01.14 16:31:54.943 2025.01.14 16:32:00.878
98 6.0.0.577 2025.01.13 7e293 P P 7302 6931 2025.01.14 12:02:51.113 2025.01.14 12:02:58.415 2025.01.14 10:54:56.167 2025.01.14 10:55:03.098
99 6.0.0.576 2025.01.12 05898 P P 8216 6715 2025.01.13 02:20:30.746 2025.01.13 02:20:38.962 2025.01.13 01:11:10.986 2025.01.13 01:11:17.701
100 6.0.0.573 2025.01.10 c20f3 P P 8288 6922 2025.01.11 02:20:25.377 2025.01.11 02:20:33.665 2025.01.11 01:11:21.666 2025.01.11 01:11:28.588
101 6.0.0.571 2024.12.31 81bba P P 8231 6676 2025.01.01 02:19:27.399 2025.01.01 02:19:35.630 2025.01.01 01:10:38.093 2025.01.01 01:10:44.769
102 6.0.0.570 2024.12.30 c3c8d P P 8251 6676 2024.12.31 02:18:58.714 2024.12.31 02:19:06.965 2024.12.31 01:10:59.635 2024.12.31 01:11:06.311
103 6.0.0.565 2024.12.28 5fc59 P P 8730 5916 2024.12.29 18:14:23.378 2024.12.29 18:14:32.108 2024.12.29 17:06:10.389 2024.12.29 17:06:16.305
104 6.0.0.564 2024.12.26 12514 P P 8317 6942 2024.12.27 02:18:35.706 2024.12.27 02:18:44.023 2024.12.27 01:10:33.963 2024.12.27 01:10:40.905
105 6.0.0.560 2024.12.25 fa83e P P 8278 5898 2024.12.26 02:19:31.314 2024.12.26 02:19:39.592 2024.12.26 01:10:38.247 2024.12.26 01:10:44.145
106 6.0.0.559 2024.12.23 cc800 P P 8281 5912 2024.12.25 02:18:38.746 2024.12.25 02:18:47.027 2024.12.25 01:10:46.284 2024.12.25 01:10:52.196
107 6.0.0.556 2024.12.22 a0404 P P 8302 6994 2024.12.23 02:18:32.049 2024.12.23 02:18:40.351 2024.12.23 01:10:15.191 2024.12.23 01:10:22.185
108 6.0.0.555 2024.12.19 6990a P P 8457 6925 2024.12.21 13:13:24.592 2024.12.21 13:13:33.049 2024.12.21 12:04:43.299 2024.12.21 12:04:50.224
109 6.0.0.553 2024.12.17 d1f8a P P 8336 6658 2024.12.18 02:17:42.132 2024.12.18 02:17:50.468 2024.12.18 01:10:10.836 2024.12.18 01:10:17.494
110 6.0.0.552 2024.12.11 85e25 P P 8232 6685 2024.12.16 02:17:12.012 2024.12.16 02:17:20.244 2024.12.16 01:09:54.138 2024.12.16 01:10:00.823
111 6.0.0.550 2024.12.10 b37ac P P 7235 6654 2024.12.11 02:20:59.833 2024.12.11 02:21:07.068 2024.12.11 01:10:34.588 2024.12.11 01:10:41.242
112 6.0.0.548 2024.12.08 2cc77 P P 8570 5931 2024.12.09 02:21:57.124 2024.12.09 02:22:05.694 2024.12.09 01:12:17.497 2024.12.09 01:12:23.428
113 6.0.0.544 2024.12.05 96943 P P 7268 6978 2024.12.06 02:16:24.592 2024.12.06 02:16:31.860 2024.12.06 01:09:15.008 2024.12.06 01:09:21.986
114 6.0.0.543 2024.12.03 30b77 P P 7325 5957 2024.12.04 02:16:19.753 2024.12.04 02:16:27.078 2024.12.04 01:09:49.568 2024.12.04 01:09:55.525
115 6.0.0.540 2024.12.02 4a1f4 P P 7270 6681 2024.12.03 02:15:36.681 2024.12.03 02:15:43.951 2024.12.03 01:08:53.443 2024.12.03 01:09:00.124
116 6.0.0.539 2024.11.28 1f283 P P 7214 6696 2024.11.30 02:15:02.034 2024.11.30 02:15:09.248 2024.11.30 01:08:42.723 2024.11.30 01:08:49.419
117 6.0.0.535 2024.11.27 6551a P P 7596 6932 2024.11.28 02:13:51.858 2024.11.28 02:13:59.454 2024.11.28 01:08:01.967 2024.11.28 01:08:08.899
118 6.0.0.535 2024.11.26 77b95 P P 7231 6688 2024.11.27 02:14:00.130 2024.11.27 02:14:07.361 2024.11.27 01:08:19.004 2024.11.27 01:08:25.692
119 6.0.0.534 2024.11.25 e9584 P P 7234 6673 2024.11.26 02:14:16.795 2024.11.26 02:14:24.029 2024.11.26 01:08:05.087 2024.11.26 01:08:11.760
120 6.0.0.533 2024.11.17 933ac P P 6270 6193 2024.11.22 02:14:52.553 2024.11.22 02:14:58.823 2024.11.22 01:08:34.889 2024.11.22 01:08:41.082
121 6.0.0.532 2024.11.17 1a471 F F 3816 3064 2024.11.17 14:48:37.420 2024.11.17 14:48:41.236 2024.11.17 13:42:54.730 2024.11.17 13:42:57.794
122 6.0.0.532 2024.11.16 9e263 F F 3344 3069 2024.11.17 02:13:30.146 2024.11.17 02:13:33.490 2024.11.17 01:07:36.644 2024.11.17 01:07:39.713
123 6.0.0.530 2024.11.15 49804 F F 3264 3078 2024.11.16 02:11:00.366 2024.11.16 02:11:03.630 2024.11.16 01:07:33.356 2024.11.16 01:07:36.434
124 6.0.0.528 2024.11.14 9625b F F 3296 3095 2024.11.15 02:16:05.061 2024.11.15 02:16:08.357 2024.11.15 01:09:27.488 2024.11.15 01:09:30.583
125 6.0.0.526 2024.11.12 65b80 P P 6847 6217 2024.11.14 02:15:27.522 2024.11.14 02:15:34.369 2024.11.14 01:08:47.267 2024.11.14 01:08:53.484
126 6.0.0.523 2024.11.08 8ca23 P P 6253 5886 2024.11.11 02:13:31.151 2024.11.11 02:13:37.404 2024.11.11 01:08:09.102 2024.11.11 01:08:14.988
127 6.0.0.520 2024.11.08 52657 P P 6211 5830 2024.11.08 18:46:54.052 2024.11.08 18:47:00.263 2024.11.08 17:42:43.205 2024.11.08 17:42:49.035
128 6.0.0.520 2024.11.07 4eefa F F 3585 3350 2024.11.08 02:11:21.078 2024.11.08 02:11:24.663 2024.11.08 01:06:54.250 2024.11.08 01:06:57.600
129 6.0.0.516 2024.11.04 b0c36 P P 6257 6032 2024.11.05 02:13:41.866 2024.11.05 02:13:48.123 2024.11.05 01:07:59.516 2024.11.05 01:08:05.548
130 6.0.0.515 2024.10.30 d53f3 P P 6228 5881 2024.11.04 02:13:17.813 2024.11.04 02:13:24.041 2024.11.04 01:07:56.139 2024.11.04 01:08:02.020
131 6.0.0.512 2024.10.29 833ef P P 8804 5914 2024.10.30 02:16:14.977 2024.10.30 02:16:23.781 2024.10.30 01:09:16.035 2024.10.30 01:09:21.949
132 6.0.0.511 2024.10.26 c4bc9 P P 6293 5904 2024.10.29 02:15:32.616 2024.10.29 02:15:38.909 2024.10.29 01:08:47.847 2024.10.29 01:08:53.751
133 6.0.0.508 2024.10.24 a8f5b P P 6281 6478 2024.10.26 10:24:23.943 2024.10.26 10:24:30.224 2024.10.26 09:15:37.497 2024.10.26 09:15:43.975
134 6.0.0.502 2024.10.22 6bfd7 P P 6264 5998 2024.10.23 02:15:18.467 2024.10.23 02:15:24.731 2024.10.23 01:08:29.808 2024.10.23 01:08:35.806
135 6.0.0.500 2024.10.21 be565 P P 6282 6109 2024.10.22 02:15:46.846 2024.10.22 02:15:53.128 2024.10.22 01:08:46.985 2024.10.22 01:08:53.094
136 6.0.0.499 2024.10.19 6214b P P 6451 5897 2024.10.20 02:14:29.016 2024.10.20 02:14:35.467 2024.10.20 01:08:25.132 2024.10.20 01:08:31.029
137 6.0.0.498 2024.10.18 591a7 P P 6301 5933 2024.10.19 02:14:24.419 2024.10.19 02:14:30.720 2024.10.19 01:07:53.747 2024.10.19 01:07:59.680
138 6.0.0.494 2024.10.17 042ce P P 6239 5931 2024.10.18 02:14:33.958 2024.10.18 02:14:40.197 2024.10.18 01:08:22.195 2024.10.18 01:08:28.126
139 6.0.0.491 2024.10.14 dc5fb P P 6234 5910 2024.10.15 02:14:07.431 2024.10.15 02:14:13.665 2024.10.15 01:07:50.520 2024.10.15 01:07:56.430
140 6.0.0.489 2024.10.11 2ba59 P P 6263 5930 2024.10.12 02:14:06.982 2024.10.12 02:14:13.245 2024.10.12 01:07:33.144 2024.10.12 01:07:39.074
141 6.0.0.488 2024.10.09 1c93e P P 6264 5908 2024.10.10 02:13:15.759 2024.10.10 02:13:22.023 2024.10.10 01:07:55.903 2024.10.10 01:08:01.811
142 6.0.0.487 2024.10.06 065a3 P P 6187 5908 2024.10.07 02:14:54.434 2024.10.07 02:15:00.621 2024.10.07 01:08:40.218 2024.10.07 01:08:46.126
143 6.0.0.485 2024.10.05 9f5f7 P P 6306 5918 2024.10.06 02:14:28.754 2024.10.06 02:14:35.060 2024.10.06 01:08:29.396 2024.10.06 01:08:35.314
144 6.0.0.485 2024.10.04 e95c1 P P 6296 5894 2024.10.05 02:14:28.822 2024.10.05 02:14:35.118 2024.10.05 01:07:56.893 2024.10.05 01:08:02.787
145 6.0.0.483 2024.10.02 5e5ae P P 6215 6931 2024.10.03 02:15:36.415 2024.10.03 02:15:42.630 2024.10.03 01:08:54.470 2024.10.03 01:09:01.401
146 6.0.0.478 2024.09.30 b5010 P P 6281 5932 2024.10.01 02:14:41.870 2024.10.01 02:14:48.151 2024.10.01 01:08:08.731 2024.10.01 01:08:14.663
147 6.0.0.474 2024.09.26 e4efb P P 6263 5911 2024.09.30 02:14:33.770 2024.09.30 02:14:40.033 2024.09.30 01:08:06.417 2024.09.30 01:08:12.328
148 6.0.0.471 2024.09.25 dab71 P P 6266 5901 2024.09.26 02:14:08.723 2024.09.26 02:14:14.989 2024.09.26 01:08:19.458 2024.09.26 01:08:25.359
149 6.0.0.471 2024.09.24 01b51 P P 6212 5932 2024.09.25 02:14:59.456 2024.09.25 02:15:05.668 2024.09.25 01:08:41.579 2024.09.25 01:08:47.511
150 6.0.0.470 2024.09.23 77cc0 P P 6239 5939 2024.09.24 02:14:03.431 2024.09.24 02:14:09.670 2024.09.24 01:08:24.740 2024.09.24 01:08:30.679
151 6.0.0.467 2024.09.21 ea0b8 P P 6276 5901 2024.09.23 02:15:15.122 2024.09.23 02:15:21.398 2024.09.23 01:09:26.466 2024.09.23 01:09:32.367
152 6.0.0.466 2024.09.20 32dc6 P P 6211 5913 2024.09.21 02:13:29.180 2024.09.21 02:13:35.391 2024.09.21 01:07:59.797 2024.09.21 01:08:05.710
153 6.0.0.461 2024.09.17 2c895 P P 6288 5930 2024.09.18 02:12:54.141 2024.09.18 02:13:00.429 2024.09.18 01:07:15.054 2024.09.18 01:07:20.984
154 6.0.0.460 2024.09.11 3c253 P P 6544 6269 2024.09.17 02:13:08.508 2024.09.17 02:13:15.052 2024.09.17 01:07:33.196 2024.09.17 01:07:39.465
155 6.0.0.457 2024.09.09 fdc6f P P 6245 5935 2024.09.10 02:13:52.715 2024.09.10 02:13:58.960 2024.09.10 01:07:51.373 2024.09.10 01:07:57.308
156 6.0.0.455 2024.09.07 500d8 P P 6273 5910 2024.09.08 02:14:00.607 2024.09.08 02:14:06.880 2024.09.08 01:08:18.419 2024.09.08 01:08:24.329
157 6.0.0.454 2024.09.05 4d70f P P 6201 6911 2024.09.06 02:14:09.030 2024.09.06 02:14:15.231 2024.09.06 01:08:17.658 2024.09.06 01:08:24.569
158 6.0.0.452 2024.09.04 9ff9c P P 6279 5912 2024.09.05 02:13:44.627 2024.09.05 02:13:50.906 2024.09.05 01:07:49.754 2024.09.05 01:07:55.666
159 6.0.0.450 2024.09.02 27124 P P 6223 6666 2024.09.04 02:14:07.370 2024.09.04 02:14:13.593 2024.09.04 01:08:17.924 2024.09.04 01:08:24.590
160 6.0.0.447 2024.09.01 901b4 P P 6307 5902 2024.09.02 02:04:20.631 2024.09.02 02:04:26.938 2024.09.02 00:57:47.611 2024.09.02 00:57:53.513
161 6.0.0.446 2024.08.30 fe1b2 P P 6233 5886 2024.09.01 02:01:29.292 2024.09.01 02:01:35.525 2024.09.01 00:56:34.168 2024.09.01 00:56:40.054
162 6.0.0.444 2024.08.28 785d4 P P 6295 5898 2024.08.30 02:01:53.598 2024.08.30 02:01:59.893 2024.08.30 00:56:48.843 2024.08.30 00:56:54.741
163 6.0.0.442 2024.08.21 4a68f P P 6425 6418 2024.08.28 02:01:32.771 2024.08.28 02:01:39.196 2024.08.28 00:56:31.191 2024.08.28 00:56:37.609
164 6.0.0.441 2024.08.20 75042 P P 7233 5902 2024.08.21 02:01:24.954 2024.08.21 02:01:32.187 2024.08.21 00:55:45.277 2024.08.21 00:55:51.179
165 6.0.0.438 2024.08.16 088b5 P P 7269 6086 2024.08.19 02:04:32.817 2024.08.19 02:04:40.086 2024.08.19 00:57:10.104 2024.08.19 00:57:16.190
166 6.0.0.437 2024.08.14 3c88b P P 8338 5972 2024.08.16 02:07:46.509 2024.08.16 02:07:54.847 2024.08.16 00:58:14.273 2024.08.16 00:58:20.245
167 6.0.0.436 2024.08.13 b8e75 P P 8349 5954 2024.08.14 02:06:30.173 2024.08.14 02:06:38.522 2024.08.14 00:57:32.227 2024.08.14 00:57:38.181
168 6.0.0.432 2024.08.11 e82ac P P 8432 5972 2024.08.13 02:05:16.901 2024.08.13 02:05:25.333 2024.08.13 00:57:06.822 2024.08.13 00:57:12.794
169 6.0.0.431 2024.08.11 16bb1 P P 8327 6099 2024.08.11 18:10:34.940 2024.08.11 18:10:43.267 2024.08.11 17:02:06.686 2024.08.11 17:02:12.785
170 6.0.0.431 2024.08.09 de5a7 P P 7328 5947 2024.08.10 17:42:50.389 2024.08.10 17:42:57.717 2024.08.10 16:35:46.814 2024.08.10 16:35:52.761
171 6.0.0.428 2024.08.08 9191b P P 8521 5941 2024.08.10 02:03:24.709 2024.08.10 02:03:33.230 2024.08.10 00:56:25.379 2024.08.10 00:56:31.320
172 6.0.0.423 2024.08.07 33b41 P P 7498 5939 2024.08.08 09:02:54.070 2024.08.08 09:03:01.568 2024.08.08 07:55:41.957 2024.08.08 07:55:47.896
173 6.0.0.421 2024.08.06 ed60d P P 8226 6144 2024.08.07 01:57:58.265 2024.08.07 01:58:06.491 2024.08.07 00:54:36.737 2024.08.07 00:54:42.881
174 6.0.0.419 2024.08.05 3505a P P 6804 5854 2024.08.06 01:55:49.313 2024.08.06 01:55:56.117 2024.08.06 00:53:46.695 2024.08.06 00:53:52.549
175 6.0.0.409 2024.08.02 ec18f P P 6704 5868 2024.08.05 01:54:38.791 2024.08.05 01:54:45.495 2024.08.05 00:52:56.989 2024.08.05 00:53:02.857
176 6.0.0.406 2024.08.01 b20be P P 6938 5852 2024.08.02 01:53:24.256 2024.08.02 01:53:31.194 2024.08.02 00:52:18.783 2024.08.02 00:52:24.635
177 6.0.0.405 2024.07.31 a62ac P P 6713 5964 2024.08.01 02:01:34.700 2024.08.01 02:01:41.413 2024.08.01 00:58:51.476 2024.08.01 00:58:57.440
178 6.0.0.403 2024.07.29 30f03 P P 6734 5831 2024.07.30 01:56:48.947 2024.07.30 01:56:55.681 2024.07.30 00:54:06.189 2024.07.30 00:54:12.020
179 6.0.0.401 2024.07.26 24e41 P P 6736 5826 2024.07.27 01:56:18.556 2024.07.27 01:56:25.292 2024.07.27 00:53:35.073 2024.07.27 00:53:40.899
180 6.0.0.400 2024.07.24 5bb78 P P 6776 6367 2024.07.25 01:56:48.843 2024.07.25 01:56:55.619 2024.07.25 00:54:04.286 2024.07.25 00:54:10.653
181 6.0.0.398 2024.07.23 85b18 P E 6722 2221 2024.07.24 02:20:08.536 2024.07.24 02:20:15.258 2024.07.24 01:14:14.766 2024.07.24 01:14:16.987
182 6.0.0.397 2024.07.22 c734c P P 6737 5852 2024.07.23 01:56:34.808 2024.07.23 01:56:41.545 2024.07.23 00:53:49.576 2024.07.23 00:53:55.428
183 6.0.0.396 2024.07.13 cf952 P P 6727 6119 2024.07.22 01:56:46.350 2024.07.22 01:56:53.077 2024.07.22 00:53:59.223 2024.07.22 00:54:05.342
184 6.0.0.395 2024.07.10 845f4 P P 6664 5720 2024.07.13 01:55:56.733 2024.07.13 01:56:03.397 2024.07.13 00:54:27.238 2024.07.13 00:54:32.958
185 6.0.0.392 2024.07.09 ea301 P P 6704 5847 2024.07.10 02:04:13.199 2024.07.10 02:04:19.903 2024.07.10 00:55:41.922 2024.07.10 00:55:47.769
186 6.0.0.391 2024.07.08 7d50c P P 6770 5822 2024.07.09 02:00:43.144 2024.07.09 02:00:49.914 2024.07.09 00:55:56.229 2024.07.09 00:56:02.051
187 6.0.0.389 2024.07.05 cc71c P P 6724 5847 2024.07.06 02:01:18.875 2024.07.06 02:01:25.599 2024.07.06 00:56:15.491 2024.07.06 00:56:21.338
188 6.0.0.388 2024.06.30 e5700 P P 6760 5821 2024.07.01 02:01:28.043 2024.07.01 02:01:34.803 2024.07.01 00:56:16.813 2024.07.01 00:56:22.634
189 6.0.0.387 2024.06.27 7c28a P P 6670 5841 2024.06.28 02:01:06.980 2024.06.28 02:01:13.650 2024.06.28 00:56:28.129 2024.06.28 00:56:33.970
190 6.0.0.386 2024.06.23 7c57f P P 6679 5865 2024.06.24 01:56:10.697 2024.06.24 01:56:17.376 2024.06.24 00:53:37.197 2024.06.24 00:53:43.062
191 6.0.0.384 2024.06.21 24d99 P P 6743 5856 2024.06.22 01:52:46.342 2024.06.22 01:52:53.085 2024.06.22 00:52:22.244 2024.06.22 00:52:28.100
192 6.0.0.374 2024.06.13 0097d P P 7241 5844 2024.06.21 18:39:48.343 2024.06.21 18:39:55.584 2024.06.21 17:39:03.133 2024.06.21 17:39:08.977
193 6.0.0.373 2024.06.09 363f0 P P 6485 5610 2024.06.12 23:53:46.281 2024.06.12 23:53:52.766 2024.06.12 22:56:33.278 2024.06.12 22:56:38.888
194 6.0.0.372 2024.06.08 9e7f2 P P 6438 5595 2024.06.09 19:19:03.558 2024.06.09 19:19:09.996 2024.06.09 18:25:15.896 2024.06.09 18:25:21.491
195 6.0.0.368 2024.06.03 25f3e P P 6533 5723 2024.06.15 12:15:21.145 2024.06.15 12:15:27.678 2024.06.15 11:15:52.978 2024.06.15 11:15:58.701
196 6.0.0.366 2024.05.28 8e46f P P 6439 5595 2024.06.10 20:13:11.185 2024.06.10 20:13:17.624 2024.06.10 19:19:01.031 2024.06.10 19:19:06.626
197 6.0.0.363 2024.05.28 95442 P P 6485 5610 2024.06.10 16:33:17.133 2024.06.10 16:33:23.618 2024.06.10 15:39:10.261 2024.06.10 15:39:15.871
198 6.0.0.363 2024.05.28 40d0b P P 6517 5595 2024.06.10 18:26:37.636 2024.06.10 18:26:44.153 2024.06.10 17:32:33.472 2024.06.10 17:32:39.067
199 6.0.0.362 2024.05.24 ecc49 P P 7594 5610 2024.05.24 23:53:37.818 2024.05.24 23:53:45.412 2024.05.24 22:56:27.752 2024.05.24 22:56:33.362
200 6.0.0.359 2024.05.23 9cb11 P P 6610 5594 2024.05.23 23:54:15.957 2024.05.23 23:54:22.567 2024.05.23 22:56:52.362 2024.05.23 22:56:57.956
201 6.0.0.358 2024.05.21 995dd P P 6594 5594 2024.05.22 23:54:20.537 2024.05.22 23:54:27.131 2024.05.22 22:56:29.304 2024.05.22 22:56:34.898
202 6.0.0.357 2024.05.18 bf6c4 P P 6548 5594 2024.05.20 23:53:07.574 2024.05.20 23:53:14.122 2024.05.20 22:56:25.868 2024.05.20 22:56:31.462
203 6.0.0.356 2024.05.17 eab06 P P 6579 5595 2024.05.17 23:53:02.306 2024.05.17 23:53:08.885 2024.05.17 22:56:35.510 2024.05.17 22:56:41.105
204 6.0.0.355 2024.05.16 8dd6e P P 6579 5610 2024.05.16 23:53:08.676 2024.05.16 23:53:15.255 2024.05.16 22:56:22.751 2024.05.16 22:56:28.361
205 6.0.0.354 2024.05.15 d3adc P P 6563 5595 2024.05.15 23:53:14.755 2024.05.15 23:53:21.318 2024.05.15 22:56:42.840 2024.05.15 22:56:48.435
206 6.0.0.351 2024.05.14 2e3e0 P P 6610 5595 2024.05.14 23:52:37.758 2024.05.14 23:52:44.368 2024.05.14 22:56:13.647 2024.05.14 22:56:19.242
207 6.0.0.348 2024.05.08 e1ec4 P P 6580 5594 2024.05.13 23:53:04.827 2024.05.13 23:53:11.407 2024.05.13 22:56:35.827 2024.05.13 22:56:41.421
208 6.0.0.346 2024.05.07 9d7de P P 6626 5625 2024.05.07 23:53:13.705 2024.05.07 23:53:20.331 2024.05.07 22:56:45.013 2024.05.07 22:56:50.638
209 6.0.0.345 2024.05.06 154a0 P P 6610 5594 2024.05.06 23:52:48.956 2024.05.06 23:52:55.566 2024.05.06 22:56:17.642 2024.05.06 22:56:23.236
210 6.0.0.344 2024.05.02 b49d8 P P 6594 5595 2024.05.02 23:51:56.290 2024.05.02 23:52:02.884 2024.05.02 22:55:54.657 2024.05.02 22:56:00.252
211 6.0.0.342 2024.04.29 e6247 P P 6579 5594 2024.04.29 23:52:03.991 2024.04.29 23:52:10.570 2024.04.29 22:56:15.011 2024.04.29 22:56:20.605
212 6.0.0.339 2024.04.28 0bcba P P 6453 5610 2024.04.28 23:52:02.203 2024.04.28 23:52:08.656 2024.04.28 22:55:55.511 2024.04.28 22:56:01.121
213 6.0.0.336 2024.04.24 7d2ac P P 6516 5594 2024.04.26 23:52:11.146 2024.04.26 23:52:17.662 2024.04.26 22:55:56.645 2024.04.26 22:56:02.239
214 6.0.0.333 2024.04.23 85d98 P P 6579 5595 2024.04.23 23:52:40.707 2024.04.23 23:52:47.286 2024.04.23 22:56:18.797 2024.04.23 22:56:24.392
215 6.0.0.328 2024.04.22 485d0 P P 6532 5595 2024.04.22 23:52:18.287 2024.04.22 23:52:24.819 2024.04.22 22:55:55.407 2024.04.22 22:56:01.002
216 6.0.0.327 2024.04.19 eeed9 P P 7594 5594 2024.04.21 23:52:29.755 2024.04.21 23:52:37.349 2024.04.21 22:56:24.400 2024.04.21 22:56:29.994
217 6.0.0.325 2024.04.18 f5930 P P 7532 5594 2024.04.18 23:52:30.875 2024.04.18 23:52:38.407 2024.04.18 22:56:00.134 2024.04.18 22:56:05.728
218 6.0.0.324 2024.04.17 84ac9 P P 6501 5595 2024.04.17 23:53:04.271 2024.04.17 23:53:10.772 2024.04.17 22:56:14.739 2024.04.17 22:56:20.334
219 6.0.0.321 2024.04.16 eba22 P P 6547 5594 2024.04.16 23:51:29.143 2024.04.16 23:51:35.690 2024.04.16 22:55:42.213 2024.04.16 22:55:47.807
220 6.0.0.315 2024.04.15 4e80d P P 6579 5594 2024.04.15 23:51:59.904 2024.04.15 23:52:06.483 2024.04.15 22:56:00.865 2024.04.15 22:56:06.459
221 6.0.0.313 2024.04.14 b6eab P P 6376 5595 2024.04.14 23:47:57.394 2024.04.14 23:48:03.770 2024.04.14 22:55:49.952 2024.04.14 22:55:55.547
222 6.0.0.313 2024.04.12 aaf5f P P 6470 5595 2024.04.12 23:47:36.985 2024.04.12 23:47:43.455 2024.04.12 22:55:26.611 2024.04.12 22:55:32.206
223 6.0.0.312 2024.04.12 ff9f0 P P 6438 5594 2024.04.12 10:34:21.587 2024.04.12 10:34:28.025 2024.04.12 09:42:31.838 2024.04.12 09:42:37.432
224 6.0.0.312 2024.04.04 3496c P P 6376 5579 2024.04.09 23:47:23.572 2024.04.09 23:47:29.948 2024.04.09 22:56:20.557 2024.04.09 22:56:26.136
225 6.0.0.310 2024.04.03 e93f6 P P 6501 5625 2024.04.04 09:58:20.352 2024.04.04 09:58:26.853 2024.04.04 09:08:25.710 2024.04.04 09:08:31.335
226 6.0.0.308 2024.04.03 fa979 P P 6438 5579 2024.04.03 17:12:03.174 2024.04.03 17:12:09.612 2024.04.03 16:22:06.638 2024.04.03 16:22:12.217
227 6.0.0.308 2024.04.02 65562 P P 6485 5579 2024.04.03 00:52:00.162 2024.04.03 00:52:06.647 2024.04.03 00:02:58.389 2024.04.03 00:03:03.968
228 6.0.0.305 2024.04.01 8a4f6 P P 6266 5594 2024.04.02 09:04:24.131 2024.04.02 09:04:30.397 2024.04.02 08:15:18.762 2024.04.02 08:15:24.356
229 6.0.0.303 2024.03.31 ecb39 P P 6468 5593 2024.04.01 09:10:19.395 2024.04.01 09:10:25.863 2024.04.01 05:42:29.144 2024.04.01 05:42:34.737
230 6.0.0.301 2024.03.25 69d0a P P 6421 5593 2024.03.28 23:08:48.525 2024.03.28 23:08:54.946 2024.03.28 22:19:54.679 2024.03.28 22:20:00.272
231 6.0.0.299 2024.03.22 b1ba8 P P 6484 5577 2024.03.24 00:39:41.043 2024.03.24 00:39:47.527 2024.03.23 23:49:42.095 2024.03.23 23:49:47.672
232 6.0.0.295 2024.03.22 ef66a P P 6469 5578 2024.03.22 13:30:13.825 2024.03.22 13:30:20.294 2024.03.22 12:40:29.004 2024.03.22 12:40:34.582
233 6.0.0.295 2024.03.21 bf5ab P P 6234 5578 2024.03.21 22:50:23.609 2024.03.21 22:50:29.843 2024.03.21 22:00:31.908 2024.03.21 22:00:37.486
234 6.0.0.294 2024.03.20 bd00d P P 6452 5577 2024.03.21 01:53:12.030 2024.03.21 01:53:18.482 2024.03.21 01:03:26.147 2024.03.21 01:03:31.724
235 6.0.0.293 2024.03.20 fb994 P P 6453 5578 2024.03.20 18:25:31.596 2024.03.20 18:25:38.049 2024.03.20 17:35:42.875 2024.03.20 17:35:48.453

Elapsed time, ms. Chart for last 150 runs:

Last commits information (all timestamps in UTC):