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
1 @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-04-20 10:45:05.333
2025-04-20 10:45:05.333 act = <firebird.qa.plugin.Action object at [hex]>
2025-04-20 10:45:05.333
2025-04-20 10:45:05.333     @pytest.mark.version('>=3.0.13')
2025-04-20 10:45:05.333     def test_1(act: Action):
2025-04-20 10:45:05.333         act.expected_stdout = expected_stdout
2025-04-20 10:45:05.333         act.execute(combine_output = True)
2025-04-20 10:45:05.333 >       assert act.clean_stdout == act.clean_expected_stdout
2025-04-20 10:45:05.334 E       assert
2025-04-20 10:45:05.334 E         - 1
2025-04-20 10:45:05.334 E         + Statement failed, SQLSTATE = 08006
2025-04-20 10:45:05.334 E         + Error reading data from the connection.
2025-04-20 10:45:05.334 E         + Statement failed, SQLSTATE = 08006
2025-04-20 10:45:05.334 E         + Error writing data to the connection.
2025-04-20 10:45:05.334 E         + Statement failed, SQLSTATE = 08006
2025-04-20 10:45:05.334 E         + Error writing data to the connection.
2025-04-20 10:45:05.334
2025-04-20 10:45:05.334 tests\bugs\gh_8437_test.py:38: AssertionError
2025-04-20 10:45:05.334 ---------------------------- Captured stdout setup ----------------------------
2025-04-20 10:45:05.334 Creating db: localhost:H:\QA\temp\qa2024.tmp\fbqa\test_11346\test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2 #text
request = <SubRequest 'db' for <Function test_1>>
db_path = WindowsPath('H:/QA/temp/qa2024.tmp/fbqa/test_11346')
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_hq30'

    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, encoding=srv_config.encoding.value,
                         errors=srv_config.encoding_errors.value, 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:5692: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

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

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`00393000 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     engine12!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`0299e740, class Jrd::RecordSourceNode * input = 0x00000000`029b5668, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, unsigned short flags = 0)+0x19e [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 1824]
0c     engine12!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`0299ecac, class Jrd::RecordSourceNode * input = 0x00007ff9`f6cd1d22, class Jrd::ValueListNode * order = 0x00000000`06cfdce8, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, unsigned short flags = 0)+0x17a [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 1759]
0d     engine12!PASS1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`00000020, class Jrd::SelectExprNode * input = 0x00000000`029b53d0, bool updateLock = true)+0x27 [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 579]
0e     engine12!Jrd::SubQueryNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`02a44270)+0x123 [h:\snapshots\hqbird\src\dsql\exprnodes.cpp @ 9532]
0f     engine12!Jrd::ValueListNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`02a442f0)+0x85 [h:\snapshots\hqbird\src\dsql\nodes.h @ 1212]
10     engine12!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`0299e740, class Jrd::RecordSourceNode * input = 0x00000000`00000000, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, unsigned short flags = 0)+0x19ac [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 2225]
11     engine12!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`029adb40, class Jrd::RecordSourceNode * input = 0x00007ffa`2b02b699, class Jrd::ValueListNode * order = 0x00000000`0000027f, class Jrd::RowsClause * rows = 0x00007ff9`f6cd1131, bool updateLock = false, unsigned short flags = 0)+0x17a [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 1759]
12     engine12!pass1_rse_impl(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`0299e740, class Jrd::RecordSourceNode * input = 0x00000000`00000000, class Jrd::ValueListNode * order = 0x00000000`00000000, class Jrd::RowsClause * rows = 0x00000000`00000000, bool updateLock = false, unsigned short flags = 0)+0xd2 [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 1790]
13     engine12!pass1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`029ae070, class Jrd::RecordSourceNode * input = 0x00007ff9`f6cd1d69, class Jrd::ValueListNode * order = 0x00000000`00000060, class Jrd::RowsClause * rows = 0x00000000`029b53d0, bool updateLock = false, unsigned short flags = 0)+0x17a [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 1759]
14     engine12!PASS1_rse(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`029b5720, class Jrd::SelectExprNode * input = 0x00000000`00000060, bool updateLock = true)+0x27 [h:\snapshots\hqbird\src\dsql\pass1.cpp @ 579]
15     engine12!Jrd::SelectNode::dsqlPass(class Jrd::DsqlCompilerScratch * dsqlScratch = 0x00000000`029b5720)+0xaa [h:\snapshots\hqbird\src\dsql\stmtnodes.cpp @ 7344]
16     engine12!Jrd::DsqlDmlRequest::dsqlPass(class Jrd::thread_db * tdbb = 0x00000000`00000030, class Jrd::DsqlCompilerScratch * scratch = 0x00000000`0295f1a0, bool * destroyScratchPool = 0x00000000`00000000, unsigned int * traceResult = 0x00000000`06cfe530)+0xb6 [h:\snapshots\hqbird\src\dsql\dsql.cpp @ 691]
17     engine12!prepareStatement(class Jrd::thread_db * tdbb = 0x00000000`0142e0b0, class Jrd::dsql_dbb * database = 0x00007ff9`f6cd1cd9, class Jrd::jrd_tra * transaction = 0x00000000`0142e348, unsigned long textLength = 0x142e0b0, char * text = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned short clientDialect = 3, bool isInternalRequest = false)+0xc1c [h:\snapshots\hqbird\src\dsql\dsql.cpp @ 1600]
18     engine12!prepareRequest(class Jrd::thread_db * tdbb = 0x00000000`0142e0b0, class Jrd::dsql_dbb * database = 0x00000000`014e9400, class Jrd::jrd_tra * transaction = 0x00000000`0142e0b0, unsigned long textLength = 0xf6cd0e43, char * text = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned short clientDialect = 3, bool isInternalRequest = false)+0x29 [h:\snapshots\hqbird\src\dsql\dsql.cpp @ 1442]
19     engine12!DSQL_prepare(class Jrd::thread_db * tdbb = 0x00000000`06cfecf0, class Jrd::Attachment * attachment = 0x00000000`00000000, class Jrd::jrd_tra * transaction = 0x00000000`06cfeec8, unsigned long length = 0x6cfeec8, char * string = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned short dialect = 3, class Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * items = 0x00000000`06cfebb8, class Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * buffer = 0x00000000`06cfebd0, bool isInternalRequest = false)+0x94 [h:\snapshots\hqbird\src\dsql\dsql.cpp @ 495]
1a     engine12!Jrd::JAttachment::prepare(class Firebird::CheckStatusWrapper * user_status = 0x00007ffa`07216970, class Firebird::ITransaction * apiTra = 0x0000b298`64058a76, unsigned int stmtLength = 0x54, char * sqlStmt = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned int dialect = 3, unsigned int flags = 0x47)+0x255 [h:\snapshots\hqbird\src\jrd\jrd.cpp @ 5197]
1b     engine12!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`00000000, class Firebird::IStatus * status = 0x00000001`40041f66, class Firebird::ITransaction * tra = 0x00000000`00000000, unsigned int stmtLength = 0x18, char * sqlStmt = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned int dialect = 3, unsigned int flags = 0x47)+0xc4 [h:\snapshots\hqbird\src\include\firebird\idlfbinterfaces.h @ 9030]
1c     fbclient!Why::YAttachment::prepare(class Firebird::CheckStatusWrapper * status = 0x00000000`06cfefe8, class Firebird::ITransaction * transaction = 0x00000000`63769358, unsigned int stmtLength = 0, char * sqlStmt = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned int dialect = 3, unsigned int flags = 0x47)+0xc2 [h:\snapshots\hqbird\src\yvalve\why.cpp @ 5074]
1d     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`05a9d0b0, class Firebird::IStatus * status = 0x00000000`06cff698, class Firebird::ITransaction * tra = 0x00000000`0000fb80, unsigned int stmtLength = 0x72121c0, char * sqlStmt = 0x00000000`05e60ad0 "select row_number()over(partition by (select 1 from rdb$database)) from rdb$databaserd", unsigned int dialect = 3, unsigned int flags = 0x47)+0xc4 [h:\snapshots\hqbird\src\include\firebird\idlfbinterfaces.h @ 9030]
1e     firebird!rem_port::prepare_statement(struct p_sqlst * prepareL = 0x00000000`01aa2140, struct packet * sendL = 0x00000000`01aa2140)+0x4ca [h:\snapshots\hqbird\src\remote\server\server.cpp @ 4333]
1f     firebird!process_packet(struct rem_port * port = 0x00000000`008c04c0, struct packet * sendL = 0x00000000`01aad940, struct packet * receive = 0x00000000`01aad940, struct rem_port ** result = 0x00000000`00000000)+0x529 [h:\snapshots\hqbird\src\remote\server\server.cpp @ 4635]
20     firebird!loopThread(void * __formal = 0x00000000`037ab690)+0x1aa [h:\snapshots\hqbird\src\remote\server\server.cpp @ 6110]
21     firebird!threadStart(void * arg = 0x00000000`05ade260)+0x67 [h:\snapshots\hqbird\src\common\threadstart.cpp @ 97]
22     msvcr100!endthreadex+0x43
23     msvcr100!endthreadex+0xdf
24     kernel32!BaseThreadInitThunk+0x14
25     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 3.0.13.33803 2025.03.25 ea22a F E 1907 4276 2025.04.20 08:18:28.106 2025.04.20 08:18:30.013 2025.04.20 07:19:23.607 2025.04.20 07:19:27.883
2 3.0.13.33803 2025.02.25 08ebd F E 2067 5600 2025.03.25 10:34:28.641 2025.03.25 10:34:30.708 2025.03.25 09:34:03.571 2025.03.25 09:34:09.171

Elapsed time, ms. Chart for last 2 runs:

Last commits information (all timestamps in UTC):