Jump to: output_first_mismatch    outcomes_full_history    elapsed_time_chart
Show cross-report outcomes.

Annotation type Annotation details
2 @message
assert   
  - Problem(s) detected:
  - blob_err:
  - arithmetic exception, numeric overflow, or string truncation
  - -Cannot transliterate character between character sets

LOG DETAILS:

2024-04-05 06:52:09.211
2024-04-05 06:52:09.211 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2024-04-05 06:52:09.211 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2024-04-05 06:52:09.211 tmp_data = WindowsPath('R:/temp/qa/fbqa/test_12055/tmp_blob_for_replication.dat')
2024-04-05 06:52:09.211 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211     @pytest.mark.replication
2024-04-05 06:52:09.211     @pytest.mark.version('>=4.0.5')
2024-04-05 06:52:09.211     def test_1(act_db_main: Action,  act_db_repl: Action, tmp_data: Path, capsys):
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         out_prep, out_main, out_drop, blob_err = '', '', '', ''
2024-04-05 06:52:09.211         # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2024-04-05 06:52:09.211         # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2024-04-05 06:52:09.211         # It will return '.' rather than full path+filename.
2024-04-05 06:52:09.211         # Use only con.info.name for that!
2024-04-05 06:52:09.211         #
2024-04-05 06:52:09.211         db_info = {}
2024-04-05 06:52:09.211         for a in (act_db_main, act_db_repl):
2024-04-05 06:52:09.211             with a.db.connect() as con:
2024-04-05 06:52:09.211                 db_info[a,  'db_full_path'] = con.info.name
2024-04-05 06:52:09.211                 cur = con.cursor()
2024-04-05 06:52:09.211                 cur.execute('select trim(rdb$character_set_name) from rdb$database')
2024-04-05 06:52:09.211                 for r in cur:
2024-04-05 06:52:09.211                     db_info[a, 'db_cset_initial'] = r[0]
2024-04-05 06:52:09.211                 con.execute_immediate('alter database set default character set utf8')
2024-04-05 06:52:09.211                 con.commit()
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         # Must be EMPTY:
2024-04-05 06:52:09.211         out_prep = capsys.readouterr().out
2024-04-05 06:52:09.211         if out_prep:
2024-04-05 06:52:09.211             # Some problem raised during change DB header(s)
2024-04-05 06:52:09.211             pass
2024-04-05 06:52:09.211         else:
2024-04-05 06:52:09.211             sql_init = '''
2024-04-05 06:52:09.211                 set bail on;
2024-04-05 06:52:09.211                 recreate table test (
2024-04-05 06:52:09.211                     id bigint generated by default as identity constraint test_pk primary key
2024-04-05 06:52:09.211                     ,v varchar(30) character set utf8
2024-04-05 06:52:09.211                     ,b blob sub_type text character set utf8
2024-04-05 06:52:09.211                 );
2024-04-05 06:52:09.211                 commit;
2024-04-05 06:52:09.211             '''
2024-04-05 06:52:09.211             act_db_main.isql(switches=['-q'], charset = 'utf8', input = sql_init, combine_output = True)
2024-04-05 06:52:09.211             out_prep = act_db_main.clean_stdout
2024-04-05 06:52:09.211             act_db_main.reset()
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         if out_prep:
2024-04-05 06:52:09.211             # Some problem raised during init_sql execution
2024-04-05 06:52:09.211             pass
2024-04-05 06:52:09.211         else:
2024-04-05 06:52:09.211             # Query to be used for check that all DB objects present in replica (after last DML statement completed on master DB):
2024-04-05 06:52:09.211             ddl_ready_query = "select 1 from rdb$relations where rdb$relation_name = upper('test')"
2024-04-05 06:52:09.211             ##############################################################################
2024-04-05 06:52:09.211             ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
2024-04-05 06:52:09.211             ##############################################################################
2024-04-05 06:52:09.211             watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query)
2024-04-05 06:52:09.211             # Must be EMPTY:
2024-04-05 06:52:09.211             out_prep = capsys.readouterr().out
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         if out_prep:
2024-04-05 06:52:09.211             # Some problem raised with delivering DDL changes to replica
2024-04-05 06:52:09.211             pass
2024-04-05 06:52:09.211         else:
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             cp1251_txt1 = bytes('', 'cp1251').decode('cp1251')
2024-04-05 06:52:09.211             cp1251_txt2 = bytes('', 'cp1251').decode('cp1251')
2024-04-05 06:52:09.211             with act_db_main.db.connect(charset = 'win1251') as con:
2024-04-05 06:52:09.211                 cur = con.cursor()
2024-04-05 06:52:09.211                 ps = cur.prepare("insert into test(v, b) values(?, ?)")
2024-04-05 06:52:09.211                 cur.execute(ps, (cp1251_txt1, None))
2024-04-05 06:52:09.211                 cur.execute(ps, (None, cp1251_txt2))
2024-04-05 06:52:09.211                 con.commit()
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             # Must be EMPTY:
2024-04-05 06:52:09.211             out_main = capsys.readouterr().out
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         if out_main:
2024-04-05 06:52:09.211             # Some problem raised with writing blob into replica or master DB:
2024-04-05 06:52:09.211             pass
2024-04-05 06:52:09.211         else:
2024-04-05 06:52:09.211             # No errors must be now. We have to wait now until blob from MASTER be delivered
2024-04-05 06:52:09.211             # to REPLICA and replace there "old" blob (in the record with ID = 1).
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             # Query to be used that replica DB contains all expected data (after last DML statement completed on master DB):
2024-04-05 06:52:09.211             isql_check_script = """
2024-04-05 06:52:09.211                 set bail on;
2024-04-05 06:52:09.211                 set list on;
2024-04-05 06:52:09.211                 set count on;
2024-04-05 06:52:09.211                 select
2024-04-05 06:52:09.211                     rdb$get_context('SYSTEM','REPLICA_MODE') replica_mode
2024-04-05 06:52:09.211                     ,id
2024-04-05 06:52:09.211                 from test
2024-04-05 06:52:09.211                 where id = 2;
2024-04-05 06:52:09.211             """
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             isql_expected_out = f"""
2024-04-05 06:52:09.211                 REPLICA_MODE                    READ-ONLY
2024-04-05 06:52:09.211                 ID                              2
2024-04-05 06:52:09.211                 Records affected: 1
2024-04-05 06:52:09.211             """
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             ##############################################################################
2024-04-05 06:52:09.211             ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
2024-04-05 06:52:09.211             ##############################################################################
2024-04-05 06:52:09.211             watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, '', isql_check_script, isql_expected_out)
2024-04-05 06:52:09.211             # Must be EMPTY:
2024-04-05 06:52:09.211             out_main = capsys.readouterr().out
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         if out_main:
2024-04-05 06:52:09.211             # Some problem raised with writing blob into replica or master DB:
2024-04-05 06:52:09.211             pass
2024-04-05 06:52:09.211         else:
2024-04-05 06:52:09.211             with act_db_repl.db.connect(charset = 'win1251') as con:
2024-04-05 06:52:09.211                 cur = con.cursor()
2024-04-05 06:52:09.211                 try:
2024-04-05 06:52:09.211                     cur.execute("select id from test where b = ?", (cp1251_txt2,))
2024-04-05 06:52:09.211                     for r in cur:
2024-04-05 06:52:09.211                         pass
2024-04-05 06:52:09.211                 except DatabaseError as e:
2024-04-05 06:52:09.211                     # On 6.0.0.217 error raised here:
2024-04-05 06:52:09.211                     # arithmetic exception, numeric overflow, or string truncation
2024-04-05 06:52:09.211                     # -Cannot transliterate character between character sets
2024-04-05 06:52:09.211                     #
2024-04-05 06:52:09.211                     blob_err = e.__str__()
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         drop_db_objects(act_db_main, act_db_repl, capsys)
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         # Return character set to NONE for both databases:
2024-04-05 06:52:09.211         for a in (act_db_main, act_db_repl):
2024-04-05 06:52:09.211             with a.db.connect() as con:
2024-04-05 06:52:09.211                 con.execute_immediate(f"alter database set default character set {db_info[a, 'db_cset_initial']}")
2024-04-05 06:52:09.211                 con.commit()
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         # Must be EMPTY:
2024-04-05 06:52:09.211         out_drop = capsys.readouterr().out
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211         if [ x for x in (out_prep, out_main, blob_err, out_drop) if x.strip() ]:
2024-04-05 06:52:09.211             # We have a problem either with DDL/DML or with dropping DB objects.
2024-04-05 06:52:09.211             # First, we have to RECREATE both master and slave databases
2024-04-05 06:52:09.211             # (otherwise further execution of this test or other replication-related tests most likely will fail):
2024-04-05 06:52:09.211             out_reset = reset_replication(act_db_main, act_db_repl, db_info[act_db_main,'db_full_path'], db_info[act_db_repl,'db_full_path'])
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211             # Next, we display out_main, out_drop and out_reset:
2024-04-05 06:52:09.211             #
2024-04-05 06:52:09.211             print('Problem(s) detected:')
2024-04-05 06:52:09.211             if out_prep.strip():
2024-04-05 06:52:09.211                 print('out_prep:')
2024-04-05 06:52:09.211                 print(out_prep)
2024-04-05 06:52:09.211             if out_main.strip():
2024-04-05 06:52:09.211                 print('out_main:')
2024-04-05 06:52:09.211                 print(out_main)
2024-04-05 06:52:09.211             if blob_err.strip():
2024-04-05 06:52:09.211                 print('blob_err:')
2024-04-05 06:52:09.211                 print(blob_err)
2024-04-05 06:52:09.211             if out_drop.strip():
2024-04-05 06:52:09.211                 print('out_drop:')
2024-04-05 06:52:09.211                 print(out_drop)
2024-04-05 06:52:09.211             if out_reset.strip():
2024-04-05 06:52:09.211                 print('out_reset:')
2024-04-05 06:52:09.211                 print(out_reset)
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211 >           assert '' == capsys.readouterr().out
2024-04-05 06:52:09.211 E           assert
2024-04-05 06:52:09.211 E             - Problem(s) detected:
2024-04-05 06:52:09.211 E             - blob_err:
2024-04-05 06:52:09.211 E             - arithmetic exception, numeric overflow, or string truncation
2024-04-05 06:52:09.211 E             - -Cannot transliterate character between character sets
2024-04-05 06:52:09.211
2024-04-05 06:52:09.211 tests\functional\replication\test_blob_characters_garbled_when_conn_charset_differs.py:490: AssertionError
3 #text
act_db_main = <firebird.qa.plugin.Action pytest object at [hex]>
act_db_repl = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_data = WindowsPath('R:/temp/qa/fbqa/test_12055/tmp_blob_for_replication.dat')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.replication
    @pytest.mark.version('>=4.0.5')
    def test_1(act_db_main: Action,  act_db_repl: Action, tmp_data: Path, capsys):
    
        out_prep, out_main, out_drop, blob_err = '', '', '', ''
        # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
        # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
        # It will return '.' rather than full path+filename.
        # Use only con.info.name for that!
        #
        db_info = {}
        for a in (act_db_main, act_db_repl):
            with a.db.connect() as con:
                db_info[a,  'db_full_path'] = con.info.name
                cur = con.cursor()
                cur.execute('select trim(rdb$character_set_name) from rdb$database')
                for r in cur:
                    db_info[a, 'db_cset_initial'] = r[0]
                con.execute_immediate('alter database set default character set utf8')
                con.commit()
    
        # Must be EMPTY:
        out_prep = capsys.readouterr().out
        if out_prep:
            # Some problem raised during change DB header(s)
            pass
        else:
            sql_init = '''
                set bail on;
                recreate table test (
                    id bigint generated by default as identity constraint test_pk primary key
                    ,v varchar(30) character set utf8
                    ,b blob sub_type text character set utf8
                );
                commit;
            '''
            act_db_main.isql(switches=['-q'], charset = 'utf8', input = sql_init, combine_output = True)
            out_prep = act_db_main.clean_stdout
            act_db_main.reset()
    
        if out_prep:
            # Some problem raised during init_sql execution
            pass
        else:
            # Query to be used for check that all DB objects present in replica (after last DML statement completed on master DB):
            ddl_ready_query = "select 1 from rdb$relations where rdb$relation_name = upper('test')"
            ##############################################################################
            ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
            ##############################################################################
            watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, ddl_ready_query)
            # Must be EMPTY:
            out_prep = capsys.readouterr().out
    
        if out_prep:
            # Some problem raised with delivering DDL changes to replica
            pass
        else:
    
            cp1251_txt1 = bytes('привет', 'cp1251').decode('cp1251')
            cp1251_txt2 = bytes('мир', 'cp1251').decode('cp1251')
            with act_db_main.db.connect(charset = 'win1251') as con:
                cur = con.cursor()
                ps = cur.prepare("insert into test(v, b) values(?, ?)")
                cur.execute(ps, (cp1251_txt1, None))
                cur.execute(ps, (None, cp1251_txt2))
                con.commit()
    
            # Must be EMPTY:
            out_main = capsys.readouterr().out
    
        if out_main:
            # Some problem raised with writing blob into replica or master DB:
            pass
        else:
            # No errors must be now. We have to wait now until blob from MASTER be delivered
            # to REPLICA and replace there "old" blob (in the record with ID = 1).
    
            # Query to be used that replica DB contains all expected data (after last DML statement completed on master DB):
            isql_check_script = """
                set bail on;
                set list on;
                set count on;
                select
                    rdb$get_context('SYSTEM','REPLICA_MODE') replica_mode
                    ,id
                from test
                where id = 2;
            """
    
            isql_expected_out = f"""
                REPLICA_MODE                    READ-ONLY
                ID                              2
                Records affected: 1
            """
    
            ##############################################################################
            ###  W A I T   U N T I L    R E P L I C A    B E C O M E S   A C T U A L   ###
            ##############################################################################
            watch_replica( act_db_repl, MAX_TIME_FOR_WAIT_DATA_IN_REPLICA, '', isql_check_script, isql_expected_out)
            # Must be EMPTY:
            out_main = capsys.readouterr().out
    
        if out_main:
            # Some problem raised with writing blob into replica or master DB:
            pass
        else:
            with act_db_repl.db.connect(charset = 'win1251') as con:
                cur = con.cursor()
                try:
                    cur.execute("select id from test where b = ?", (cp1251_txt2,))
                    for r in cur:
                        pass
                except DatabaseError as e:
                    # On 6.0.0.217 error raised here:
                    # arithmetic exception, numeric overflow, or string truncation
                    # -Cannot transliterate character between character sets
                    #
                    blob_err = e.__str__()
    
        drop_db_objects(act_db_main, act_db_repl, capsys)
    
        # Return character set to NONE for both databases:
        for a in (act_db_main, act_db_repl):
            with a.db.connect() as con:
                con.execute_immediate(f"alter database set default character set {db_info[a, 'db_cset_initial']}")
                con.commit()
    
        # Must be EMPTY:
        out_drop = capsys.readouterr().out
    
        if [ x for x in (out_prep, out_main, blob_err, out_drop) if x.strip() ]:
            # We have a problem either with DDL/DML or with dropping DB objects.
            # First, we have to RECREATE both master and slave databases
            # (otherwise further execution of this test or other replication-related tests most likely will fail):
            out_reset = reset_replication(act_db_main, act_db_repl, db_info[act_db_main,'db_full_path'], db_info[act_db_repl,'db_full_path'])
    
            # Next, we display out_main, out_drop and out_reset:
            #
            print('Problem(s) detected:')
            if out_prep.strip():
                print('out_prep:')
                print(out_prep)
            if out_main.strip():
                print('out_main:')
                print(out_main)
            if blob_err.strip():
                print('blob_err:')
                print(blob_err)
            if out_drop.strip():
                print('out_drop:')
                print(out_drop)
            if out_reset.strip():
                print('out_reset:')
                print(out_reset)
    
>           assert '' == capsys.readouterr().out
E           assert   
E             - Problem(s) detected:
E             - blob_err:
E             - arithmetic exception, numeric overflow, or string truncation
E             - -Cannot transliterate character between character sets

tests\functional\replication\test_blob_characters_garbled_when_conn_charset_differs.py:490: 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 4.0.6.3189 2025.02.25 1a1a5 P P 9274 9629 2025.06.28 13:27:10.202 2025.06.28 13:27:19.476 2025.06.28 12:26:16.992 2025.06.28 12:26:26.621
2 4.0.6.3184 2025.02.24 9388c P F 8589 2384 2025.02.25 11:05:48.226 2025.02.25 11:05:56.815 2025.02.25 10:03:02.073 2025.02.25 10:03:04.457
3 4.0.6.3183 2025.02.17 e4762 P P 9342 8753 2025.02.24 11:37:50.749 2025.02.24 11:38:00.091 2025.02.24 10:36:56.552 2025.02.24 10:37:05.305
4 4.0.6.3169 2024.12.13 42cc1 P P 9300 8780 2025.02.14 08:25:36.982 2025.02.14 08:25:46.282 2025.02.14 07:24:36.109 2025.02.14 07:24:44.889
5 4.0.6.3169 2024.12.08 50eb6 P P 9418 9013 2024.12.11 11:22:11.171 2024.12.11 11:22:20.589 2024.12.11 10:21:31.267 2024.12.11 10:21:40.280
6 4.0.6.3168 2024.12.07 98d69 P P 8354 9781 2024.12.08 04:05:49.337 2024.12.08 04:05:57.691 2024.12.08 03:03:15.721 2024.12.08 03:03:25.502
7 4.0.6.3168 2024.12.05 cee43 P P 9286 9778 2024.12.06 04:09:05.712 2024.12.06 04:09:14.998 2024.12.06 03:07:47.760 2024.12.06 03:07:57.538
8 4.0.6.3168 2024.11.28 48149 P P 9345 8750 2024.12.03 11:02:12.857 2024.12.03 11:02:22.202 2024.12.03 10:02:12.181 2024.12.03 10:02:20.931
9 4.0.6.3163 2024.10.30 832db P P 9279 9783 2024.11.28 11:00:53.033 2024.11.28 11:01:02.312 2024.11.28 10:01:03.107 2024.11.28 10:01:12.890
10 4.0.6.3163 2024.10.16 2bb10 P P 9362 9609 2024.10.30 11:09:54.993 2024.10.30 11:10:04.355 2024.10.30 10:09:57.437 2024.10.30 10:10:07.046
11 4.0.6.3147 2024.09.10 a4d11 P F 9272 2206 2024.10.16 04:17:27.681 2024.10.16 04:17:36.953 2024.10.16 03:15:00.260 2024.10.16 03:15:02.466
12 4.0.6.3147 2024.08.31 4655b P P 9424 9724 2024.09.10 11:15:44.250 2024.09.10 11:15:53.674 2024.09.10 10:11:15.810 2024.09.10 10:11:25.534
13 4.0.6.3140 2024.08.16 1dd8b P F 9332 2191 2024.09.01 11:38:08.636 2024.09.01 11:38:17.968 2024.09.01 10:32:38.281 2024.09.01 10:32:40.472
14 4.0.6.3140 2024.08.09 34747 P P 8490 8738 2024.08.16 11:18:35.498 2024.08.16 11:18:43.988 2024.08.16 10:14:28.837 2024.08.16 10:14:37.575
15 4.0.5.3110 2024.08.06 f851c P P 8384 8836 2024.08.09 10:57:18.741 2024.08.09 10:57:27.125 2024.08.09 09:54:04.972 2024.08.09 09:54:13.808
16 4.0.5.3110 2024.07.30 c6527 P P 8812 8621 2024.08.06 06:32:45.424 2024.08.06 06:32:54.236 2024.08.06 05:35:23.793 2024.08.06 05:35:32.414
17 4.0.5.3109 2024.06.11 6addf P P 8689 8793 2024.07.30 09:50:20.310 2024.07.30 09:50:28.999 2024.07.30 08:55:03.096 2024.07.30 08:55:11.889
18 4.0.5.3097 2024.05.09 27fa6 P P 10642 8532 2024.06.11 06:07:19.750 2024.06.11 06:07:30.392 2024.06.11 05:16:04.989 2024.06.11 05:16:13.521
19 4.0.5.3091 2024.04.29 bd0aa P P 9661 8532 2024.05.09 18:46:16.937 2024.05.09 18:46:26.598 2024.05.09 17:55:35.402 2024.05.09 17:55:43.934
20 4.0.5.3089 2024.04.20 9eb9b P P 10549 7517 2024.04.29 06:54:45.510 2024.04.29 06:54:56.059 2024.04.29 06:04:23.191 2024.04.29 06:04:30.708
21 4.0.5.3083 2024.04.06 300f9 P P 8407 10657 2024.04.20 07:18:09.965 2024.04.20 07:18:18.372 2024.04.20 06:27:22.929 2024.04.20 06:27:33.586
22 4.0.5.3052 2024.03.16 0f422 F F 11205 11049 2024.04.05 03:44:14.878 2024.04.05 03:44:26.083 2024.04.05 02:55:19.133 2024.04.05 02:55:30.182
23 4.0.5.3052 2024.03.16 ce273 F F 10781 8875 2024.03.29 15:09:30.705 2024.03.29 15:09:41.486 2024.03.29 14:23:20.917 2024.03.29 14:23:29.792
24 4.0.5.3052 2024.02.12 cd058 F F 10750 7881 2024.03.29 16:37:55.653 2024.03.29 16:38:06.403 2024.03.29 15:51:47.394 2024.03.29 15:51:55.275
25 4.0.5.3052 2024.02.07 be290 F F 8766 8875 2024.03.29 18:49:27.542 2024.03.29 18:49:36.308 2024.03.29 18:03:16.192 2024.03.29 18:03:25.067
26 4.0.5.3052 2024.02.07 6409b F F 8765 8875 2024.03.29 20:33:36.904 2024.03.29 20:33:45.669 2024.03.29 19:47:28.363 2024.03.29 19:47:37.238
27 4.0.5.3052 2024.02.02 bbc3f F F 10610 7875 2024.03.29 22:42:41.259 2024.03.29 22:42:51.869 2024.03.29 21:56:29.357 2024.03.29 21:56:37.232
28 4.0.5.3052 2024.01.26 48b7c F F 8609 9875 2024.03.30 00:09:56.599 2024.03.30 00:10:05.208 2024.03.29 23:23:41.236 2024.03.29 23:23:51.111
29 4.0.5.3052 2024.01.26 9a7b3 F F 10625 8890 2024.03.30 07:10:53.171 2024.03.30 07:11:03.796 2024.03.30 06:24:41.249 2024.03.30 06:24:50.139
30 4.0.5.3049 2024.01.25 f6b9d F F 10547 9672 2024.03.30 09:17:58.273 2024.03.30 09:18:08.820 2024.03.30 08:32:10.026 2024.03.30 08:32:19.698
31 4.0.5.3049 2024.01.08 b67ce F F 11297 11047 2024.03.30 11:05:58.823 2024.03.30 11:06:10.120 2024.03.30 10:10:44.193 2024.03.30 10:10:55.240
32 4.0.5.3049 2024.01.08 97577 F F 10406 11047 2024.03.30 16:10:50.424 2024.03.30 16:11:00.830 2024.03.30 15:15:56.479 2024.03.30 15:16:07.526
33 4.0.5.3049 2024.01.05 2d8b0 F F 9219 10054 2024.03.30 19:28:40.544 2024.03.30 19:28:49.763 2024.03.30 18:33:57.787 2024.03.30 18:34:07.841
34 4.0.5.3049 2024.01.04 431e5 F F 9547 8797 2024.03.30 21:06:52.757 2024.03.30 21:07:02.304 2024.03.30 20:21:13.955 2024.03.30 20:21:22.752
35 4.0.5.3049 2024.01.04 e33b4 F F 9703 9781 2024.03.30 23:18:45.586 2024.03.30 23:18:55.289 2024.03.30 22:32:59.765 2024.03.30 22:33:09.546
36 4.0.5.3049 2024.01.04 207ef F F 10531 9782 2024.03.31 01:02:15.863 2024.03.31 01:02:26.394 2024.03.31 00:16:27.589 2024.03.31 00:16:37.371
37 4.0.5.3034 2023.12.12 c05ff F F 10516 7813 2024.03.31 06:54:52.971 2024.03.31 06:55:03.487 2024.03.31 06:09:01.578 2024.03.31 06:09:09.391
38 4.0.5.3034 2023.12.12 3a40e F F 10735 10798 2024.03.31 15:29:36.188 2024.03.31 15:29:46.923 2024.03.31 14:43:43.836 2024.03.31 14:43:54.634
39 4.0.5.3034 2023.12.02 5934b F F 9532 7781 2024.03.31 10:02:37.662 2024.03.31 10:02:47.194 2024.03.31 09:16:47.258 2024.03.31 09:16:55.039
40 4.0.5.3034 2023.12.02 7ea5a F F 8797 9906 2024.03.31 17:53:57.541 2024.03.31 17:54:06.338 2024.03.31 17:08:04.956 2024.03.31 17:08:14.862
41 4.0.5.3034 2023.11.30 4fbc9 F F 9532 9656 2024.03.31 19:54:51.652 2024.03.31 19:55:01.184 2024.03.31 19:08:55.619 2024.03.31 19:09:05.275

Elapsed time, ms. Chart for last 41 runs:

Last commits information (all timestamps in UTC):