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-02-25 13:12:01.091
2025-02-25 13:12:01.091 act_db_main = <firebird.qa.plugin.Action object at [hex]>
2025-02-25 13:12:01.091 act_db_repl = <firebird.qa.plugin.Action object at [hex]>
2025-02-25 13:12:01.091 tmp_oltp_build_sql = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12117/tmp_oltp_emul_ddl.sql')
2025-02-25 13:12:01.091 tmp_oltp_build_log = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12117/tmp_oltp_emul_ddl.log')
2025-02-25 13:12:01.091 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-02-25 13:12:01.091
2025-02-25 13:12:01.091     @pytest.mark.replication
2025-02-25 13:12:01.092     @pytest.mark.version('>=4.0.1')
2025-02-25 13:12:01.092     def test_1(act_db_main: Action,  act_db_repl: Action, tmp_oltp_build_sql: Path, tmp_oltp_build_log: Path, capsys):
2025-02-25 13:12:01.092
2025-02-25 13:12:01.092         tmp_oltp_sql_files = []
2025-02-25 13:12:01.092
2025-02-25 13:12:01.092         out_prep, out_init, out_main, out_drop = '', '', '', ''
2025-02-25 13:12:01.092         # Obtain full path + filename for DB_MAIN and DB_REPL aliases.
2025-02-25 13:12:01.092         # NOTE: we must NOT use 'a.db.db_path' for ALIASED databases!
2025-02-25 13:12:01.092         # It will return '.' rather than full path+filename.
2025-02-25 13:12:01.092         # Use only con.info.name for that!
2025-02-25 13:12:01.092         #
2025-02-25 13:12:01.092         db_info = {}
2025-02-25 13:12:01.092         for a in (act_db_main, act_db_repl):
2025-02-25 13:12:01.092 >           with a.db.connect(no_db_triggers = True) as con:
2025-02-25 13:12:01.092
2025-02-25 13:12:01.092 tests\functional\replication\test_oltp_emul_ddl.py:457:
2025-02-25 13:12:01.092 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-02-25 13:12:01.092
2025-02-25 13:12:01.092 database = 'db_main_alias'
2025-02-25 13:12:01.092
2025-02-25 13:12:01.093     def connect(database: str, *, user: str=None, password: str=None, role: str=None,
2025-02-25 13:12:01.093                 no_gc: bool=None, no_db_triggers: bool=None, dbkey_scope: DBKeyScope=None,
2025-02-25 13:12:01.093                 crypt_callback: iCryptKeyCallbackImpl=None, charset: str=None,
2025-02-25 13:12:01.093                 auth_plugin_list: str=None, session_time_zone: str=None) -> Connection:
2025-02-25 13:12:01.093         """Establishes a connection to the database.
2025-02-25 13:12:01.093
2025-02-25 13:12:01.093         Arguments:
2025-02-25 13:12:01.093             database: DSN or Database configuration name.
2025-02-25 13:12:01.093             user: User name.
2025-02-25 13:12:01.093             password: User password.
2025-02-25 13:12:01.093             role: User role.
2025-02-25 13:12:01.093             no_gc: Do not perform garbage collection for this connection.
2025-02-25 13:12:01.093             no_db_triggers: Do not execute database triggers for this connection.
2025-02-25 13:12:01.093             dbkey_scope: DBKEY scope override for connection.
2025-02-25 13:12:01.093             crypt_callback: Callback that provides encryption key for the database.
2025-02-25 13:12:01.093             charset: Character set for connection.
2025-02-25 13:12:01.093             auth_plugin_list: List of authentication plugins override
2025-02-25 13:12:01.093             session_time_zone: Session time zone [Firebird 4]
2025-02-25 13:12:01.093
2025-02-25 13:12:01.093         Hooks:
2025-02-25 13:12:01.093             Event `.ConnectionHook.ATTACH_REQUEST`: Executed after all parameters
2025-02-25 13:12:01.094             are preprocessed and before `Connection` is created. Hook
2025-02-25 13:12:01.094             must have signature::
2025-02-25 13:12:01.094
2025-02-25 13:12:01.094                 hook_func(dsn: str, dpb: bytes) -> Optional[Connection]
2025-02-25 13:12:01.094
2025-02-25 13:12:01.094             Hook may return `Connection` instance or None.
2025-02-25 13:12:01.094             First instance returned by any hook will become the return value
2025-02-25 13:12:01.094             of this function and other hooks are not called.
2025-02-25 13:12:01.094
2025-02-25 13:12:01.094             Event `.ConnectionHook.ATTACHED`: Executed before `Connection` instance is
2025-02-25 13:12:01.094             returned. Hook must have signature::
2025-02-25 13:12:01.094
2025-02-25 13:12:01.094                 hook_func(connection: Connection) -> None
2025-02-25 13:12:01.094
2025-02-25 13:12:01.094             Any value returned by hook is ignored.
2025-02-25 13:12:01.094         """
2025-02-25 13:12:01.094         db_config = driver_config.get_database(database)
2025-02-25 13:12:01.094         if db_config is None:
2025-02-25 13:12:01.094             db_config = driver_config.db_defaults
2025-02-25 13:12:01.094         else:
2025-02-25 13:12:01.094             database = db_config.database.value
2025-02-25 13:12:01.094         if db_config.server.value is None:
2025-02-25 13:12:01.095             srv_config = driver_config.server_defaults
2025-02-25 13:12:01.095         else:
2025-02-25 13:12:01.095             srv_config = driver_config.get_server(db_config.server.value)
2025-02-25 13:12:01.095             if srv_config is None:
2025-02-25 13:12:01.095                 raise ValueError(f"Configuration for server '{db_config.server.value}' not found")
2025-02-25 13:12:01.095         if user is None:
2025-02-25 13:12:01.095             user = db_config.user.value
2025-02-25 13:12:01.095             if user is None:
2025-02-25 13:12:01.095                 user = srv_config.user.value
2025-02-25 13:12:01.095         if password is None:
2025-02-25 13:12:01.095             password = db_config.password.value
2025-02-25 13:12:01.095             if password is None:
2025-02-25 13:12:01.095                 password = srv_config.password.value
2025-02-25 13:12:01.095         if role is None:
2025-02-25 13:12:01.095             role = db_config.role.value
2025-02-25 13:12:01.095         if charset is None:
2025-02-25 13:12:01.095             charset = db_config.charset.value
2025-02-25 13:12:01.095         if charset:
2025-02-25 13:12:01.095             charset = charset.upper()
2025-02-25 13:12:01.095         if auth_plugin_list is None:
2025-02-25 13:12:01.096             auth_plugin_list = db_config.auth_plugin_list.value
2025-02-25 13:12:01.096         if session_time_zone is None:
2025-02-25 13:12:01.096             session_time_zone = db_config.session_time_zone.value
2025-02-25 13:12:01.096         dsn = _connect_helper(db_config.dsn.value, srv_config.host.value, srv_config.port.value,
2025-02-25 13:12:01.096                               database, db_config.protocol.value)
2025-02-25 13:12:01.096         dpb = DPB(user=user, password=password, role=role, trusted_auth=db_config.trusted_auth.value,
2025-02-25 13:12:01.096                   sql_dialect=db_config.sql_dialect.value, timeout=db_config.timeout.value,
2025-02-25 13:12:01.096                   charset=charset, cache_size=db_config.cache_size.value,
2025-02-25 13:12:01.096                   no_linger=db_config.no_linger.value, utf8filename=db_config.utf8filename.value,
2025-02-25 13:12:01.096                   no_gc=no_gc, no_db_triggers=no_db_triggers, dbkey_scope=dbkey_scope,
2025-02-25 13:12:01.096                   dummy_packet_interval=db_config.dummy_packet_interval.value,
2025-02-25 13:12:01.096                   config=db_config.config.value, auth_plugin_list=auth_plugin_list,
2025-02-25 13:12:01.096                   session_time_zone=session_time_zone, set_bind=db_config.set_bind.value,
2025-02-25 13:12:01.096                   decfloat_round=db_config.decfloat_round.value,
2025-02-25 13:12:01.096                   decfloat_traps=db_config.decfloat_traps.value,
2025-02-25 13:12:01.096                   parallel_workers=db_config.parallel_workers.value)
2025-02-25 13:12:01.096 >       return __make_connection(False, dsn, db_config.utf8filename.value, dpb.get_buffer(),
2025-02-25 13:12:01.096                                  db_config.sql_dialect.value, charset, crypt_callback)
2025-02-25 13:12:01.096
2025-02-25 13:12:01.097 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2149:
2025-02-25 13:12:01.097 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-02-25 13:12:01.097
2025-02-25 13:12:01.097 create = False, dsn = 'localhost/33337:db_main_alias', utf8filename = False
2025-02-25 13:12:01.097 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00H\x04\x01\x00\x00\x00'
2025-02-25 13:12:01.097 sql_dialect = 3, charset = None, crypt_callback = None
2025-02-25 13:12:01.097
2025-02-25 13:12:01.097     def __make_connection(create: bool, dsn: str, utf8filename: bool, dpb: bytes,
2025-02-25 13:12:01.097                           sql_dialect: int, charset: str,
2025-02-25 13:12:01.097                           crypt_callback: iCryptKeyCallbackImpl) -> Connection:
2025-02-25 13:12:01.097         with a.get_api().master.get_dispatcher() as provider:
2025-02-25 13:12:01.097             if crypt_callback is not None:
2025-02-25 13:12:01.097                 provider.set_dbcrypt_callback(crypt_callback)
2025-02-25 13:12:01.097             if create:
2025-02-25 13:12:01.097                 att = provider.create_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-02-25 13:12:01.097                 con = Connection(att, dsn, dpb, sql_dialect, charset)
2025-02-25 13:12:01.097             else:
2025-02-25 13:12:01.097                 con = None
2025-02-25 13:12:01.097                 for hook in get_callbacks(ConnectionHook.ATTACH_REQUEST, Connection):
2025-02-25 13:12:01.098                     try:
2025-02-25 13:12:01.098                         con = hook(dsn, dpb)
2025-02-25 13:12:01.098                     except Exception as e:
2025-02-25 13:12:01.098                         raise InterfaceError("Error in DATABASE_ATTACH_REQUEST hook.", *e.args) from e
2025-02-25 13:12:01.098                     if con is not None:
2025-02-25 13:12:01.098                         break
2025-02-25 13:12:01.098                 if con is None:
2025-02-25 13:12:01.098 >                   att = provider.attach_database(dsn, dpb, 'utf-8' if utf8filename else FS_ENCODING)
2025-02-25 13:12:01.098
2025-02-25 13:12:01.098 C:\Python3x\Lib\site-packages\firebird\driver\core.py:2064:
2025-02-25 13:12:01.098 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-02-25 13:12:01.098
2025-02-25 13:12:01.098 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-02-25 13:12:01.098 filename = 'localhost/33337:db_main_alias'
2025-02-25 13:12:01.098 dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00H\x04\x01\x00\x00\x00'
2025-02-25 13:12:01.098 encoding = 'utf-8'
2025-02-25 13:12:01.098
2025-02-25 13:12:01.098     def attach_database(self, filename: str, dpb: Optional[bytes] = None, encoding: str = 'ascii') -> iAttachment:
2025-02-25 13:12:01.098         "Replaces `isc_attach_database()`"
2025-02-25 13:12:01.098         result = self.vtable.attachDatabase(self, self.status, filename.encode(encoding),
2025-02-25 13:12:01.099                                             0 if dpb is None else len(dpb), dpb)
2025-02-25 13:12:01.099 >       self._check()
2025-02-25 13:12:01.099
2025-02-25 13:12:01.099 C:\Python3x\Lib\site-packages\firebird\driver\interfaces.py:1295:
2025-02-25 13:12:01.099 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-02-25 13:12:01.099
2025-02-25 13:12:01.099 self = <firebird.driver.interfaces.iProvider object at [hex]>
2025-02-25 13:12:01.099
2025-02-25 13:12:01.099     def _check(self) -> None:
2025-02-25 13:12:01.099         state = self.status.get_state()
2025-02-25 13:12:01.099         if StateFlag.ERRORS in state:
2025-02-25 13:12:01.099 >           raise self.__report(DatabaseError, self.status.get_errors())
2025-02-25 13:12:01.099 E           firebird.driver.types.DatabaseError: Unable to complete network request to host "localhost".
2025-02-25 13:12:01.099 E           -Failed to establish a connection.
2025-02-25 13:12:01.099
2025-02-25 13:12:01.099 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]>
tmp_oltp_build_sql = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12117/tmp_oltp_emul_ddl.sql')
tmp_oltp_build_log = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_12117/tmp_oltp_emul_ddl.log')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.replication
    @pytest.mark.version('>=4.0.1')
    def test_1(act_db_main: Action,  act_db_repl: Action, tmp_oltp_build_sql: Path, tmp_oltp_build_log: Path, capsys):
    
        tmp_oltp_sql_files = []
    
        out_prep, out_init, out_main, out_drop = '', '', '', ''
        # 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(no_db_triggers = True) as con:

tests\functional\replication\test_oltp_emul_ddl.py:457: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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:2149: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

create = False, dsn = 'localhost/33337:db_main_alias', utf8filename = False
dpb = b'\x01\x1c\x06SYSDBA\x1d\tmasterkey?\x04\x03\x00\x00\x00H\x04\x01\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:2064: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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\x00H\x04\x01\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:1295: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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.3189 2025.02.25 1a1a5 P P 22699 20298 2025.06.27 13:26:53.606 2025.06.27 13:27:16.305 2025.06.27 12:25:52.916 2025.06.27 12:26:13.214
2 4.0.6.3184 2025.02.24 9388c P F 22878 2393 2025.02.25 11:08:06.383 2025.02.25 11:08:29.261 2025.02.25 10:03:29.772 2025.02.25 10:03:32.165
3 4.0.6.3183 2025.02.17 e4762 P P 23413 19627 2025.02.24 11:40:10.761 2025.02.24 11:40:34.174 2025.02.24 10:39:13.732 2025.02.24 10:39:33.359
4 4.0.6.3169 2024.12.13 42cc1 P P 23025 19409 2025.02.14 08:27:54.399 2025.02.14 08:28:17.424 2025.02.14 07:26:51.065 2025.02.14 07:27:10.474
5 4.0.6.3169 2024.12.08 50eb6 P P 22386 19781 2024.12.11 11:24:22.778 2024.12.11 11:24:45.164 2024.12.11 10:23:45.974 2024.12.11 10:24:05.755
6 4.0.6.3168 2024.12.07 98d69 P P 26119 19177 2024.12.08 04:07:07.560 2024.12.08 04:07:33.679 2024.12.08 03:04:38.457 2024.12.08 03:04:57.634
7 4.0.6.3168 2024.12.05 cee43 P P 25136 22275 2024.12.06 04:10:27.145 2024.12.06 04:10:52.281 2024.12.06 03:09:09.461 2024.12.06 03:09:31.736
8 4.0.6.3168 2024.11.28 48149 P P 25147 18969 2024.12.03 11:03:37.478 2024.12.03 11:04:02.625 2024.12.03 10:03:30.392 2024.12.03 10:03:49.361
9 4.0.6.3163 2024.10.30 832db P P 25792 22731 2024.11.28 11:02:11.228 2024.11.28 11:02:37.020 2024.11.28 10:02:28.926 2024.11.28 10:02:51.657
10 4.0.6.3163 2024.10.16 2bb10 P P 25722 19163 2024.10.30 11:11:15.986 2024.10.30 11:11:41.708 2024.10.30 10:11:19.129 2024.10.30 10:11:38.292
11 4.0.6.3147 2024.09.10 a4d11 P F 25277 2400 2024.10.16 04:18:48.775 2024.10.16 04:19:14.052 2024.10.16 03:15:23.289 2024.10.16 03:15:25.689
12 4.0.6.3147 2024.08.31 4655b P P 25455 19387 2024.09.10 11:17:03.027 2024.09.10 11:17:28.482 2024.09.10 10:12:37.327 2024.09.10 10:12:56.714
13 4.0.6.3140 2024.08.16 1dd8b P F 24813 2185 2024.09.01 11:39:30.613 2024.09.01 11:39:55.426 2024.09.01 10:33:01.484 2024.09.01 10:33:03.669
14 4.0.6.3140 2024.08.09 34747 P P 24584 19010 2024.08.16 11:19:54.654 2024.08.16 11:20:19.238 2024.08.16 10:15:50.287 2024.08.16 10:16:09.297
15 4.0.5.3110 2024.08.06 f851c P P 25407 23238 2024.08.09 10:58:40.905 2024.08.09 10:59:06.312 2024.08.09 09:55:26.616 2024.08.09 09:55:49.854
16 4.0.5.3110 2024.07.30 c6527 P P 26207 19619 2024.08.06 06:34:09.840 2024.08.06 06:34:36.047 2024.08.06 05:36:45.453 2024.08.06 05:37:05.072
17 4.0.5.3109 2024.06.11 6addf P P 22674 18866 2024.07.30 09:51:38.726 2024.07.30 09:52:01.400 2024.07.30 08:56:24.650 2024.07.30 08:56:43.516
18 4.0.5.3097 2024.05.09 27fa6 P P 25613 21753 2024.06.11 06:08:47.088 2024.06.11 06:09:12.701 2024.06.11 05:17:32.937 2024.06.11 05:17:54.690
19 4.0.5.3091 2024.04.29 bd0aa P P 25663 22050 2024.05.09 18:47:49.559 2024.05.09 18:48:15.222 2024.05.09 17:57:03.178 2024.05.09 17:57:25.228
20 4.0.5.3089 2024.04.20 9eb9b P P 24550 21643 2024.04.29 06:56:26.272 2024.04.29 06:56:50.822 2024.04.29 06:05:49.144 2024.04.29 06:06:10.787
21 4.0.5.3083 2024.04.06 300f9 P P 24831 22518 2024.04.20 07:19:42.084 2024.04.20 07:20:06.915 2024.04.20 06:28:55.096 2024.04.20 06:29:17.614
22 4.0.5.3052 2024.03.16 0f422 P P 24690 25175 2024.04.05 03:45:45.217 2024.04.05 03:46:09.907 2024.04.05 02:56:45.549 2024.04.05 02:57:10.724
23 4.0.5.3052 2024.03.16 ce273 P P 21907 21798 2024.03.29 15:10:50.058 2024.03.29 15:11:11.965 2024.03.29 14:24:38.677 2024.03.29 14:25:00.475
24 4.0.5.3052 2024.02.12 cd058 P P 21954 19720 2024.03.29 16:39:15.115 2024.03.29 16:39:37.069 2024.03.29 15:53:03.221 2024.03.29 15:53:22.941
25 4.0.5.3052 2024.02.07 be290 P P 22876 19767 2024.03.29 18:50:45.021 2024.03.29 18:51:07.897 2024.03.29 18:04:32.889 2024.03.29 18:04:52.656
26 4.0.5.3052 2024.02.07 6409b P P 22399 21658 2024.03.29 20:34:54.554 2024.03.29 20:35:16.953 2024.03.29 19:48:46.137 2024.03.29 19:49:07.795
27 4.0.5.3052 2024.02.02 bbc3f P P 24986 21860 2024.03.29 22:44:00.768 2024.03.29 22:44:25.754 2024.03.29 21:57:46.038 2024.03.29 21:58:07.898
28 4.0.5.3052 2024.01.26 48b7c P P 22908 21704 2024.03.30 00:11:13.294 2024.03.30 00:11:36.202 2024.03.29 23:24:59.292 2024.03.29 23:25:20.996
29 4.0.5.3052 2024.01.26 9a7b3 P P 23048 19970 2024.03.30 07:12:11.992 2024.03.30 07:12:35.040 2024.03.30 06:25:57.507 2024.03.30 06:26:17.477
30 4.0.5.3049 2024.01.25 f6b9d P P 22876 22673 2024.03.30 09:19:16.782 2024.03.30 09:19:39.658 2024.03.30 08:33:28.524 2024.03.30 08:33:51.197
31 4.0.5.3049 2024.01.08 b67ce P P 23579 22048 2024.03.30 11:07:20.535 2024.03.30 11:07:44.114 2024.03.30 10:12:03.639 2024.03.30 10:12:25.687
32 4.0.5.3049 2024.01.08 97577 P P 25611 22830 2024.03.30 16:12:09.729 2024.03.30 16:12:35.340 2024.03.30 15:17:15.675 2024.03.30 15:17:38.505
33 4.0.5.3049 2024.01.05 2d8b0 P P 22626 19767 2024.03.30 19:29:57.834 2024.03.30 19:30:20.460 2024.03.30 18:35:16.865 2024.03.30 18:35:36.632
34 4.0.5.3049 2024.01.04 431e5 P P 21782 19767 2024.03.30 21:08:10.891 2024.03.30 21:08:32.673 2024.03.30 20:22:30.408 2024.03.30 20:22:50.175
35 4.0.5.3049 2024.01.04 e33b4 P P 22861 21783 2024.03.30 23:20:03.798 2024.03.30 23:20:26.659 2024.03.30 22:34:18.445 2024.03.30 22:34:40.228
36 4.0.5.3049 2024.01.04 207ef P P 22830 21735 2024.03.31 01:03:34.246 2024.03.31 01:03:57.076 2024.03.31 00:17:46.536 2024.03.31 00:18:08.271
37 4.0.5.3034 2023.12.12 c05ff P P 19970 21658 2024.03.31 06:56:11.664 2024.03.31 06:56:31.634 2024.03.31 06:10:17.868 2024.03.31 06:10:39.526
38 4.0.5.3034 2023.12.12 3a40e P P 22924 19814 2024.03.31 15:30:54.915 2024.03.31 15:31:17.839 2024.03.31 14:45:02.392 2024.03.31 14:45:22.206
39 4.0.5.3034 2023.12.02 5934b P P 19939 22657 2024.03.31 10:03:55.249 2024.03.31 10:04:15.188 2024.03.31 09:18:03.782 2024.03.31 09:18:26.439
40 4.0.5.3034 2023.12.02 7ea5a P P 21954 22674 2024.03.31 17:55:15.253 2024.03.31 17:55:37.207 2024.03.31 17:09:22.964 2024.03.31 17:09:45.638
41 4.0.5.3034 2023.11.30 4fbc9 P P 19876 21720 2024.03.31 19:56:09.333 2024.03.31 19:56:29.209 2024.03.31 19:10:14.315 2024.03.31 19:10:36.035

Elapsed time, ms. Chart for last 41 runs:

Last commits information (all timestamps in UTC):