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-06-26 10:12:44.775
2025-06-26 10:12:44.775 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2025-06-26 10:12:44.775 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2025-06-26 10:12:44.775 db_nbk0 = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12141/gh_8324_tmp.nbk0')
2025-06-26 10:12:44.775 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-06-26 10:12:44.775
2025-06-26 10:12:44.775     @pytest.mark.replication
2025-06-26 10:12:44.775     @pytest.mark.version('>=4.0.6')
2025-06-26 10:12:44.775     def test_1(act_db_main: Action,  act_db_repl: Action, db_nbk0: Path, capsys):
2025-06-26 10:12:44.775
2025-06-26 10:12:44.775         FLD_WIDTH = 500
2025-06-26 10:12:44.775         ADD_ROWS_INIT = 100
2025-06-26 10:12:44.775         ADD_ROWS_IN_OAT = 30000
2025-06-26 10:12:44.775         TEST2_VALUE = -2147483648
2025-06-26 10:12:44.775
2025-06-26 10:12:44.775         # Map for storing mnemonas and details for every FAILED step:
2025-06-26 10:12:44.775         run_errors_map = {}
2025-06-26 10:12:44.775
2025-06-26 10:12:44.775         # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2025-06-26 10:12:44.775         # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2025-06-26 10:12:44.775         # It will return '.' rather than full path+filename.
2025-06-26 10:12:44.776         # Use only con.info.name for that!
2025-06-26 10:12:44.776         #
2025-06-26 10:12:44.776         db_info = {}
2025-06-26 10:12:44.776         for a in (act_db_main, act_db_repl):
2025-06-26 10:12:44.776 >           with a.db.connect() as con:
2025-06-26 10:12:44.776
2025-06-26 10:12:44.776 tests\functional\replication\test_make_async_reinit_reliable.py:450:
2025-06-26 10:12:44.776 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-06-26 10:12:44.776
2025-06-26 10:12:44.776 database = 'db_main_alias'
2025-06-26 10:12:44.776
2025-06-26 10:12:44.776     def connect(database: str, *, user: str=None, password: str=None, role: str=None,
2025-06-26 10:12:44.776                 no_gc: bool=None, no_db_triggers: bool=None, dbkey_scope: DBKeyScope=None,
2025-06-26 10:12:44.776                 crypt_callback: iCryptKeyCallbackImpl=None, charset: str=None,
2025-06-26 10:12:44.776                 auth_plugin_list: str=None, session_time_zone: str=None) -> Connection:
2025-06-26 10:12:44.776         """Establishes a connection to the database.
2025-06-26 10:12:44.776
2025-06-26 10:12:44.776         Arguments:
2025-06-26 10:12:44.776             database: DSN or Database configuration name.
2025-06-26 10:12:44.776             user: User name.
2025-06-26 10:12:44.776             password: User password.
2025-06-26 10:12:44.776             role: User role.
2025-06-26 10:12:44.777             no_gc: Do not perform garbage collection for this connection.
2025-06-26 10:12:44.777             no_db_triggers: Do not execute database triggers for this connection.
2025-06-26 10:12:44.777             dbkey_scope: DBKEY scope override for connection.
2025-06-26 10:12:44.777             crypt_callback: Callback that provides encryption key for the database.
2025-06-26 10:12:44.777             charset: Character set for connection.
2025-06-26 10:12:44.777             auth_plugin_list: List of authentication plugins override
2025-06-26 10:12:44.777             session_time_zone: Session time zone [Firebird 4]
2025-06-26 10:12:44.777
2025-06-26 10:12:44.777         Hooks:
2025-06-26 10:12:44.777             Event `.ConnectionHook.ATTACH_REQUEST`: Executed after all parameters
2025-06-26 10:12:44.777             are preprocessed and before `Connection` is created. Hook
2025-06-26 10:12:44.777             must have signature::
2025-06-26 10:12:44.777
2025-06-26 10:12:44.777                 hook_func(dsn: str, dpb: bytes) -> Optional[Connection]
2025-06-26 10:12:44.777
2025-06-26 10:12:44.777             Hook may return `Connection` instance or None.
2025-06-26 10:12:44.777             First instance returned by any hook will become the return value
2025-06-26 10:12:44.777             of this function and other hooks are not called.
2025-06-26 10:12:44.777
2025-06-26 10:12:44.777             Event `.ConnectionHook.ATTACHED`: Executed before `Connection` instance is
2025-06-26 10:12:44.777             returned. Hook must have signature::
2025-06-26 10:12:44.778
2025-06-26 10:12:44.778                 hook_func(connection: Connection) -> None
2025-06-26 10:12:44.778
2025-06-26 10:12:44.778             Any value returned by hook is ignored.
2025-06-26 10:12:44.778         """
2025-06-26 10:12:44.778         db_config = driver_config.get_database(database)
2025-06-26 10:12:44.778         if db_config is None:
2025-06-26 10:12:44.778             db_config = driver_config.db_defaults
2025-06-26 10:12:44.778         else:
2025-06-26 10:12:44.778             database = db_config.database.value
2025-06-26 10:12:44.778         if db_config.server.value is None:
2025-06-26 10:12:44.778             srv_config = driver_config.server_defaults
2025-06-26 10:12:44.778         else:
2025-06-26 10:12:44.778             srv_config = driver_config.get_server(db_config.server.value)
2025-06-26 10:12:44.778             if srv_config is None:
2025-06-26 10:12:44.778                 raise ValueError(f"Configuration for server '{db_config.server.value}' not found")
2025-06-26 10:12:44.778         if user is None:
2025-06-26 10:12:44.778             user = db_config.user.value
2025-06-26 10:12:44.778             if user is None:
2025-06-26 10:12:44.778                 user = srv_config.user.value
2025-06-26 10:12:44.779         if password is None:
2025-06-26 10:12:44.779             password = db_config.password.value
2025-06-26 10:12:44.779             if password is None:
2025-06-26 10:12:44.779                 password = srv_config.password.value
2025-06-26 10:12:44.779         if role is None:
2025-06-26 10:12:44.779             role = db_config.role.value
2025-06-26 10:12:44.779         if charset is None:
2025-06-26 10:12:44.779             charset = db_config.charset.value
2025-06-26 10:12:44.779         if charset:
2025-06-26 10:12:44.779             charset = charset.upper()
2025-06-26 10:12:44.779         if auth_plugin_list is None:
2025-06-26 10:12:44.779             auth_plugin_list = db_config.auth_plugin_list.value
2025-06-26 10:12:44.779         if session_time_zone is None:
2025-06-26 10:12:44.779             session_time_zone = db_config.session_time_zone.value
2025-06-26 10:12:44.779         dsn = _connect_helper(db_config.dsn.value, srv_config.host.value, srv_config.port.value,
2025-06-26 10:12:44.779                               database, db_config.protocol.value)
2025-06-26 10:12:44.779         dpb = DPB(user=user, password=password, role=role, trusted_auth=db_config.trusted_auth.value,
2025-06-26 10:12:44.779                   sql_dialect=db_config.sql_dialect.value, timeout=db_config.timeout.value,
2025-06-26 10:12:44.780                   charset=charset, cache_size=db_config.cache_size.value,
2025-06-26 10:12:44.780                   no_linger=db_config.no_linger.value, utf8filename=db_config.utf8filename.value,
2025-06-26 10:12:44.780                   no_gc=no_gc, no_db_triggers=no_db_triggers, dbkey_scope=dbkey_scope,
2025-06-26 10:12:44.780                   dummy_packet_interval=db_config.dummy_packet_interval.value,
2025-06-26 10:12:44.780                   config=db_config.config.value, auth_plugin_list=auth_plugin_list,
2025-06-26 10:12:44.780                   session_time_zone=session_time_zone, set_bind=db_config.set_bind.value,
2025-06-26 10:12:44.780                   decfloat_round=db_config.decfloat_round.value,
2025-06-26 10:12:44.780                   decfloat_traps=db_config.decfloat_traps.value,
2025-06-26 10:12:44.780                   parallel_workers=db_config.parallel_workers.value)
2025-06-26 10:12:44.780 >       return __make_connection(False, dsn, db_config.utf8filename.value, dpb.get_buffer(),
2025-06-26 10:12:44.780                                  db_config.sql_dialect.value, charset, crypt_callback)
2025-06-26 10:12:44.780
2025-06-26 10:12:44.780 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2159:
2025-06-26 10:12:44.780 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-06-26 10:12:44.780
2025-06-26 10:12:44.780 create = False, dsn = 'localhost/33337:db_main_alias', utf8filename = False
2025-06-26 10:12:44.780 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00', sql_dialect = 3
2025-06-26 10:12:44.780 charset = None, crypt_callback = None
2025-06-26 10:12:44.780
2025-06-26 10:12:44.780     def __make_connection(create: bool, dsn: str, utf8filename: bool, dpb: bytes,
2025-06-26 10:12:44.781                           sql_dialect: int, charset: str,
2025-06-26 10:12:44.781                           crypt_callback: iCryptKeyCallbackImpl) -> Connection:
2025-06-26 10:12:44.781         with a.get_api().master.get_dispatcher() as provider:
2025-06-26 10:12:44.781             if crypt_callback is not None:
2025-06-26 10:12:44.781                 provider.set_dbcrypt_callback(crypt_callback)
2025-06-26 10:12:44.781             if create:
2025-06-26 10:12:44.781                 att = provider.create_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-06-26 10:12:44.781                 con = Connection(att, dsn, dpb, sql_dialect, charset)
2025-06-26 10:12:44.781             else:
2025-06-26 10:12:44.781                 con = None
2025-06-26 10:12:44.781                 for hook in get_callbacks(ConnectionHook.ATTACH_REQUEST, Connection):
2025-06-26 10:12:44.781                     try:
2025-06-26 10:12:44.781                         con = hook(dsn, dpb)
2025-06-26 10:12:44.781                     except Exception as e:
2025-06-26 10:12:44.781                         raise InterfaceError("Error in DATABASE_ATTACH_REQUEST hook.", *e.args) from e
2025-06-26 10:12:44.781                     if con is not None:
2025-06-26 10:12:44.781                         break
2025-06-26 10:12:44.781                 if con is None:
2025-06-26 10:12:44.781 >                   att = provider.attach_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-06-26 10:12:44.781
2025-06-26 10:12:44.782 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2074:
2025-06-26 10:12:44.782 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-06-26 10:12:44.782
2025-06-26 10:12:44.782 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-06-26 10:12:44.782 filename = 'localhost/33337:db_main_alias'
2025-06-26 10:12:44.782 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00'
2025-06-26 10:12:44.782 encoding = 'utf-8'
2025-06-26 10:12:44.782
2025-06-26 10:12:44.782     def attach_database(self, filename: str, dpb: Optional[bytes] = None, encoding: str = 'ascii') -> iAttachment:
2025-06-26 10:12:44.782         "Replaces `isc_attach_database()`"
2025-06-26 10:12:44.782         result = self.vtable.attachDatabase(self, self.status, filename.encode(encoding),
2025-06-26 10:12:44.782                                             0 if dpb is None else len(dpb), dpb)
2025-06-26 10:12:44.782 >       self._check()
2025-06-26 10:12:44.782
2025-06-26 10:12:44.782 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1300:
2025-06-26 10:12:44.782 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-06-26 10:12:44.782
2025-06-26 10:12:44.782 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-06-26 10:12:44.782
2025-06-26 10:12:44.782     def _check(self) -> None:
2025-06-26 10:12:44.783         state = self.status.get_state()
2025-06-26 10:12:44.783         if StateFlag.ERRORS in state:
2025-06-26 10:12:44.783 >           raise self.__report(DatabaseError, self.status.get_errors())
2025-06-26 10:12:44.783 E           firebird.driver.types.DatabaseError: Unable to complete network request to host "localhost".
2025-06-26 10:12:44.783 E           -Failed to establish a connection.
2025-06-26 10:12:44.783
2025-06-26 10:12:44.783 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_12141/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 4.0.6.3215 2025.06.25 6461d P F 101850 2293 2025.06.26 08:07:27.795 2025.06.26 08:09:09.645 2025.06.26 07:00:47.129 2025.06.26 07:00:49.422
2 4.0.6.3214 2025.06.21 e11f6 P P 99144 101746 2025.06.25 12:46:39.240 2025.06.25 12:48:18.384 2025.06.25 11:44:35.633 2025.06.25 11:46:17.379
3 4.0.6.3213 2025.06.14 f015c P P 101854 99611 2025.06.21 07:47:13.239 2025.06.21 07:48:55.093 2025.06.21 06:44:57.780 2025.06.21 06:46:37.391
4 4.0.6.3212 2025.06.11 bc50d P P 100118 98843 2025.06.14 08:14:52.453 2025.06.14 08:16:32.571 2025.06.14 07:12:05.251 2025.06.14 07:13:44.094
5 4.0.6.3208 2025.06.10 19fe3 P P 102654 105399 2025.06.11 06:41:47.885 2025.06.11 06:43:30.539 2025.06.11 05:39:53.736 2025.06.11 05:41:39.135
6 4.0.6.3207 2025.06.07 205ff P P 101800 99217 2025.06.10 06:43:11.908 2025.06.10 06:44:53.708 2025.06.10 05:40:34.246 2025.06.10 05:42:13.463
7 4.0.6.3206 2025.05.22 d7d10 P P 98512 101892 2025.06.06 06:36:54.068 2025.06.06 06:38:32.580 2025.06.06 05:35:36.149 2025.06.06 05:37:18.041
8 4.0.6.3205 2025.05.07 00148 P P 99452 101516 2025.05.18 06:24:20.209 2025.05.18 06:25:59.661 2025.05.18 05:24:59.336 2025.05.18 05:26:40.852
9 4.0.6.3204 2025.05.06 35b85 P P 102333 101405 2025.05.07 06:32:31.962 2025.05.07 06:34:14.295 2025.05.07 05:31:50.254 2025.05.07 05:33:31.659
10 4.0.6.3203 2025.05.05 c2cbd P P 99977 99317 2025.05.06 06:32:52.045 2025.05.06 06:34:32.022 2025.05.06 05:32:00.872 2025.05.06 05:33:40.189
11 4.0.6.3200 2025.04.18 7ef56 P P 101480 102321 2025.04.26 06:37:24.855 2025.04.26 06:39:06.335 2025.04.26 05:36:12.822 2025.04.26 05:37:55.143
12 4.0.6.3199 2025.04.14 33a10 P P 102159 98280 2025.04.17 06:34:56.875 2025.04.17 06:36:39.034 2025.04.17 05:33:44.043 2025.04.17 05:35:22.323
13 4.0.6.3198 2025.04.13 64a7f P P 102374 102474 2025.04.14 06:33:14.749 2025.04.14 06:34:57.123 2025.04.14 05:31:59.677 2025.04.14 05:33:42.151
14 4.0.6.3195 2025.04.12 82cb5 P P 99089 99214 2025.04.13 06:18:08.583 2025.04.13 06:19:47.672 2025.04.13 05:19:20.388 2025.04.13 05:20:59.602
15 4.0.6.3195 2025.03.28 b9faf P P 100655 101908 2025.04.12 06:38:13.362 2025.04.12 06:39:54.017 2025.04.12 05:36:05.683 2025.04.12 05:37:47.591
16 4.0.6.3194 2025.03.27 ab754 P P 102087 103727 2025.03.28 06:50:46.659 2025.03.28 06:52:28.746 2025.03.28 05:48:10.978 2025.03.28 05:49:54.705
17 4.0.6.3194 2025.03.26 912aa P P 102810 98497 2025.03.27 06:41:05.143 2025.03.27 06:42:47.953 2025.03.27 05:37:17.280 2025.03.27 05:38:55.777
18 4.0.6.3193 2025.03.20 80234 P P 102414 102244 2025.03.24 06:41:34.286 2025.03.24 06:43:16.700 2025.03.24 05:37:24.115 2025.03.24 05:39:06.359
19 4.0.6.3192 2025.03.13 2a9da P P 99451 103421 2025.03.20 06:28:52.482 2025.03.20 06:30:31.933 2025.03.20 05:26:46.462 2025.03.20 05:28:29.883
20 4.0.6.3191 2025.03.10 3d9fd P P 100404 99115 2025.03.13 06:36:25.776 2025.03.13 06:38:06.180 2025.03.13 05:32:51.120 2025.03.13 05:34:30.235
21 4.0.6.3190 2025.02.25 c9928 P P 99735 101552 2025.03.09 06:33:17.140 2025.03.09 06:34:56.875 2025.03.09 05:29:45.405 2025.03.09 05:31:26.957
22 4.0.6.3189 2025.02.22 3fb0b P P 99368 98509 2025.02.25 06:22:10.253 2025.02.25 06:23:49.621 2025.02.25 05:20:23.745 2025.02.25 05:22:02.254
23 4.0.6.3188 2025.02.21 8ee1c P P 98949 98550 2025.02.22 06:15:50.323 2025.02.22 06:17:29.272 2025.02.22 05:14:25.125 2025.02.22 05:16:03.675
24 4.0.6.3186 2025.02.19 92cb6 P P 99459 100543 2025.02.20 04:13:36.748 2025.02.20 04:15:16.207 2025.02.20 03:11:31.871 2025.02.20 03:13:12.414
25 4.0.6.3185 2025.02.16 9cac4 P P 103039 100518 2025.02.17 02:00:48.828 2025.02.17 02:02:31.867 2025.02.17 00:59:38.003 2025.02.17 01:01:18.521
26 4.0.6.3183 2025.02.04 bf738 P P 100024 102434 2025.02.08 06:19:32.365 2025.02.08 06:21:12.389 2025.02.08 05:17:51.567 2025.02.08 05:19:34.001
27 4.0.6.3181 2025.02.01 00b64 P P 100268 99549 2025.02.04 06:33:03.359 2025.02.04 06:34:43.627 2025.02.04 05:31:17.738 2025.02.04 05:32:57.287
28 4.0.6.3180 2025.01.27 2edb8 P P 100227 99815 2025.01.28 06:16:08.271 2025.01.28 06:17:48.498 2025.01.28 05:15:06.911 2025.01.28 05:16:46.726
29 4.0.6.3179 2025.01.24 008d4 P P 98767 99684 2025.01.25 04:06:26.796 2025.01.25 04:08:05.563 2025.01.25 03:05:21.708 2025.01.25 03:07:01.392
30 4.0.6.3178 2025.01.20 ec94d P P 102548 102587 2025.01.24 06:16:51.931 2025.01.24 06:18:34.479 2025.01.24 05:15:38.505 2025.01.24 05:17:21.092
31 4.0.6.3176 2025.01.16 79cc1 P P 98910 98382 2025.01.20 06:15:39.652 2025.01.20 06:17:18.562 2025.01.20 05:14:31.175 2025.01.20 05:16:09.557
32 4.0.6.3175 2025.01.15 91361 P P 99377 98866 2025.01.16 06:19:27.364 2025.01.16 06:21:06.741 2025.01.16 05:17:55.527 2025.01.16 05:19:34.393
33 4.0.6.3174 2024.12.23 ffd39 P P 99036 99696 2025.01.15 06:12:57.805 2025.01.15 06:14:36.841 2025.01.15 05:11:23.976 2025.01.15 05:13:03.672
34 4.0.6.3173 2024.12.19 60b32 P P 99619 103173 2024.12.21 17:12:45.750 2024.12.21 17:14:25.369 2024.12.21 16:10:59.935 2024.12.21 16:12:43.108
35 4.0.6.3172 2024.12.11 33f5d P P 99170 100657 2024.12.16 06:14:59.943 2024.12.16 06:16:39.113 2024.12.16 05:13:43.398 2024.12.16 05:15:24.055
36 4.0.6.3171 2024.12.10 ab1d4 P P 99460 98805 2024.12.11 06:17:20.420 2024.12.11 06:18:59.880 2024.12.11 05:16:00.341 2024.12.11 05:17:39.146

Elapsed time, ms. Chart for last 36 runs:

Last commits information (all timestamps in UTC):