[stub, to be replaced]

Show firebird.log [FOUND messages 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

    Server crashed ?
    Network / firewall ?

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

    LOG DETAILS:

    2025-02-25 10:48:29.772
    2025-02-25 10:48:29.772 act = <firebird.qa.plugin.Action object at [hex]>
    2025-02-25 10:48:29.772
    2025-02-25 10:48:29.772     @pytest.mark.version('>=4.0.6')
    2025-02-25 10:48:29.772     def test_1(act: Action):
    2025-02-25 10:48:29.772         act.expected_stdout = expected_stdout
    2025-02-25 10:48:29.772         act.execute(combine_output = True)
    2025-02-25 10:48:29.772 >       assert act.clean_stdout == act.clean_expected_stdout
    2025-02-25 10:48:29.772 E       assert
    2025-02-25 10:48:29.772 E         - 1
    2025-02-25 10:48:29.772 E         + Statement failed, SQLSTATE = 08006
    2025-02-25 10:48:29.772 E         + Error reading data from the connection.
    2025-02-25 10:48:29.772 E         + Statement failed, SQLSTATE = 08006
    2025-02-25 10:48:29.772 E         + Error writing data to the connection.
    2025-02-25 10:48:29.773 E         + Statement failed, SQLSTATE = 08006
    2025-02-25 10:48:29.773 E         + Error writing data to the connection.
    2025-02-25 10:48:29.773
    2025-02-25 10:48:29.773 tests\bugs\gh_8437_test.py:34: AssertionError
    2025-02-25 10:48:29.773 ---------------------------- Captured stdout setup ----------------------------
    2025-02-25 10:48:29.773 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11706\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]

3 #text

    request = <SubRequest 'db' for <Function test_1>>
    db_path = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_11706')
    db_cache = <firebird.qa.plugin.DbCache pytest object at [hex]>

        @pytest.fixture
        def database_fixture(request: pytest.FixtureRequest, db_path, db_cache) -> Database:
            db = Database(db_path, filename, user, password, charset, debug=str(request.module),
                          config_name=config_name, utf8filename=utf8filename)
            if not do_not_create:
                if from_backup is None and copy_of is None:
                    db.create(page_size, sql_dialect, db_cache)
                elif from_backup is not None:
                    db.restore(from_backup)
                elif copy_of is not None:
                    db.copy(copy_of)
                if async_write:
                    db.set_async_write()
                if init: # Do not check for None, we want to skip empty scripts as well
                    try:
                        db.init(init)
                    except Error as exc:
                        if hasattr(exc, 'stderr'):
                            request.node.user_properties.append(("dbinit-stderr", exc.stderr))
                        raise
            yield db
            if not do_not_drop:
    >           db.drop()

    src\firebird\qa\plugin.py:987:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    server = 'qa_rundaily_hq50'

        def connect_server(server: str, *, user: str=None, password: str=None,
                           crypt_callback: iCryptKeyCallbackImpl=None,
                           expected_db: str=None, role: str=None, encoding: str=None,
                           encoding_errors: str=None) -> Server:
            """Establishes a connection to server's service manager.

            Arguments:
                server: Server host machine or Server configuration name.
                user: User name.
                password: User password.
                crypt_callback: Callback that provides encryption key.
                expected_db: Database that would be accessed (for using services with non-default
                             security database)
                role: SQL role used for connection.
                encoding: Encoding for string values passed in parameter buffer. Default is
                   `.ServerConfig.encoding`.
                encoding_errors: Error handler used for encoding errors. Default is
                   `.ServerConfig.encoding_errors`.

            Hooks:
                Event `.ServerHook.ATTACHED`: Executed before `Service` instance is
                returned. Hook must have signature::

                    hook_func(server: Server) -> None

                Any value returned by hook is ignored.
            """
            srv_config = driver_config.get_server(server)
            if srv_config is None:
                srv_config = driver_config.server_defaults
                host = server or None
                port = None
            else:
                host = srv_config.host.value
                port = srv_config.port.value
            if host is None:
                host = 'service_mgr'
            if not host.endswith('service_mgr'):
                if host and not host.endswith(':'):
                    if port:
                        host += f"/{port}"
                    host += ':'
                host += 'service_mgr'
            if user is None:
                user = srv_config.user.value
            if password is None:
                password = srv_config.password.value
            spb = SPB_ATTACH(user=user, password=password, config=srv_config.config.value,
                             trusted_auth=srv_config.trusted_auth.value,
                             auth_plugin_list=srv_config.auth_plugin_list.value,
                             expected_db=expected_db, role=role)
            spb_buf = spb.get_buffer()
            with a.get_api().master.get_dispatcher() as provider:
                if crypt_callback is not None:
                    provider.set_dbcrypt_callback(crypt_callback)
    >           svc = provider.attach_service_manager(host, spb_buf)

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

    self = <firebird.driver.interfaces.iProvider pytest object at [hex]>
    service = 'localhost/33337:service_mgr'
    spb = b'\x02\x02\x1c\x06SYSDBA\x1d\tmasterkey'

        def attach_service_manager(self, service: str, spb: bytes) -> iService:
            "Replaces `isc_service_attach()`"
            result = self.vtable.attachServiceManager(self, self.status, service.encode(), len(spb), spb)
    >       self._check()

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

    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

4 #stack

    #  00000`0037e000 Unfrozen
     #     Call Site
    00     ntdll!NtWaitForMultipleObjects+0x14
    01     KERNELBASE!WaitForMultipleObjectsEx+0xf0
    02     KERNELBASE!WaitForMultipleObjects+0xe
    03     kernel32!WerpLaunchAeDebug+0x2cba
    04     kernel32!WerpLaunchAeDebug+0x26f6
    05     KERNELBASE!UnhandledExceptionFilter+0x3d9
    06     ntdll!memset+0x1218
    07     ntdll!_C_specific_handler+0x96
    08     ntdll!_chkstk+0x11f
    09     ntdll!RtlRaiseException+0x484
    0a     ntdll!KiUserExceptionDispatcher+0x2e
    0b     engine13!Jrd::PsqlChanger::{ctor}(void)+0x17 [H:\SNAPSHOTS\HQbird\src\dsql\DsqlCompilerScratch.h @ 337]
    0c     engine13!Jrd::Node::doDsqlPass(void)+0x17 [H:\SNAPSHOTS\HQbird\src\dsql\Nodes.h @ 147]
    0d     engine13!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00000000`00000000, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0x1b8 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 1850]
    0e     engine13!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00000000`00000000, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0x180 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 1785]
    0f     engine13!PASS1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::SelectExprNode * input = <Value unavailable error>, class Jrd::SelectNode * select = 0x00000000`00000000)+0x47 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 593]
    10     engine13!Jrd::SubQueryNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0)+0x112 [H:\SNAPSHOTS\HQbird\src\dsql\ExprNodes.cpp @ 11209]
    11     engine13!Jrd::Node::doDsqlPass(void)+0x15 [H:\SNAPSHOTS\HQbird\src\dsql\Nodes.h @ 130]
    12     engine13!Jrd::ValueListNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0)+0x75 [H:\SNAPSHOTS\HQbird\src\dsql\Nodes.h @ 1314]
    13     engine13!Jrd::Node::doDsqlPass(void)+0x9 [H:\SNAPSHOTS\HQbird\src\dsql\Nodes.h @ 130]
    14     engine13!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00007ffc`0dc68db0, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00007ffc`4f75b86b, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0x1fd6 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 2275]
    15     engine13!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00000000`01494840, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0x180 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 1785]
    16     engine13!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00000000`00000104, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0xd9 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 1812]
    17     engine13!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::RecordSourceNode * input = 0x00000000`01494940, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, bool skipLocked = false, unsigned short flags = 0)+0x180 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 1785]
    18     engine13!PASS1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0, class Jrd::SelectExprNode * input = <Value unavailable error>, class Jrd::SelectNode * select = 0x00000000`014949e0)+0x47 [H:\SNAPSHOTS\HQbird\src\dsql\pass1.cpp @ 593]
    19     engine13!Jrd::SelectNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`014ae8c0)+0xb1 [H:\SNAPSHOTS\HQbird\src\dsql\StmtNodes.cpp @ 8317]
    1a     engine13!Jrd::Node::doDsqlPass(class NestConst<Jrd::StmtNode> * node = 0x00000000`01490158)+0x19 [H:\SNAPSHOTS\HQbird\src\dsql\Nodes.h @ 130]
    1b     engine13!Jrd::DsqlDmlStatement::dsqlPass(class Jrd::thread_db * tdbb = 0x00000000`0935eb68, class Jrd::DsqlCompilerScratch * scratch = 0x00000000`014ae8c0, unsigned int * traceResult = 0x00000000`0935e7a4)+0x91 [H:\SNAPSHOTS\HQbird\src\dsql\DsqlStatements.cpp @ 139]
    1c     engine13!prepareStatement(class Jrd::thread_db * tdbb = 0x00000000`0935eb68, class Jrd::dsql_dbb * database = 0x00000000`00fd1e30, class Jrd::jrd_tra * transaction = 0x00000000`1a93fda0, unsigned long textLength = 0x54, char * text = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned short clientDialect = 3, bool isInternalRequest = false, unsigned int * traceResult = 0x00000000`0935e7a4)+0x858 [H:\SNAPSHOTS\HQbird\src\dsql\dsql.cpp @ 650]
    1d     engine13!prepareRequest(class Jrd::thread_db * tdbb = 0x00000000`0935eb68, class Jrd::dsql_dbb * database = 0x00000000`00fd1e30, class Jrd::jrd_tra * transaction = 0x00000000`01491dc0, unsigned long textLength = 0, char * text = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned short clientDialect = 3, bool isInternalRequest = false)+0x3ee [H:\SNAPSHOTS\HQbird\src\dsql\dsql.cpp @ 518]
    1e     engine13!safePrepareRequest(class Jrd::thread_db * tdbb = 0x00000000`0935eb68, class Jrd::dsql_dbb * database = 0x00007ffc`0d81e885, class Jrd::jrd_tra * transaction = 0x00000000`00000047, unsigned long textLength = 0xa482220, char * text = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned short clientDialect = 3, bool isInternalRequest = false)+0x86 [H:\SNAPSHOTS\HQbird\src\dsql\dsql.cpp @ 461]
    1f     engine13!DSQL_prepare(class Jrd::thread_db * tdbb = 0x00000000`0935eb68, class Jrd::Attachment * attachment = 0x00000000`02790040, class Jrd::jrd_tra * transaction = 0x00000000`01491dc0, unsigned long length = 0x54, char * string = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned short dialect = 3, unsigned int prepareFlags = 0x47, class Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * items = 0x00000000`0935ea50, class Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * buffer = 0x00000000`0935ea38, bool isInternalRequest = false)+0xee [H:\SNAPSHOTS\HQbird\src\dsql\dsql.cpp @ 272]
    20     engine13!Jrd::JAttachment::prepare(class Firebird::CheckStatusWrapper * user_status = 0x00000000`0935ed30, class Firebird::ITransaction * apiTra = 0x00000000`27a4ffd8, unsigned int stmtLength = 0x54, char * sqlStmt = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned int dialect = 3, unsigned int flags = 0x47)+0x259 [H:\SNAPSHOTS\HQbird\src\jrd\jrd.cpp @ 5671]
    21     engine13!Firebird::IAttachmentBaseImpl<Jrd::JAttachment,Firebird::CheckStatusWrapper,Firebird::IReferenceCountedImpl<Jrd::JAttachment,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JAttachment,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IAttachment> > > > >::cloopprepareDispatcher(class Firebird::IAttachment * self = 0x00000000`324dffd8, class Firebird::IStatus * status = 0x00000000`a7b9b430, class Firebird::ITransaction * tra = 0x00000000`27a4ffd8, unsigned int stmtLength = 0x54, char * sqlStmt = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned int dialect = 3, unsigned int flags = 0x47)+0x6a [H:\SNAPSHOTS\HQbird\src\include\firebird\IdlFbInterfaces.h @ 11830]
    22     fbclient!Firebird::IAttachment::prepare(void)+0x5a [H:\SNAPSHOTS\HQbird\src\include\firebird\IdlFbInterfaces.h @ 2628]
    23     fbclient!Why::YAttachment::prepare(class Firebird::CheckStatusWrapper * status = 0x00000000`0935ee50, class Firebird::ITransaction * transaction = 0x00000000`19904e18, unsigned int stmtLength = 0x54, char * sqlStmt = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned int dialect = 3, unsigned int flags = 0x47)+0xda [H:\SNAPSHOTS\HQbird\src\yvalve\why.cpp @ 5617]
    24     fbclient!Firebird::IAttachmentBaseImpl<Why::YAttachment,Firebird::CheckStatusWrapper,Firebird::IReferenceCountedImpl<Why::YAttachment,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Why::YAttachment,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IAttachment> > > > >::cloopprepareDispatcher(class Firebird::IAttachment * self = 0x00000000`a7b9b438, class Firebird::IStatus * status = 0x00000000`a7b9b438, class Firebird::ITransaction * tra = 0x00000000`19904e18, unsigned int stmtLength = 0x54, char * sqlStmt = 0x00000000`1a93fda0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$database", unsigned int dialect = 3, unsigned int flags = 0x47)+0x6a [H:\SNAPSHOTS\HQbird\src\include\firebird\IdlFbInterfaces.h @ 11830]
    25     firebird!Firebird::IAttachment::prepare(void)+0x4c [H:\SNAPSHOTS\HQbird\src\include\firebird\IdlFbInterfaces.h @ 2628]
    26     firebird!rem_port::prepare_statement(struct p_sqlst * prepareL = 0x00000000`05401b78, struct packet * sendL = <Value unavailable error>)+0x3d7 [H:\SNAPSHOTS\HQbird\src\remote\server\server.cpp @ 4992]
    27     firebird!process_packet(struct rem_port * port = 0x00000000`026790c0, struct packet * sendL = 0x00000000`054012d8, struct packet * receive = 0x00000000`05401878, struct rem_port ** result = 0x00000000`0935fee0)+0x4e4 [H:\SNAPSHOTS\HQbird\src\remote\server\server.cpp @ 5293]
    28     firebird!loopThread(void * __formal = 0x00000000`009a0930)+0x338 [H:\SNAPSHOTS\HQbird\src\remote\server\server.cpp @ 6844]
    29     firebird!`anonymous-namespace'::ThreadArgs::run(void)+0x5 [H:\SNAPSHOTS\HQbird\src\common\ThreadStart.cpp @ 78]
    2a     firebird!threadStart(void * arg = 0x00000000`02a9cc80)+0x67 [H:\SNAPSHOTS\HQbird\src\common\ThreadStart.cpp @ 97]
    2b     ucrtbase!configthreadlocale+0x92
    2c     kernel32!BaseThreadInitThunk+0x14
    2d     ntdll!RtlUserThreadStart+0x21

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.1648 2025.04.18 2f4c5 | P | P | 590 | 375 | 2025.04.20 04:21:00.540 | 2025.04.20 04:21:01.130 | 2025.04.20 03:19:27.263 | 2025.04.20 03:19:27.638
2 | 5.0.3.1635 2025.04.03 f6bd1 | P | E | 589 | 2397 | 2025.04.18 06:48:41.075 | 2025.04.18 06:48:41.664 | 2025.04.18 05:29:12.120 | 2025.04.18 05:29:14.517
3 | 5.0.3.1635 2025.03.31 22ec6 | P | E | 616 | 2439 | 2025.04.03 09:54:31.326 | 2025.04.03 09:54:31.942 | 2025.04.03 08:34:42.562 | 2025.04.03 08:34:45.001
4 | 5.0.3.1633 2025.03.28 3123a | P | E | 608 | 2425 | 2025.03.31 09:52:59.424 | 2025.03.31 09:53:00.032 | 2025.03.31 08:33:18.612 | 2025.03.31 08:33:21.037
5 | 5.0.3.1633 2025.03.27 e0fb8 | P | E | 656 | 2424 | 2025.03.28 10:24:39.639 | 2025.03.28 10:24:40.295 | 2025.03.28 09:01:12.865 | 2025.03.28 09:01:15.289
6 | 5.0.3.1631 2025.03.25 bda65 | P | P | 622 | 378 | 2025.03.27 10:05:10.501 | 2025.03.27 10:05:11.123 | 2025.03.27 08:59:55.202 | 2025.03.27 08:59:55.580
7 | 5.0.3.1631 2025.03.21 1925b | P | P | 612 | 419 | 2025.03.25 06:39:13.036 | 2025.03.25 06:39:13.648 | 2025.03.25 05:33:47.886 | 2025.03.25 05:33:48.305
8 | 5.0.3.1629 2025.03.18 506d7 | P | P | 600 | 396 | 2025.03.20 09:39:30.268 | 2025.03.20 09:39:30.868 | 2025.03.20 08:33:54.726 | 2025.03.20 08:33:55.122
9 | 5.0.3.1628 2025.03.14 16d05 | P | P | 589 | 378 | 2025.03.18 09:33:38.133 | 2025.03.18 09:33:38.722 | 2025.03.18 08:29:37.096 | 2025.03.18 08:29:37.474
10 | 5.0.3.1627 2025.02.26 4e218 | P | P | 646 | 397 | 2025.03.13 09:52:56.129 | 2025.03.13 09:52:56.775 | 2025.03.13 08:47:09.168 | 2025.03.13 08:47:09.565
11 | 5.0.3.1624 2025.02.25 dc3b2 | P | P | 593 | 390 | 2025.02.26 15:25:10.536 | 2025.02.26 15:25:11.129 | 2025.02.26 14:20:05.577 | 2025.02.26 14:20:05.967
12 | 5.0.2.1615 2025.02.20 4a726 | F | E | 2022 | 6495 | 2025.02.25 08:39:19.099 | 2025.02.25 08:39:21.121 | 2025.02.25 07:17:37.764 | 2025.02.25 07:17:44.259

#### Elapsed time, ms. Chart for last 12 runs:

Last commits information (all timestamps in UTC):