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
Network / firewall ?

firebird.driver.types.DatabaseError: Unable to complete network request to host "localhost".
-Failed to establish a connection.

LOG DETAILS:

2025-05-13 08:53:14.158
2025-05-13 08:53:14.158 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2025-05-13 08:53:14.158 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2025-05-13 08:53:14.158 db_nbk0 = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12245/gh_8324_tmp.nbk0')
2025-05-13 08:53:14.158 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-05-13 08:53:14.158
2025-05-13 08:53:14.158     @pytest.mark.replication
2025-05-13 08:53:14.158     @pytest.mark.version('>=4.0.6')
2025-05-13 08:53:14.158     def test_1(act_db_main: Action,  act_db_repl: Action, db_nbk0: Path, capsys):
2025-05-13 08:53:14.158
2025-05-13 08:53:14.158         FLD_WIDTH = 500
2025-05-13 08:53:14.158         ADD_ROWS_INIT = 100
2025-05-13 08:53:14.158         ADD_ROWS_IN_OAT = 30000
2025-05-13 08:53:14.158         TEST2_VALUE = -2147483648
2025-05-13 08:53:14.158
2025-05-13 08:53:14.158         # Map for storing mnemonas and details for every FAILED step:
2025-05-13 08:53:14.158         run_errors_map = {}
2025-05-13 08:53:14.158
2025-05-13 08:53:14.158         # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2025-05-13 08:53:14.158         # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2025-05-13 08:53:14.159         # It will return '.' rather than full path+filename.
2025-05-13 08:53:14.159         # Use only con.info.name for that!
2025-05-13 08:53:14.159         #
2025-05-13 08:53:14.159         db_info = {}
2025-05-13 08:53:14.159         for a in (act_db_main, act_db_repl):
2025-05-13 08:53:14.159 >           with a.db.connect() as con:
2025-05-13 08:53:14.159
2025-05-13 08:53:14.159 tests\functional\replication\test_make_async_reinit_reliable.py:450:
2025-05-13 08:53:14.159 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-05-13 08:53:14.159
2025-05-13 08:53:14.159 database = 'db_main_alias'
2025-05-13 08:53:14.159
2025-05-13 08:53:14.159     def connect(database: str, *, user: str=None, password: str=None, role: str=None,
2025-05-13 08:53:14.159                 no_gc: bool=None, no_db_triggers: bool=None, dbkey_scope: DBKeyScope=None,
2025-05-13 08:53:14.159                 crypt_callback: iCryptKeyCallbackImpl=None, charset: str=None,
2025-05-13 08:53:14.159                 auth_plugin_list: str=None, session_time_zone: str=None) -> Connection:
2025-05-13 08:53:14.159         """Establishes a connection to the database.
2025-05-13 08:53:14.159
2025-05-13 08:53:14.159         Arguments:
2025-05-13 08:53:14.159             database: DSN or Database configuration name.
2025-05-13 08:53:14.159             user: User name.
2025-05-13 08:53:14.159             password: User password.
2025-05-13 08:53:14.160             role: User role.
2025-05-13 08:53:14.160             no_gc: Do not perform garbage collection for this connection.
2025-05-13 08:53:14.160             no_db_triggers: Do not execute database triggers for this connection.
2025-05-13 08:53:14.160             dbkey_scope: DBKEY scope override for connection.
2025-05-13 08:53:14.160             crypt_callback: Callback that provides encryption key for the database.
2025-05-13 08:53:14.160             charset: Character set for connection.
2025-05-13 08:53:14.160             auth_plugin_list: List of authentication plugins override
2025-05-13 08:53:14.160             session_time_zone: Session time zone [Firebird 4]
2025-05-13 08:53:14.160
2025-05-13 08:53:14.160         Hooks:
2025-05-13 08:53:14.160             Event `.ConnectionHook.ATTACH_REQUEST`: Executed after all parameters
2025-05-13 08:53:14.160             are preprocessed and before `Connection` is created. Hook
2025-05-13 08:53:14.160             must have signature::
2025-05-13 08:53:14.160
2025-05-13 08:53:14.160                 hook_func(dsn: str, dpb: bytes) -> Optional[Connection]
2025-05-13 08:53:14.160
2025-05-13 08:53:14.160             Hook may return `Connection` instance or None.
2025-05-13 08:53:14.160             First instance returned by any hook will become the return value
2025-05-13 08:53:14.160             of this function and other hooks are not called.
2025-05-13 08:53:14.160
2025-05-13 08:53:14.160             Event `.ConnectionHook.ATTACHED`: Executed before `Connection` instance is
2025-05-13 08:53:14.161             returned. Hook must have signature::
2025-05-13 08:53:14.161
2025-05-13 08:53:14.161                 hook_func(connection: Connection) -> None
2025-05-13 08:53:14.161
2025-05-13 08:53:14.161             Any value returned by hook is ignored.
2025-05-13 08:53:14.161         """
2025-05-13 08:53:14.161         db_config = driver_config.get_database(database)
2025-05-13 08:53:14.161         if db_config is None:
2025-05-13 08:53:14.161             db_config = driver_config.db_defaults
2025-05-13 08:53:14.161         else:
2025-05-13 08:53:14.161             database = db_config.database.value
2025-05-13 08:53:14.161         if db_config.server.value is None:
2025-05-13 08:53:14.161             srv_config = driver_config.server_defaults
2025-05-13 08:53:14.161         else:
2025-05-13 08:53:14.161             srv_config = driver_config.get_server(db_config.server.value)
2025-05-13 08:53:14.161             if srv_config is None:
2025-05-13 08:53:14.161                 raise ValueError(f"Configuration for server '{db_config.server.value}' not found")
2025-05-13 08:53:14.161         if user is None:
2025-05-13 08:53:14.161             user = db_config.user.value
2025-05-13 08:53:14.161             if user is None:
2025-05-13 08:53:14.161                 user = srv_config.user.value
2025-05-13 08:53:14.162         if password is None:
2025-05-13 08:53:14.162             password = db_config.password.value
2025-05-13 08:53:14.162             if password is None:
2025-05-13 08:53:14.162                 password = srv_config.password.value
2025-05-13 08:53:14.162         if role is None:
2025-05-13 08:53:14.162             role = db_config.role.value
2025-05-13 08:53:14.162         if charset is None:
2025-05-13 08:53:14.162             charset = db_config.charset.value
2025-05-13 08:53:14.162         if charset:
2025-05-13 08:53:14.162             charset = charset.upper()
2025-05-13 08:53:14.162         if auth_plugin_list is None:
2025-05-13 08:53:14.162             auth_plugin_list = db_config.auth_plugin_list.value
2025-05-13 08:53:14.162         if session_time_zone is None:
2025-05-13 08:53:14.162             session_time_zone = db_config.session_time_zone.value
2025-05-13 08:53:14.162         dsn = _connect_helper(db_config.dsn.value, srv_config.host.value, srv_config.port.value,
2025-05-13 08:53:14.162                               database, db_config.protocol.value)
2025-05-13 08:53:14.162         dpb = DPB(user=user, password=password, role=role, trusted_auth=db_config.trusted_auth.value,
2025-05-13 08:53:14.162                   sql_dialect=db_config.sql_dialect.value, timeout=db_config.timeout.value,
2025-05-13 08:53:14.162                   charset=charset, cache_size=db_config.cache_size.value,
2025-05-13 08:53:14.162                   no_linger=db_config.no_linger.value, utf8filename=db_config.utf8filename.value,
2025-05-13 08:53:14.162                   no_gc=no_gc, no_db_triggers=no_db_triggers, dbkey_scope=dbkey_scope,
2025-05-13 08:53:14.163                   dummy_packet_interval=db_config.dummy_packet_interval.value,
2025-05-13 08:53:14.163                   config=db_config.config.value, auth_plugin_list=auth_plugin_list,
2025-05-13 08:53:14.163                   session_time_zone=session_time_zone, set_bind=db_config.set_bind.value,
2025-05-13 08:53:14.163                   decfloat_round=db_config.decfloat_round.value,
2025-05-13 08:53:14.163                   decfloat_traps=db_config.decfloat_traps.value,
2025-05-13 08:53:14.163                   parallel_workers=db_config.parallel_workers.value)
2025-05-13 08:53:14.163 >       return __make_connection(False, dsn, db_config.utf8filename.value, dpb.get_buffer(),
2025-05-13 08:53:14.163                                  db_config.sql_dialect.value, charset, crypt_callback)
2025-05-13 08:53:14.163
2025-05-13 08:53:14.163 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2159:
2025-05-13 08:53:14.163 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-05-13 08:53:14.163
2025-05-13 08:53:14.163 create = False, dsn = 'localhost/33337:db_main_alias', utf8filename = False
2025-05-13 08:53:14.163 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00', sql_dialect = 3
2025-05-13 08:53:14.163 charset = None, crypt_callback = None
2025-05-13 08:53:14.163
2025-05-13 08:53:14.163     def __make_connection(create: bool, dsn: str, utf8filename: bool, dpb: bytes,
2025-05-13 08:53:14.163                           sql_dialect: int, charset: str,
2025-05-13 08:53:14.163                           crypt_callback: iCryptKeyCallbackImpl) -> Connection:
2025-05-13 08:53:14.163         with a.get_api().master.get_dispatcher() as provider:
2025-05-13 08:53:14.164             if crypt_callback is not None:
2025-05-13 08:53:14.164                 provider.set_dbcrypt_callback(crypt_callback)
2025-05-13 08:53:14.164             if create:
2025-05-13 08:53:14.164                 att = provider.create_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-05-13 08:53:14.164                 con = Connection(att, dsn, dpb, sql_dialect, charset)
2025-05-13 08:53:14.164             else:
2025-05-13 08:53:14.164                 con = None
2025-05-13 08:53:14.164                 for hook in get_callbacks(ConnectionHook.ATTACH_REQUEST, Connection):
2025-05-13 08:53:14.164                     try:
2025-05-13 08:53:14.164                         con = hook(dsn, dpb)
2025-05-13 08:53:14.164                     except Exception as e:
2025-05-13 08:53:14.164                         raise InterfaceError("Error in DATABASE_ATTACH_REQUEST hook.", *e.args) from e
2025-05-13 08:53:14.164                     if con is not None:
2025-05-13 08:53:14.164                         break
2025-05-13 08:53:14.164                 if con is None:
2025-05-13 08:53:14.164 >                   att = provider.attach_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-05-13 08:53:14.164
2025-05-13 08:53:14.164 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2074:
2025-05-13 08:53:14.164 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-05-13 08:53:14.164
2025-05-13 08:53:14.165 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-05-13 08:53:14.165 filename = 'localhost/33337:db_main_alias'
2025-05-13 08:53:14.165 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00'
2025-05-13 08:53:14.165 encoding = 'utf-8'
2025-05-13 08:53:14.165
2025-05-13 08:53:14.165     def attach_database(self, filename: str, dpb: Optional[bytes] = None, encoding: str = 'ascii') -> iAttachment:
2025-05-13 08:53:14.165         "Replaces `isc_attach_database()`"
2025-05-13 08:53:14.165         result = self.vtable.attachDatabase(self, self.status, filename.encode(encoding),
2025-05-13 08:53:14.165                                             0 if dpb is None else len(dpb), dpb)
2025-05-13 08:53:14.165 >       self._check()
2025-05-13 08:53:14.165
2025-05-13 08:53:14.165 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1300:
2025-05-13 08:53:14.165 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-05-13 08:53:14.165
2025-05-13 08:53:14.165 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-05-13 08:53:14.165
2025-05-13 08:53:14.165     def _check(self) -> None:
2025-05-13 08:53:14.165         state = self.status.get_state()
2025-05-13 08:53:14.165         if StateFlag.ERRORS in state:
2025-05-13 08:53:14.165 >           raise self.__report(DatabaseError, self.status.get_errors())
2025-05-13 08:53:14.166 E           firebird.driver.types.DatabaseError: Unable to complete network request to host "localhost".
2025-05-13 08:53:14.166 E           -Failed to establish a connection.
2025-05-13 08:53:14.166
2025-05-13 08:53:14.166 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:113: DatabaseError
3 #text
act_db_main = <firebird.qa.plugin.Action pytest object at [hex]>
act_db_repl = <firebird.qa.plugin.Action pytest object at [hex]>
db_nbk0 = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12245/gh_8324_tmp.nbk0')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.replication
    @pytest.mark.version('>=4.0.6')
    def test_1(act_db_main: Action,  act_db_repl: Action, db_nbk0: Path, capsys):
    
        FLD_WIDTH = 500
        ADD_ROWS_INIT = 100
        ADD_ROWS_IN_OAT = 30000
        TEST2_VALUE = -2147483648
    
        # Map for storing mnemonas and details for every FAILED step:
        run_errors_map = {}
    
        # 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:

tests\functional\replication\test_make_async_reinit_reliable.py:450: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

database = 'db_main_alias'

    def connect(database: str, *, user: str=None, password: str=None, role: str=None,
                no_gc: bool=None, no_db_triggers: bool=None, dbkey_scope: DBKeyScope=None,
                crypt_callback: iCryptKeyCallbackImpl=None, charset: str=None,
                auth_plugin_list: str=None, session_time_zone: str=None) -> Connection:
        """Establishes a connection to the database.
    
        Arguments:
            database: DSN or Database configuration name.
            user: User name.
            password: User password.
            role: User role.
            no_gc: Do not perform garbage collection for this connection.
            no_db_triggers: Do not execute database triggers for this connection.
            dbkey_scope: DBKEY scope override for connection.
            crypt_callback: Callback that provides encryption key for the database.
            charset: Character set for connection.
            auth_plugin_list: List of authentication plugins override
            session_time_zone: Session time zone [Firebird 4]
    
        Hooks:
            Event `.ConnectionHook.ATTACH_REQUEST`: Executed after all parameters
            are preprocessed and before `Connection` is created. Hook
            must have signature::
    
                hook_func(dsn: str, dpb: bytes) -> Optional[Connection]
    
            Hook may return `Connection` instance or None.
            First instance returned by any hook will become the return value
            of this function and other hooks are not called.
    
            Event `.ConnectionHook.ATTACHED`: Executed before `Connection` instance is
            returned. Hook must have signature::
    
                hook_func(connection: Connection) -> None
    
            Any value returned by hook is ignored.
        """
        db_config = driver_config.get_database(database)
        if db_config is None:
            db_config = driver_config.db_defaults
        else:
            database = db_config.database.value
        if db_config.server.value is None:
            srv_config = driver_config.server_defaults
        else:
            srv_config = driver_config.get_server(db_config.server.value)
            if srv_config is None:
                raise ValueError(f"Configuration for server '{db_config.server.value}' not found")
        if user is None:
            user = db_config.user.value
            if user is None:
                user = srv_config.user.value
        if password is None:
            password = db_config.password.value
            if password is None:
                password = srv_config.password.value
        if role is None:
            role = db_config.role.value
        if charset is None:
            charset = db_config.charset.value
        if charset:
            charset = charset.upper()
        if auth_plugin_list is None:
            auth_plugin_list = db_config.auth_plugin_list.value
        if session_time_zone is None:
            session_time_zone = db_config.session_time_zone.value
        dsn = _connect_helper(db_config.dsn.value, srv_config.host.value, srv_config.port.value,
                              database, db_config.protocol.value)
        dpb = DPB(user=user, password=password, role=role, trusted_auth=db_config.trusted_auth.value,
                  sql_dialect=db_config.sql_dialect.value, timeout=db_config.timeout.value,
                  charset=charset, cache_size=db_config.cache_size.value,
                  no_linger=db_config.no_linger.value, utf8filename=db_config.utf8filename.value,
                  no_gc=no_gc, no_db_triggers=no_db_triggers, dbkey_scope=dbkey_scope,
                  dummy_packet_interval=db_config.dummy_packet_interval.value,
                  config=db_config.config.value, auth_plugin_list=auth_plugin_list,
                  session_time_zone=session_time_zone, set_bind=db_config.set_bind.value,
                  decfloat_round=db_config.decfloat_round.value,
                  decfloat_traps=db_config.decfloat_traps.value,
                  parallel_workers=db_config.parallel_workers.value)
>       return __make_connection(False, dsn, db_config.utf8filename.value, dpb.get_buffer(),
                                 db_config.sql_dialect.value, charset, crypt_callback)

C:\Python3x\Lib\site-packages\firebird\driver\core.py:2159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

create = False, dsn = 'localhost/33337:db_main_alias', utf8filename = False
dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00', sql_dialect = 3
charset = None, crypt_callback = None

    def __make_connection(create: bool, dsn: str, utf8filename: bool, dpb: bytes,
                          sql_dialect: int, charset: str,
                          crypt_callback: iCryptKeyCallbackImpl) -> Connection:
        with a.get_api().master.get_dispatcher() as provider:
            if crypt_callback is not None:
                provider.set_dbcrypt_callback(crypt_callback)
            if create:
                att = provider.create_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
                con = Connection(att, dsn, dpb, sql_dialect, charset)
            else:
                con = None
                for hook in get_callbacks(ConnectionHook.ATTACH_REQUEST, Connection):
                    try:
                        con = hook(dsn, dpb)
                    except Exception as e:
                        raise InterfaceError("Error in DATABASE_ATTACH_REQUEST hook.", *e.args) from e
                    if con is not None:
                        break
                if con is None:
>                   att = provider.attach_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)

C:\Python3x\Lib\site-packages\firebird\driver\core.py:2074: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.interfaces.iProvider pytest object at [hex]>
filename = 'localhost/33337:db_main_alias'
dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00'
encoding = 'utf-8'

    def attach_database(self, filename: str, dpb: Optional[bytes] = None, encoding: str = 'ascii') -> iAttachment:
        "Replaces `isc_attach_database()`"
        result = self.vtable.attachDatabase(self, self.status, filename.encode(encoding),
                                            0 if dpb is None else len(dpb), dpb)
>       self._check()

C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1300: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <firebird.driver.interfaces.iProvider pytest object at [hex]>

    def _check(self) -> None:
        state = self.status.get_state()
        if StateFlag.ERRORS in state:
>           raise self.__report(DatabaseError, self.status.get_errors())
E           firebird.driver.types.DatabaseError: Unable to complete network request to host "localhost".
E           -Failed to establish a connection.

C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:113: DatabaseError
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 5.0.3.1674 2025.06.27 3ee5c F F 49833 50253 2025.06.28 11:20:27.698 2025.06.28 11:21:17.531 2025.06.28 10:16:43.933 2025.06.28 10:17:34.186
2 5.0.3.1657 2025.06.26 dcb8a F F 49923 52519 2025.06.27 11:17:12.386 2025.06.27 11:18:02.309 2025.06.27 10:13:36.285 2025.06.27 10:14:28.804
3 5.0.3.1657 2025.06.20 8b4d2 F F 50777 53288 2025.06.26 11:31:37.550 2025.06.26 11:32:28.327 2025.06.26 10:27:48.482 2025.06.26 10:28:41.770
4 5.0.3.1657 2025.06.19 4bd4c F F 50302 52629 2025.06.20 05:35:47.636 2025.06.20 05:36:37.938 2025.06.20 04:32:01.288 2025.06.20 04:32:53.917
5 5.0.3.1657 2025.06.11 dae6f F F 53466 51278 2025.06.19 11:07:17.995 2025.06.19 11:08:11.461 2025.06.19 10:03:28.746 2025.06.19 10:04:20.024
6 5.0.3.1657 2025.06.10 dbc92 F F 50652 53252 2025.06.11 08:53:30.575 2025.06.11 08:54:21.227 2025.06.11 07:49:28.786 2025.06.11 07:50:22.038
7 5.0.3.1656 2025.06.05 00512 F F 53271 50323 2025.06.10 10:08:48.879 2025.06.10 10:09:42.150 2025.06.10 09:04:31.078 2025.06.10 09:05:21.401
8 5.0.3.1656 2025.05.20 c4b11 F F 49771 50224 2025.06.03 09:55:33.276 2025.06.03 09:56:23.047 2025.06.03 08:52:29.747 2025.06.03 08:53:19.971
9 5.0.3.1652 2025.05.13 f51c6 F F 50860 53644 2025.05.21 06:36:32.203 2025.05.21 06:37:23.063 2025.05.21 05:33:45.318 2025.05.21 05:34:38.962
10 5.0.3.1651 2025.05.08 ee9d2 F F 50349 2394 2025.05.13 06:49:11.891 2025.05.13 06:50:02.240 2025.05.13 05:44:07.005 2025.05.13 05:44:09.399
11 5.0.3.1651 2025.05.04 3d914 F F 51281 2391 2025.05.09 04:38:15.705 2025.05.09 04:39:06.986 2025.05.09 03:33:05.029 2025.05.09 03:33:07.420
12 5.0.3.1651 2025.04.30 141ef F F 50859 2387 2025.05.02 04:45:47.496 2025.05.02 04:46:38.355 2025.05.02 03:40:57.943 2025.05.02 03:41:00.330
13 5.0.3.1650 2025.04.30 6253f F F 50807 2395 2025.05.01 04:44:53.129 2025.05.01 04:45:43.936 2025.05.01 03:39:54.335 2025.05.01 03:39:56.730
14 5.0.3.1650 2025.04.28 4cbff F F 50807 2198 2025.04.30 04:43:52.140 2025.04.30 04:44:42.947 2025.04.30 03:39:07.625 2025.04.30 03:39:09.823
15 5.0.3.1649 2025.04.21 5b2d0 F F 52753 2422 2025.04.26 10:17:56.028 2025.04.26 10:18:48.781 2025.04.26 09:12:09.708 2025.04.26 09:12:12.130
16 5.0.3.1648 2025.04.18 2f4c5 F F 49836 53263 2025.04.20 04:29:12.627 2025.04.20 04:30:02.463 2025.04.20 03:25:22.623 2025.04.20 03:26:15.886
17 5.0.3.1635 2025.04.03 f6bd1 F F 52056 2391 2025.04.18 06:56:53.887 2025.04.18 06:57:45.943 2025.04.18 05:51:19.112 2025.04.18 05:51:21.503
18 5.0.3.1635 2025.03.31 22ec6 F F 50861 2205 2025.04.03 10:02:39.599 2025.04.03 10:03:30.460 2025.04.03 08:56:43.450 2025.04.03 08:56:45.655
19 5.0.3.1633 2025.03.28 3123a F F 49736 2398 2025.03.31 10:01:06.701 2025.03.31 10:01:56.437 2025.03.31 08:55:12.546 2025.03.31 08:55:14.944
20 5.0.3.1633 2025.03.27 e0fb8 F F 51556 2392 2025.03.28 10:33:04.984 2025.03.28 10:33:56.540 2025.03.28 09:23:12.677 2025.03.28 09:23:15.069
21 5.0.3.1631 2025.03.25 bda65 F F 50014 50393 2025.03.27 10:13:38.140 2025.03.27 10:14:28.154 2025.03.27 09:05:59.324 2025.03.27 09:06:49.717
22 5.0.3.1631 2025.03.21 1925b F F 54476 54471 2025.03.25 06:47:40.587 2025.03.25 06:48:35.063 2025.03.25 05:39:57.524 2025.03.25 05:40:51.995
23 5.0.3.1629 2025.03.18 506d7 F F 53461 50426 2025.03.20 09:47:38.886 2025.03.20 09:48:32.347 2025.03.20 08:39:59.595 2025.03.20 08:40:50.021
24 5.0.3.1628 2025.03.14 16d05 F F 49856 51374 2025.03.18 09:41:44.317 2025.03.18 09:42:34.173 2025.03.18 08:35:31.871 2025.03.18 08:36:23.245
25 5.0.3.1627 2025.02.26 4e218 F F 50610 52927 2025.03.13 10:01:29.555 2025.03.13 10:02:20.165 2025.03.13 08:53:19.877 2025.03.13 08:54:12.804
26 5.0.3.1624 2025.02.25 dc3b2 F F 50918 53414 2025.02.26 15:33:33.327 2025.02.26 15:34:24.245 2025.02.26 14:26:07.788 2025.02.26 14:27:01.202
27 5.0.2.1615 2025.02.20 4a726 F F 50244 2213 2025.02.25 08:47:25.120 2025.02.25 08:48:15.364 2025.02.25 07:39:27.132 2025.02.25 07:39:29.345
28 5.0.2.1615 2025.02.14 9cb76 F F 50821 54560 2025.02.15 04:14:57.415 2025.02.15 04:15:48.236 2025.02.15 03:09:45.624 2025.02.15 03:10:40.184
29 5.0.2.1577 2025.02.07 f50a2 F F 53798 51399 2025.02.14 06:27:39.863 2025.02.14 06:28:33.661 2025.02.14 05:23:36.885 2025.02.14 05:24:28.284
30 5.0.2.1577 2024.12.24 3c80e F F 53754 53443 2025.02.06 09:41:09.561 2025.02.06 09:42:03.315 2025.02.06 08:37:10.993 2025.02.06 08:38:04.436
31 5.0.2.1576 2024.12.17 646b0 F F 53472 49221 2024.12.24 09:24:15.990 2024.12.24 09:25:09.462 2024.12.24 08:20:22.912 2024.12.24 08:21:12.133
32 5.0.2.1575 2024.12.09 9af52 F F 52888 48625 2024.12.16 09:21:00.572 2024.12.16 09:21:53.460 2024.12.16 08:17:15.054 2024.12.16 08:18:03.679

Elapsed time, ms. Chart for last 32 runs:

Last commits information (all timestamps in UTC):