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
firebird.driver.types.InterfaceError: Result code does not match request code

LOG DETAILS:

2025-07-01 16:25:51.835
2025-07-01 16:25:51.842 act = <firebird.qa.plugin.Action object at [hex]>
2025-07-01 16:25:51.848 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-07-01 16:25:51.855
2025-07-01 16:25:51.863 @pytest.mark.encryption
2025-07-01 16:25:51.874 @pytest.mark.version('>=3.0.2')
2025-07-01 16:25:51.888 def test_1(act: Action, capsys):
2025-07-01 16:25:51.901 map_dbo = {}
2025-07-01 16:25:51.913
2025-07-01 16:25:51.923 # Query to find first generators page number:
2025-07-01 16:25:51.935 first_gens_page_sql = f"""
2025-07-01 16:25:51.947 select p.rdb$page_number
2025-07-01 16:25:51.956 from rdb$pages p
2025-07-01 16:25:51.962 where p.rdb$page_type = {GENS_PAGE}
2025-07-01 16:25:51.969 order by p.rdb$page_number desc
2025-07-01 16:25:51.975 rows 1
2025-07-01 16:25:51.989 """
2025-07-01 16:25:52.001
2025-07-01 16:25:52.011 # Query to find relation_id and first PP for 'TEST' table:
2025-07-01 16:25:52.024 first_pp_sql = f"""
2025-07-01 16:25:52.035 select p.rdb$relation_id, p.rdb$page_number
2025-07-01 16:25:52.046 from rdb$pages p
2025-07-01 16:25:52.055 join rdb$relations r on p.rdb$relation_id = r.rdb$relation_id
2025-07-01 16:25:52.062 where r.rdb$relation_name=upper('TEST') and p.rdb$page_type = {POINTER_PAGE}
2025-07-01 16:25:52.069 order by p.rdb$page_number
2025-07-01 16:25:52.075 rows 1
2025-07-01 16:25:52.084 """
2025-07-01 16:25:52.095
2025-07-01 16:25:52.105 broken_pages_map = { POINTER_PAGE : [], DATA_PAGE : [], IDX_ROOT_PAGE : [], IDX_B_TREE : [], BLOB_PAGE : [], GENS_PAGE : [] }
2025-07-01 16:25:52.113 with act.db.connect() as con:
2025-07-01 16:25:52.120 fill_dbo(con, map_dbo)
2025-07-01 16:25:52.127 c = con.cursor()
2025-07-01 16:25:52.135
2025-07-01 16:25:52.149 broken_pages_map[GENS_PAGE] = [c.execute(first_gens_page_sql).fetchone()[0],]
2025-07-01 16:25:52.158
2025-07-01 16:25:52.165 test_rel_id, test_rel_first_pp = c.execute(first_pp_sql).fetchone()
2025-07-01 16:25:52.171
2025-07-01 16:25:52.182 # Found first page for each of three types: Data, Index and Blob
2025-07-01 16:25:52.190 # (loop starts from first PointerPage of table 'TEST')
2025-07-01 16:25:52.200 brk_datapage = brk_indxpage = brk_blobpage = -1
2025-07-01 16:25:52.207
2025-07-01 16:25:52.216 for page_no in range(test_rel_first_pp, con.info.pages_allocated):
2025-07-01 16:25:52.228 >               page_type, relation_id, page_info = parse_page_header(con, page_no, map_dbo)
2025-07-01 16:25:52.239
2025-07-01 16:25:52.247 tests/bugs/core_5501_test.py:423:
2025-07-01 16:25:52.255 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-01 16:25:52.264
2025-07-01 16:25:52.279 con = Connection[3002], page_number = 406
2025-07-01 16:25:52.291 map_dbo = {(128, -1): ('TEST', ''), (128, 0): ('TEST', 'TEST_S_UNQ')}
2025-07-01 16:25:52.297
2025-07-01 16:25:52.307 def parse_page_header(con: Connection, page_number: int, map_dbo: Dict):
2025-07-01 16:25:52.315 >       page_buffer = con.info.get_page_content(page_number)
2025-07-01 16:25:52.321
2025-07-01 16:25:52.329 tests/bugs/core_5501_test.py:263:
2025-07-01 16:25:52.335 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-01 16:25:52.341
2025-07-01 16:25:52.348 self = <firebird.driver.core.DatabaseInfoProvider object at [hex]>
2025-07-01 16:25:52.360 page_number = 406
2025-07-01 16:25:52.369
2025-07-01 16:25:52.379 def get_page_content(self, page_number: int) -> bytes:
2025-07-01 16:25:52.392 """Returns content of single database page.
2025-07-01 16:25:52.401
2025-07-01 16:25:52.412 Arguments:
2025-07-01 16:25:52.425 page_number: Sequence number of database page to be fetched from server.
2025-07-01 16:25:52.438 """
2025-07-01 16:25:52.450 >       return self.get_info(DbInfoCode.PAGE_CONTENTS, page_number)
2025-07-01 16:25:52.459
2025-07-01 16:25:52.473 ../lib/python3.11/site-packages/firebird/driver/core.py:1338:
2025-07-01 16:25:52.482 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-07-01 16:25:52.488
2025-07-01 16:25:52.499 self = <firebird.driver.core.DatabaseInfoProvider object at [hex]>
2025-07-01 16:25:52.507 info_code = <DbInfoCode.PAGE_CONTENTS: 113>, page_number = 406
2025-07-01 16:25:52.516
2025-07-01 16:25:52.528 def get_info(self, info_code: DbInfoCode, page_number: int=None) -> Any:
2025-07-01 16:25:52.538 """Returns requested information from associated attachment.
2025-07-01 16:25:52.545
2025-07-01 16:25:52.551 Arguments:
2025-07-01 16:25:52.558 info_code: A code specifying the required information.
2025-07-01 16:25:52.564 page_number: A page number for `DbInfoCode.PAGE_CONTENTS` request. Ignored for other requests.
2025-07-01 16:25:52.571
2025-07-01 16:25:52.579 Returns:
2025-07-01 16:25:52.592 The data type of returned value depends on information required.
2025-07-01 16:25:52.603 """
2025-07-01 16:25:52.614 if info_code in self._cache:
2025-07-01 16:25:52.626 return self._cache[info_code]
2025-07-01 16:25:52.636 if info_code not in self._handlers:
2025-07-01 16:25:52.644 raise NotSupportedError(f"Info code {info_code} not supported by engine version {self.__engine_version}")
2025-07-01 16:25:52.651 self.response.clear()
2025-07-01 16:25:52.658 request = bytes([info_code])
2025-07-01 16:25:52.669 if info_code == DbInfoCode.PAGE_CONTENTS:
2025-07-01 16:25:52.681 request += (4).to_bytes(2, 'little')
2025-07-01 16:25:52.689 request += page_number.to_bytes(4, 'little')
2025-07-01 16:25:52.696 if len(self.response.raw) < self.page_size + 10:
2025-07-01 16:25:52.702 self.response.resize(self.page_size + 10)
2025-07-01 16:25:52.713 self._get_data(request)
2025-07-01 16:25:52.723 tag = self.response.get_tag()
2025-07-01 16:25:52.733 if request[0] != tag:
2025-07-01 16:25:52.745 if info_code in (DbInfoCode.ACTIVE_TRANSACTIONS, DbInfoCode.LIMBO):
2025-07-01 16:25:52.758 # isc_info_active_transactions and isc_info_limbo with no transactions to
2025-07-01 16:25:52.768 # report returns empty buffer and does not follow this rule
2025-07-01 16:25:52.780 pass
2025-07-01 16:25:52.794 elif tag == isc_info_error:  # pragma: no cover
2025-07-01 16:25:52.807 raise InterfaceError("An error response was received")
2025-07-01 16:25:52.821 else:  # pragma: no cover
2025-07-01 16:25:52.837 >               raise InterfaceError("Result code does not match request code")
2025-07-01 16:25:52.851 E               firebird.driver.types.InterfaceError: Result code does not match request code
2025-07-01 16:25:52.860
2025-07-01 16:25:52.868 ../lib/python3.11/site-packages/firebird/driver/core.py:1316: InterfaceError
2025-07-01 16:25:52.875 ---------------------------- Captured stdout setup -----------------------------
2025-07-01 16:25:52.881 Creating db: localhost:/var/tmp/qa_2024/test_11121/test.fdb [page_size=8192, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.encryption
    @pytest.mark.version('>=3.0.2')
    def test_1(act: Action, capsys):
        map_dbo = {}
    
        # Query to find first generators page number:
        first_gens_page_sql = f"""
            select p.rdb$page_number
            from rdb$pages p
            where p.rdb$page_type = {GENS_PAGE}
            order by p.rdb$page_number desc
            rows 1
        """
    
        # Query to find relation_id and first PP for 'TEST' table:
        first_pp_sql = f"""
            select p.rdb$relation_id, p.rdb$page_number
            from rdb$pages p
            join rdb$relations r on p.rdb$relation_id = r.rdb$relation_id
            where r.rdb$relation_name=upper('TEST') and p.rdb$page_type = {POINTER_PAGE}
            order by p.rdb$page_number
            rows 1
        """
    
        broken_pages_map = { POINTER_PAGE : [], DATA_PAGE : [], IDX_ROOT_PAGE : [], IDX_B_TREE : [], BLOB_PAGE : [], GENS_PAGE : [] }
        with act.db.connect() as con:
            fill_dbo(con, map_dbo)
            c = con.cursor()
    
            broken_pages_map[GENS_PAGE] = [c.execute(first_gens_page_sql).fetchone()[0],]
    
            test_rel_id, test_rel_first_pp = c.execute(first_pp_sql).fetchone()
    
            # Found first page for each of three types: Data, Index and Blob
            # (loop starts from first PointerPage of table 'TEST')
            brk_datapage = brk_indxpage = brk_blobpage = -1
    
            for page_no in range(test_rel_first_pp, con.info.pages_allocated):
>               page_type, relation_id, page_info = parse_page_header(con, page_no, map_dbo)

tests/bugs/core_5501_test.py:423: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

con = Connection[3002], page_number = 406
map_dbo = {(128, -1): ('TEST', ''), (128, 0): ('TEST', 'TEST_S_UNQ')}

    def parse_page_header(con: Connection, page_number: int, map_dbo: Dict):
>       page_buffer = con.info.get_page_content(page_number)

tests/bugs/core_5501_test.py:263: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.core.DatabaseInfoProvider pytest object at [hex]>
page_number = 406

    def get_page_content(self, page_number: int) -> bytes:
        """Returns content of single database page.
    
        Arguments:
           page_number: Sequence number of database page to be fetched from server.
        """
>       return self.get_info(DbInfoCode.PAGE_CONTENTS, page_number)

../lib/python3.11/site-packages/firebird/driver/core.py:1338: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.core.DatabaseInfoProvider pytest object at [hex]>
info_code = <DbInfoCode.PAGE_CONTENTS: 113>, page_number = 406

    def get_info(self, info_code: DbInfoCode, page_number: int=None) -> Any:
        """Returns requested information from associated attachment.
    
        Arguments:
            info_code: A code specifying the required information.
            page_number: A page number for `DbInfoCode.PAGE_CONTENTS` request. Ignored for other requests.
    
        Returns:
            The data type of returned value depends on information required.
        """
        if info_code in self._cache:
            return self._cache[info_code]
        if info_code not in self._handlers:
            raise NotSupportedError(f"Info code {info_code} not supported by engine version {self.__engine_version}")
        self.response.clear()
        request = bytes([info_code])
        if info_code == DbInfoCode.PAGE_CONTENTS:
            request += (4).to_bytes(2, 'little')
            request += page_number.to_bytes(4, 'little')
            if len(self.response.raw) < self.page_size + 10:
                self.response.resize(self.page_size + 10)
        self._get_data(request)
        tag = self.response.get_tag()
        if request[0] != tag:
            if info_code in (DbInfoCode.ACTIVE_TRANSACTIONS, DbInfoCode.LIMBO):
                # isc_info_active_transactions and isc_info_limbo with no transactions to
                # report returns empty buffer and does not follow this rule
                pass
            elif tag == isc_info_error:  # pragma: no cover
                raise InterfaceError("An error response was received")
            else:  # pragma: no cover
>               raise InterfaceError("Result code does not match request code")
E               firebird.driver.types.InterfaceError: Result code does not match request code

../lib/python3.11/site-packages/firebird/driver/core.py:1316: InterfaceError
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 1879 1081 2025.07.01 12:27:05.538 2025.07.01 12:27:07.417 2025.07.01 11:11:26.710 2025.07.01 11:11:27.791
2 5.0.3.1657 2025.06.19 4bd4c F F 1783 1036 2025.06.27 11:51:14.838 2025.06.27 11:51:16.621 2025.06.27 10:38:40.925 2025.06.27 10:38:41.961
3 5.0.3.1657 2025.06.11 dae6f F F 1937 1249 2025.06.17 06:55:47.261 2025.06.17 06:55:49.198 2025.06.17 05:42:00.820 2025.06.17 05:42:02.069
4 5.0.3.1657 2025.06.10 dbc92 F F 1827 1198 2025.06.11 11:47:45.443 2025.06.11 11:47:47.270 2025.06.11 10:19:51.795 2025.06.11 10:19:52.993
5 5.0.3.1656 2025.05.20 c4b11 F F 1860 1112 2025.06.10 11:38:31.702 2025.06.10 11:38:33.562 2025.06.10 10:21:12.562 2025.06.10 10:21:13.674
6 5.0.3.1652 2025.05.13 f51c6 F F 2247 1389 2025.05.20 04:38:16.951 2025.05.20 04:38:19.198 2025.05.20 03:10:21.154 2025.05.20 03:10:22.543
7 5.0.3.1651 2025.04.30 141ef F F 2194 1324 2025.05.13 11:36:28.033 2025.05.13 11:36:30.227 2025.05.13 10:06:48.708 2025.05.13 10:06:50.032
8 5.0.3.1650 2025.04.28 4cbff F F 2469 1359 2025.05.01 11:10:23.170 2025.05.01 11:10:25.639 2025.05.01 09:41:45.506 2025.05.01 09:41:46.865
9 5.0.3.1649 2025.04.21 5b2d0 F F 2162 1361 2025.04.28 05:08:36.547 2025.04.28 05:08:38.709 2025.04.28 03:42:18.095 2025.04.28 03:42:19.456
10 5.0.3.1648 2025.04.18 2f4c5 F F 2122 1104 2025.04.20 05:00:38.636 2025.04.20 05:00:40.758 2025.04.20 03:37:24.307 2025.04.20 03:37:25.411
11 5.0.3.1635 2025.03.31 22ec6 F F 2184 1220 2025.04.18 11:23:02.978 2025.04.18 11:23:05.162 2025.04.18 09:55:03.746 2025.04.18 09:55:04.966
12 5.0.3.1633 2025.03.28 3123a F F 1972 1160 2025.03.31 09:59:12.953 2025.03.31 09:59:14.925 2025.03.31 08:37:20.415 2025.03.31 08:37:21.575
13 5.0.3.1633 2025.03.27 e0fb8 F F 2001 1164 2025.03.28 10:30:51.720 2025.03.28 10:30:53.721 2025.03.28 09:05:10.734 2025.03.28 09:05:11.898
14 5.0.3.1631 2025.03.21 1925b F F 2135 1260 2025.03.27 10:19:23.103 2025.03.27 10:19:25.238 2025.03.27 08:55:04.580 2025.03.27 08:55:05.840
15 5.0.3.1628 2025.03.14 16d05 F F 803 469 2025.03.17 07:49:16.070 2025.03.17 07:49:16.873 2025.03.17 06:15:56.466 2025.03.17 06:15:56.935
16 5.0.3.1627 2025.02.26 4e218 F F 1203 434 2025.03.14 11:02:44.290 2025.03.14 11:02:45.493 2025.03.14 09:29:12.147 2025.03.14 09:29:12.581
17 5.0.3.1624 2025.02.25 dc3b2 F F 775 402 2025.02.26 09:55:25.067 2025.02.26 09:55:25.842 2025.02.26 08:27:24.867 2025.02.26 08:27:25.269
18 5.0.2.1615 2025.02.20 4a726 F F 830 395 2025.02.25 10:22:27.403 2025.02.25 10:22:28.233 2025.02.25 08:53:11.017 2025.02.25 08:53:11.412
19 5.0.2.1615 2025.02.14 9cb76 F F 762 416 2025.02.20 07:13:00.099 2025.02.20 07:13:00.861 2025.02.20 05:46:44.194 2025.02.20 05:46:44.610
20 5.0.2.1577 2024.12.24 3c80e F F 798 433 2025.02.14 10:28:27.461 2025.02.14 10:28:28.259 2025.02.14 09:02:57.471 2025.02.14 09:02:57.904
21 5.0.2.1576 2024.12.17 646b0 F F 589 325 2024.12.24 17:59:40.097 2024.12.24 17:59:40.686 2024.12.24 16:54:30.699 2024.12.24 16:54:31.024
22 5.0.2.1575 2024.12.08 63d39 F F 656 311 2024.12.16 07:41:43.554 2024.12.16 07:41:44.210 2024.12.16 06:37:55.814 2024.12.16 06:37:56.125
23 5.0.2.1567 2024.11.26 56e63 F F 605 321 2024.12.04 07:21:54.721 2024.12.04 07:21:55.326 2024.12.04 06:16:14.460 2024.12.04 06:16:14.781
24 5.0.2.1567 2024.11.21 96f61 F F 593 306 2024.11.26 05:04:49.309 2024.11.26 05:04:49.902 2024.11.26 04:02:25.443 2024.11.26 04:02:25.749
25 5.0.2.1567 2024.11.18 e1289 F F 601 333 2024.11.21 07:09:35.699 2024.11.21 07:09:36.300 2024.11.21 06:07:33.490 2024.11.21 06:07:33.823
26 5.0.2.1533 2024.10.23 0ec43 P P 575 337 2024.11.18 07:25:00.560 2024.11.18 07:25:01.135 2024.11.18 06:21:19.510 2024.11.18 06:21:19.847
27 5.0.2.1533 2024.10.22 8af7a P P 680 328 2024.10.23 09:21:57.757 2024.10.23 09:21:58.437 2024.10.23 08:17:09.111 2024.10.23 08:17:09.439
28 5.0.2.1532 2024.10.15 36dc0 P P 680 366 2024.10.22 19:33:31.497 2024.10.22 19:33:32.177 2024.10.22 18:29:27.782 2024.10.22 18:29:28.148
29 5.0.2.1518 2024.10.04 259ba P P 605 312 2024.10.15 09:07:18.152 2024.10.15 09:07:18.757 2024.10.15 08:02:44.636 2024.10.15 08:02:44.948
30 5.0.2.1518 2024.09.26 703cd P P 714 343 2024.10.03 07:33:30.320 2024.10.03 07:33:31.034 2024.10.03 06:27:45.353 2024.10.03 06:27:45.696
31 5.0.2.1489 2024.09.05 40838 P P 668 348 2024.09.25 07:34:39.612 2024.09.25 07:34:40.280 2024.09.25 06:27:15.581 2024.09.25 06:27:15.929
32 5.0.2.1489 2024.08.31 994a6 P P 1219 590 2024.09.05 11:35:22.225 2024.09.05 11:35:23.444 2024.09.05 10:05:31.169 2024.09.05 10:05:31.759
33 5.0.2.1476 2024.08.09 843ea P P 1102 710 2024.08.31 13:55:40.083 2024.08.31 13:55:41.185 2024.08.31 11:59:33.120 2024.08.31 11:59:33.830
34 5.0.1.1454 2024.08.08 30f9f P P 799 493 2024.08.09 08:12:17.959 2024.08.09 08:12:18.758 2024.08.09 07:04:50.866 2024.08.09 07:04:51.359
35 5.0.1.1453 2024.08.06 1b9d0 P P 802 450 2024.08.08 20:51:13.901 2024.08.08 20:51:14.703 2024.08.08 19:43:04.378 2024.08.08 19:43:04.828
36 5.0.1.1453 2024.07.30 48044 P P 504 273 2024.08.06 06:55:58.851 2024.08.06 06:55:59.355 2024.08.06 05:56:30.241 2024.08.06 05:56:30.514
37 5.0.1.1453 2024.07.28 8d956 P P 501 294 2024.07.30 06:50:48.048 2024.07.30 06:50:48.549 2024.07.30 05:51:50.499 2024.07.30 05:51:50.793
38 5.0.1.1429 2024.07.19 8ee90 P P 503 288 2024.07.27 06:50:28.671 2024.07.27 06:50:29.174 2024.07.27 05:50:25.712 2024.07.27 05:50:26.000
39 5.0.1.1428 2024.07.15 00392 P P 474 298 2024.07.19 06:44:25.633 2024.07.19 06:44:26.107 2024.07.19 05:45:56.239 2024.07.19 05:45:56.537
40 5.0.1.1428 2024.06.30 67a31 P P 476 277 2024.07.15 06:45:58.756 2024.07.15 06:45:59.232 2024.07.15 05:46:36.867 2024.07.15 05:46:37.144
41 5.0.1.1415 2024.06.11 31d74 P P 486 281 2024.06.22 06:34:24.911 2024.06.22 06:34:25.397 2024.06.22 05:37:51.225 2024.06.22 05:37:51.506

Elapsed time, ms. Chart for last 41 runs:

Last commits information (all timestamps in UTC):