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.DatabaseError: invalid BLOB handle

LOG DETAILS:

2025-04-18 13:46:18.534
2025-04-18 13:46:18.542 act = <firebird.qa.plugin.Action object at [hex]>
2025-04-18 13:46:18.550 tmp_blob_file = PosixPath('/var/tmp/qa_2024/test_11838/tmp_small_blob.dat')
2025-04-18 13:46:18.557 capsys = <_pytest.capture.CaptureFixture object at [hex]>
2025-04-18 13:46:18.566
2025-04-18 13:46:18.581 @pytest.mark.version('>=5.0.3')
2025-04-18 13:46:18.589 def test_1(act: Action, tmp_blob_file: Path, capsys):
2025-04-18 13:46:18.596
2025-04-18 13:46:18.602 DATA_LEN_LIST = \
2025-04-18 13:46:18.615 (     0,    1,    2,    3,    4,
2025-04-18 13:46:18.624 32764,32765,32766,32767,32768,
2025-04-18 13:46:18.630 65532,65533,65534,65535,65536
2025-04-18 13:46:18.636 )
2025-04-18 13:46:18.641
2025-04-18 13:46:18.646 >       with act.db.connect() as con:
2025-04-18 13:46:18.652
2025-04-18 13:46:18.661 tests/functional/blob/test_read_blob_in_multiple_cursors.py:60:
2025-04-18 13:46:18.671 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:18.681
2025-04-18 13:46:18.691 self = Connection[7176], exc_type = None, exc_value = None, traceback = None
2025-04-18 13:46:18.700
2025-04-18 13:46:18.709 def __exit__(self, exc_type, exc_value, traceback) -> None:
2025-04-18 13:46:18.716 >       self.close()
2025-04-18 13:46:18.723
2025-04-18 13:46:18.729 ../lib/python3.11/site-packages/firebird/driver/core.py:1676:
2025-04-18 13:46:18.736 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:18.742
2025-04-18 13:46:18.749 self = Connection[7176]
2025-04-18 13:46:18.756
2025-04-18 13:46:18.764 def close(self) -> None:
2025-04-18 13:46:18.770 """Close the connection and release all associated resources.
2025-04-18 13:46:18.776
2025-04-18 13:46:18.789 Closes all event collectors, transaction managers (with rollback) and statements
2025-04-18 13:46:18.799 associated with this connection before attempt (see Hooks) to close the
2025-04-18 13:46:18.810 connection itself.
2025-04-18 13:46:18.821
2025-04-18 13:46:18.829 Hooks:
2025-04-18 13:46:18.836 Event `.ConnectionHook.DETACH_REQUEST`: Executed before connection
2025-04-18 13:46:18.843 is closed. Hook must have signature::
2025-04-18 13:46:18.852
2025-04-18 13:46:18.866 hook_func(connection: Connection) -> bool
2025-04-18 13:46:18.875
2025-04-18 13:46:18.886 .. note::
2025-04-18 13:46:18.901
2025-04-18 13:46:18.915 If any hook function returns True, connection is NOT closed.
2025-04-18 13:46:18.927
2025-04-18 13:46:18.935 Event `.ConnectionHook.CLOSED`: Executed after connection is closed.
2025-04-18 13:46:18.943 Hook must have signature::
2025-04-18 13:46:18.954
2025-04-18 13:46:18.964 hook_func(connection: Connection) -> None
2025-04-18 13:46:18.972
2025-04-18 13:46:18.979 Any value returned by hook is ignored.
2025-04-18 13:46:18.996
2025-04-18 13:46:19.011 Important:
2025-04-18 13:46:19.021 Closed connection SHALL NOT be used anymore.
2025-04-18 13:46:19.035 """
2025-04-18 13:46:19.046 if not self.is_closed():
2025-04-18 13:46:19.054 retain = False
2025-04-18 13:46:19.065 try:
2025-04-18 13:46:19.073 >               self._close()
2025-04-18 13:46:19.081
2025-04-18 13:46:19.089 ../lib/python3.11/site-packages/firebird/driver/core.py:1864:
2025-04-18 13:46:19.101 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:19.114
2025-04-18 13:46:19.123 self = Connection[7176]
2025-04-18 13:46:19.130
2025-04-18 13:46:19.143 def _close(self) -> None:
2025-04-18 13:46:19.152 if self.__schema is not None:
2025-04-18 13:46:19.162 self.__schema._set_internal(False)
2025-04-18 13:46:19.172 self.__schema.close()
2025-04-18 13:46:19.180 if self.__monitor is not None:
2025-04-18 13:46:19.187 self.__monitor._set_internal(False)
2025-04-18 13:46:19.195 self.__monitor.close()
2025-04-18 13:46:19.204 self._ic.close()
2025-04-18 13:46:19.212 for collector in self.__ecollectors:
2025-04-18 13:46:19.227 collector.close()
2025-04-18 13:46:19.242 >       self.main_transaction._finish(DefaultAction.ROLLBACK)
2025-04-18 13:46:19.254
2025-04-18 13:46:19.263 ../lib/python3.11/site-packages/firebird/driver/core.py:1701:
2025-04-18 13:46:19.271 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:19.285
2025-04-18 13:46:19.295 self = <firebird.driver.core.TransactionManager object at [hex]>
2025-04-18 13:46:19.305 default_action = <DefaultAction.ROLLBACK: 2>
2025-04-18 13:46:19.312
2025-04-18 13:46:19.321 def _finish(self, default_action: DefaultAction=None) -> None:
2025-04-18 13:46:19.328 try:
2025-04-18 13:46:19.336 if self._tra is not None:
2025-04-18 13:46:19.343 if default_action is None:
2025-04-18 13:46:19.350 default_action = self.default_action
2025-04-18 13:46:19.357 if default_action == DefaultAction.COMMIT:
2025-04-18 13:46:19.364 self.commit()
2025-04-18 13:46:19.371 else:
2025-04-18 13:46:19.381 >                   self.rollback()
2025-04-18 13:46:19.395
2025-04-18 13:46:19.407 ../lib/python3.11/site-packages/firebird/driver/core.py:2416:
2025-04-18 13:46:19.424 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:19.441
2025-04-18 13:46:19.452 self = <firebird.driver.core.TransactionManager object at [hex]>
2025-04-18 13:46:19.461
2025-04-18 13:46:19.474 def rollback(self, *, retaining: bool=False, savepoint: str=None) -> None:
2025-04-18 13:46:19.485 """Rolls back the transaction managed by this instance.
2025-04-18 13:46:19.495
2025-04-18 13:46:19.506 Arguments:
2025-04-18 13:46:19.515 retaining: When True, the transaction context is retained after rollback.
2025-04-18 13:46:19.528 savepoint: When specified, the transaction is rolled back to savepoint with given name.
2025-04-18 13:46:19.541
2025-04-18 13:46:19.551 Raises:
2025-04-18 13:46:19.560 InterfaceError: When both retaining and savepoint parameters are specified.
2025-04-18 13:46:19.568 """
2025-04-18 13:46:19.579 assert not self.__closed
2025-04-18 13:46:19.590 assert self.is_active()
2025-04-18 13:46:19.599 if retaining and savepoint:
2025-04-18 13:46:19.607 raise InterfaceError("Can't rollback to savepoint while retaining context")
2025-04-18 13:46:19.617 if savepoint:
2025-04-18 13:46:19.633 self.execute_immediate(f'rollback to {savepoint}')
2025-04-18 13:46:19.643 else:
2025-04-18 13:46:19.651 if retaining:
2025-04-18 13:46:19.658 self._tra.rollback_retaining()
2025-04-18 13:46:19.666 else:
2025-04-18 13:46:19.674 >               self._close_cursors()
2025-04-18 13:46:19.685
2025-04-18 13:46:19.697 ../lib/python3.11/site-packages/firebird/driver/core.py:2503:
2025-04-18 13:46:19.707 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:19.720
2025-04-18 13:46:19.732 self = <firebird.driver.core.TransactionManager object at [hex]>
2025-04-18 13:46:19.745
2025-04-18 13:46:19.755 def _close_cursors(self) -> None:
2025-04-18 13:46:19.762 for cursor in self._cursors:
2025-04-18 13:46:19.777 c = cursor()
2025-04-18 13:46:19.791 if c:
2025-04-18 13:46:19.800 >               c.close()
2025-04-18 13:46:19.808
2025-04-18 13:46:19.816 ../lib/python3.11/site-packages/firebird/driver/core.py:2405:
2025-04-18 13:46:19.824 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:19.840
2025-04-18 13:46:19.851 self = <firebird.driver.core.Cursor object at [hex]>
2025-04-18 13:46:19.860
2025-04-18 13:46:19.866 def close(self) -> None:
2025-04-18 13:46:19.877 """Close the cursor and release all associated resources.
2025-04-18 13:46:19.886
2025-04-18 13:46:19.895 The result set (if any) from last executed statement is released, and if executed
2025-04-18 13:46:19.907 `Statement` was not supplied externally, it's released as well.
2025-04-18 13:46:19.921
2025-04-18 13:46:19.931 Note:
2025-04-18 13:46:19.940 The closed cursor could be used to execute further SQL commands.
2025-04-18 13:46:19.948 """
2025-04-18 13:46:19.960 >       self._clear()
2025-04-18 13:46:19.971
2025-04-18 13:46:19.982 ../lib/python3.11/site-packages/firebird/driver/core.py:3894:
2025-04-18 13:46:19.990 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:20.000
2025-04-18 13:46:20.014 self = <firebird.driver.core.Cursor object at [hex]>
2025-04-18 13:46:20.025
2025-04-18 13:46:20.033 def _clear(self) -> None:
2025-04-18 13:46:20.041 if self._result is not None:
2025-04-18 13:46:20.047 self._result.close()
2025-04-18 13:46:20.053 self._result = None
2025-04-18 13:46:20.060 self._name = None
2025-04-18 13:46:20.067 self._last_fetch_status = None
2025-04-18 13:46:20.074 self._executed = False
2025-04-18 13:46:20.084 self.__output_cache = None
2025-04-18 13:46:20.097 while self.__blob_readers:
2025-04-18 13:46:20.106 >           self.__blob_readers.pop().close()
2025-04-18 13:46:20.113
2025-04-18 13:46:20.120 ../lib/python3.11/site-packages/firebird/driver/core.py:3768:
2025-04-18 13:46:20.127 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:20.135
2025-04-18 13:46:20.143 self = BlobReader[size=65536]
2025-04-18 13:46:20.154
2025-04-18 13:46:20.163 def close(self) -> None:
2025-04-18 13:46:20.172 """Close the BlobReader.
2025-04-18 13:46:20.184 """
2025-04-18 13:46:20.200 if self._blob is not None:
2025-04-18 13:46:20.213 >           self._blob.close()
2025-04-18 13:46:20.222
2025-04-18 13:46:20.237 ../lib/python3.11/site-packages/firebird/driver/core.py:2954:
2025-04-18 13:46:20.247 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:20.255
2025-04-18 13:46:20.263 self = <firebird.driver.interfaces.iBlob object at [hex]>
2025-04-18 13:46:20.273
2025-04-18 13:46:20.284 def close(self) -> None:
2025-04-18 13:46:20.295 "Replaces `isc_close_blob()`. On success releases interface."
2025-04-18 13:46:20.306 self.vtable.close(self, self.status)
2025-04-18 13:46:20.319 >       self._check()
2025-04-18 13:46:20.334
2025-04-18 13:46:20.346 ../lib/python3.11/site-packages/firebird/driver/interfaces.py:411:
2025-04-18 13:46:20.356 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2025-04-18 13:46:20.365
2025-04-18 13:46:20.375 self = <firebird.driver.interfaces.iBlob object at [hex]>
2025-04-18 13:46:20.388
2025-04-18 13:46:20.399 def _check(self) -> None:
2025-04-18 13:46:20.411 state = self.status.get_state()
2025-04-18 13:46:20.424 if StateFlag.ERRORS in state:
2025-04-18 13:46:20.438 >           raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:20.451 E           firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:20.461
2025-04-18 13:46:20.472 ../lib/python3.11/site-packages/firebird/driver/interfaces.py:113: DatabaseError
2025-04-18 13:46:20.485 ---------------------------- Captured stdout setup -----------------------------
2025-04-18 13:46:20.498 Creating db: localhost:/var/tmp/qa_2024/test_11838/test.fdb [page_size=None, sql_dialect=None, charset='NONE', user=SYSDBA, password=masterkey]
2025-04-18 13:46:20.508 ----------------------------- Captured stdout call -----------------------------
2025-04-18 13:46:20.518 CLIENT_VERSION : LI-V5.0.3.1635 Firebird 5.0 HQbird
2025-04-18 13:46:20.527 con.info.version='5.0.3.1635', con.info.get_info(DbInfoCode.PROTOCOL_VERSION)=19
2025-04-18 13:46:20.539
2025-04-18 13:46:20.546
2025-04-18 13:46:20.554 Start of loop for b_gen_size=0 in DATA_LEN_LIST
2025-04-18 13:46:20.561 feature is not supported
2025-04-18 13:46:20.566 (335544378,)
2025-04-18 13:46:20.573 Traceback (most recent call last):
2025-04-18 13:46:20.579 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:20.589 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:20.602 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:20.612 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:20.621 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:20.630 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:20.638 self._check()
2025-04-18 13:46:20.646 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:20.655 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:20.663 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:20.671
2025-04-18 13:46:20.679
2025-04-18 13:46:20.691
2025-04-18 13:46:20.704 Start of loop for b_gen_size=1 in DATA_LEN_LIST
2025-04-18 13:46:20.713 feature is not supported
2025-04-18 13:46:20.720 (335544378,)
2025-04-18 13:46:20.727 Traceback (most recent call last):
2025-04-18 13:46:20.734 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:20.741 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:20.746 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:20.760 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:20.771 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:20.782 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:20.794 self._check()
2025-04-18 13:46:20.806 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:20.814 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:20.825 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:20.838
2025-04-18 13:46:20.847
2025-04-18 13:46:20.854
2025-04-18 13:46:20.863 Start of loop for b_gen_size=2 in DATA_LEN_LIST
2025-04-18 13:46:20.876 feature is not supported
2025-04-18 13:46:20.889 (335544378,)
2025-04-18 13:46:20.900 Traceback (most recent call last):
2025-04-18 13:46:20.914 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:20.926 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:20.937 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:20.950 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:20.963 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:20.972 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:20.979 self._check()
2025-04-18 13:46:20.986 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:20.992 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:20.999 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.015
2025-04-18 13:46:21.026
2025-04-18 13:46:21.036
2025-04-18 13:46:21.047 Start of loop for b_gen_size=3 in DATA_LEN_LIST
2025-04-18 13:46:21.057 feature is not supported
2025-04-18 13:46:21.066 (335544378,)
2025-04-18 13:46:21.081 Traceback (most recent call last):
2025-04-18 13:46:21.090 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.098 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.105 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.113 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.122 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.130 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.144 self._check()
2025-04-18 13:46:21.154 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.161 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.171 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.182
2025-04-18 13:46:21.191
2025-04-18 13:46:21.202
2025-04-18 13:46:21.209 Start of loop for b_gen_size=4 in DATA_LEN_LIST
2025-04-18 13:46:21.222 feature is not supported
2025-04-18 13:46:21.229 (335544378,)
2025-04-18 13:46:21.242 Traceback (most recent call last):
2025-04-18 13:46:21.254 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.263 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.271 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.279 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.286 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.295 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.302 self._check()
2025-04-18 13:46:21.309 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.317 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.324 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.331
2025-04-18 13:46:21.338
2025-04-18 13:46:21.345
2025-04-18 13:46:21.352 Start of loop for b_gen_size=32764 in DATA_LEN_LIST
2025-04-18 13:46:21.359 feature is not supported
2025-04-18 13:46:21.366 (335544378,)
2025-04-18 13:46:21.373 Traceback (most recent call last):
2025-04-18 13:46:21.380 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.387 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.396 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.404 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.412 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.420 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.428 self._check()
2025-04-18 13:46:21.437 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.445 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.453 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.461
2025-04-18 13:46:21.469
2025-04-18 13:46:21.479
2025-04-18 13:46:21.486 Start of loop for b_gen_size=32765 in DATA_LEN_LIST
2025-04-18 13:46:21.494 feature is not supported
2025-04-18 13:46:21.502 (335544378,)
2025-04-18 13:46:21.514 Traceback (most recent call last):
2025-04-18 13:46:21.525 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.539 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.547 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.555 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.564 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.579 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.591 self._check()
2025-04-18 13:46:21.601 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.608 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.615 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.623
2025-04-18 13:46:21.630
2025-04-18 13:46:21.637
2025-04-18 13:46:21.645 Start of loop for b_gen_size=32766 in DATA_LEN_LIST
2025-04-18 13:46:21.653 feature is not supported
2025-04-18 13:46:21.665 (335544378,)
2025-04-18 13:46:21.673 Traceback (most recent call last):
2025-04-18 13:46:21.681 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.688 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.696 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.703 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.710 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.717 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.725 self._check()
2025-04-18 13:46:21.733 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.740 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.747 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.753
2025-04-18 13:46:21.760
2025-04-18 13:46:21.767
2025-04-18 13:46:21.775 Start of loop for b_gen_size=32767 in DATA_LEN_LIST
2025-04-18 13:46:21.785 feature is not supported
2025-04-18 13:46:21.795 (335544378,)
2025-04-18 13:46:21.802 Traceback (most recent call last):
2025-04-18 13:46:21.809 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.822 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.835 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:21.844 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:21.852 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:21.861 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:21.867 self._check()
2025-04-18 13:46:21.875 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:21.884 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:21.899 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:21.912
2025-04-18 13:46:21.921
2025-04-18 13:46:21.931
2025-04-18 13:46:21.940 Start of loop for b_gen_size=32768 in DATA_LEN_LIST
2025-04-18 13:46:21.947 feature is not supported
2025-04-18 13:46:21.954 (335544378,)
2025-04-18 13:46:21.961 Traceback (most recent call last):
2025-04-18 13:46:21.975 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 86, in test_1
2025-04-18 13:46:21.986 blob_reader_1.seek(0, os.SEEK_SET)
2025-04-18 13:46:21.995 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3066, in seek
2025-04-18 13:46:22.004 self.__pos = self._blob.seek(whence, offset)
2025-04-18 13:46:22.016 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-04-18 13:46:22.027 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 383, in seek
2025-04-18 13:46:22.039 self._check()
2025-04-18 13:46:22.051 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:22.059 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:22.066 firebird.driver.types.DatabaseError: feature is not supported
2025-04-18 13:46:22.078
2025-04-18 13:46:22.085
2025-04-18 13:46:22.092
2025-04-18 13:46:22.100 Start of loop for b_gen_size=65532 in DATA_LEN_LIST
2025-04-18 13:46:22.108 invalid BLOB handle
2025-04-18 13:46:22.117 (335544328,)
2025-04-18 13:46:22.125 Traceback (most recent call last):
2025-04-18 13:46:22.143 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 98, in test_1
2025-04-18 13:46:22.158 blob_reader_2.close()
2025-04-18 13:46:22.168 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2954, in close
2025-04-18 13:46:22.177 self._blob.close()
2025-04-18 13:46:22.185 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 411, in close
2025-04-18 13:46:22.193 self._check()
2025-04-18 13:46:22.200 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:22.206 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:22.213 firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:22.219
2025-04-18 13:46:22.226
2025-04-18 13:46:22.237
2025-04-18 13:46:22.246 Start of loop for b_gen_size=65533 in DATA_LEN_LIST
2025-04-18 13:46:22.253 invalid BLOB handle
2025-04-18 13:46:22.262 (335544328,)
2025-04-18 13:46:22.274 Traceback (most recent call last):
2025-04-18 13:46:22.288 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 81, in test_1
2025-04-18 13:46:22.305 con.commit()
2025-04-18 13:46:22.316 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 1917, in commit
2025-04-18 13:46:22.326 self.main_transaction.commit(retaining=retaining)
2025-04-18 13:46:22.332 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2479, in commit
2025-04-18 13:46:22.338 self._close_cursors()
2025-04-18 13:46:22.345 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2405, in _close_cursors
2025-04-18 13:46:22.352 c.close()
2025-04-18 13:46:22.359 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3894, in close
2025-04-18 13:46:22.366 self._clear()
2025-04-18 13:46:22.373 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3768, in _clear
2025-04-18 13:46:22.380 self.__blob_readers.pop().close()
2025-04-18 13:46:22.387 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2954, in close
2025-04-18 13:46:22.394 self._blob.close()
2025-04-18 13:46:22.401 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 411, in close
2025-04-18 13:46:22.408 self._check()
2025-04-18 13:46:22.415 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:22.422 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:22.430 firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:22.438
2025-04-18 13:46:22.447
2025-04-18 13:46:22.456
2025-04-18 13:46:22.465 Start of loop for b_gen_size=65534 in DATA_LEN_LIST
2025-04-18 13:46:22.481 invalid BLOB handle
2025-04-18 13:46:22.494 (335544328,)
2025-04-18 13:46:22.508 Traceback (most recent call last):
2025-04-18 13:46:22.521 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 98, in test_1
2025-04-18 13:46:22.535 blob_reader_2.close()
2025-04-18 13:46:22.545 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2954, in close
2025-04-18 13:46:22.556 self._blob.close()
2025-04-18 13:46:22.571 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 411, in close
2025-04-18 13:46:22.583 self._check()
2025-04-18 13:46:22.591 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:22.599 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:22.607 firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:22.618
2025-04-18 13:46:22.630
2025-04-18 13:46:22.642
2025-04-18 13:46:22.656 Start of loop for b_gen_size=65535 in DATA_LEN_LIST
2025-04-18 13:46:22.670 invalid BLOB handle
2025-04-18 13:46:22.686 (335544328,)
2025-04-18 13:46:22.701 Traceback (most recent call last):
2025-04-18 13:46:22.714 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 81, in test_1
2025-04-18 13:46:22.723 con.commit()
2025-04-18 13:46:22.737 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 1917, in commit
2025-04-18 13:46:22.746 self.main_transaction.commit(retaining=retaining)
2025-04-18 13:46:22.754 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2479, in commit
2025-04-18 13:46:22.763 self._close_cursors()
2025-04-18 13:46:22.770 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2405, in _close_cursors
2025-04-18 13:46:22.780 c.close()
2025-04-18 13:46:22.791 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3894, in close
2025-04-18 13:46:22.798 self._clear()
2025-04-18 13:46:22.810 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 3768, in _clear
2025-04-18 13:46:22.821 self.__blob_readers.pop().close()
2025-04-18 13:46:22.829 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2954, in close
2025-04-18 13:46:22.837 self._blob.close()
2025-04-18 13:46:22.845 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 411, in close
2025-04-18 13:46:22.852 self._check()
2025-04-18 13:46:22.859 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:22.866 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:22.880 firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:22.891
2025-04-18 13:46:22.902
2025-04-18 13:46:22.912
2025-04-18 13:46:22.918 Start of loop for b_gen_size=65536 in DATA_LEN_LIST
2025-04-18 13:46:22.925 invalid BLOB handle
2025-04-18 13:46:22.938 (335544328,)
2025-04-18 13:46:22.951 Traceback (most recent call last):
2025-04-18 13:46:22.960 File "/opt/distr/venv/firebird-qa/tests/functional/blob/test_read_blob_in_multiple_cursors.py", line 98, in test_1
2025-04-18 13:46:22.968 blob_reader_2.close()
2025-04-18 13:46:22.982 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/core.py", line 2954, in close
2025-04-18 13:46:22.997 self._blob.close()
2025-04-18 13:46:23.013 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 411, in close
2025-04-18 13:46:23.024 self._check()
2025-04-18 13:46:23.035 File "/opt/distr/venv/lib/python3.11/site-packages/firebird/driver/interfaces.py", line 113, in _check
2025-04-18 13:46:23.050 raise self.__report(DatabaseError, self.status.get_errors())
2025-04-18 13:46:23.060 firebird.driver.types.DatabaseError: invalid BLOB handle
2025-04-18 13:46:23.071
3 #text
act = <firebird.qa.plugin.Action pytest object at [hex]>
tmp_blob_file = PosixPath('/var/tmp/qa_2024/test_11838/tmp_small_blob.dat')
capsys = <_pytest.capture.CaptureFixture pytest object at [hex]>

    @pytest.mark.version('>=5.0.3')
    def test_1(act: Action, tmp_blob_file: Path, capsys):
    
        DATA_LEN_LIST = \
            (     0,    1,    2,    3,    4,
              32764,32765,32766,32767,32768,
              65532,65533,65534,65535,65536
            )
    
>       with act.db.connect() as con:

tests/functional/blob/test_read_blob_in_multiple_cursors.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = Connection[7176], exc_type = None, exc_value = None, traceback = None

    def __exit__(self, exc_type, exc_value, traceback) -> None:
>       self.close()

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

self = Connection[7176]

    def close(self) -> None:
        """Close the connection and release all associated resources.
    
        Closes all event collectors, transaction managers (with rollback) and statements
        associated with this connection before attempt (see Hooks) to close the
        connection itself.
    
        Hooks:
            Event `.ConnectionHook.DETACH_REQUEST`: Executed before connection
            is closed. Hook must have signature::
    
                hook_func(connection: Connection) -> bool
    
            .. note::
    
               If any hook function returns True, connection is NOT closed.
    
            Event `.ConnectionHook.CLOSED`: Executed after connection is closed.
            Hook must have signature::
    
                hook_func(connection: Connection) -> None
    
            Any value returned by hook is ignored.
    
        Important:
            Closed connection SHALL NOT be used anymore.
        """
        if not self.is_closed():
            retain = False
            try:
>               self._close()

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

self = Connection[7176]

    def _close(self) -> None:
        if self.__schema is not None:
            self.__schema._set_internal(False)
            self.__schema.close()
        if self.__monitor is not None:
            self.__monitor._set_internal(False)
            self.__monitor.close()
        self._ic.close()
        for collector in self.__ecollectors:
            collector.close()
>       self.main_transaction._finish(DefaultAction.ROLLBACK)

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

self = <firebird.driver.core.TransactionManager pytest object at [hex]>
default_action = <DefaultAction.ROLLBACK: 2>

    def _finish(self, default_action: DefaultAction=None) -> None:
        try:
            if self._tra is not None:
                if default_action is None:
                    default_action = self.default_action
                if default_action == DefaultAction.COMMIT:
                    self.commit()
                else:
>                   self.rollback()

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

self = <firebird.driver.core.TransactionManager pytest object at [hex]>

    def rollback(self, *, retaining: bool=False, savepoint: str=None) -> None:
        """Rolls back the transaction managed by this instance.
    
        Arguments:
            retaining: When True, the transaction context is retained after rollback.
            savepoint: When specified, the transaction is rolled back to savepoint with given name.
    
        Raises:
            InterfaceError: When both retaining and savepoint parameters are specified.
        """
        assert not self.__closed
        assert self.is_active()
        if retaining and savepoint:
            raise InterfaceError("Can't rollback to savepoint while retaining context")
        if savepoint:
            self.execute_immediate(f'rollback to {savepoint}')
        else:
            if retaining:
                self._tra.rollback_retaining()
            else:
>               self._close_cursors()

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

self = <firebird.driver.core.TransactionManager pytest object at [hex]>

    def _close_cursors(self) -> None:
        for cursor in self._cursors:
            c = cursor()
            if c:
>               c.close()

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

self = <firebird.driver.core.Cursor pytest object at [hex]>

    def close(self) -> None:
        """Close the cursor and release all associated resources.
    
        The result set (if any) from last executed statement is released, and if executed
        `Statement` was not supplied externally, it's released as well.
    
        Note:
            The closed cursor could be used to execute further SQL commands.
        """
>       self._clear()

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

self = <firebird.driver.core.Cursor pytest object at [hex]>

    def _clear(self) -> None:
        if self._result is not None:
            self._result.close()
            self._result = None
        self._name = None
        self._last_fetch_status = None
        self._executed = False
        self.__output_cache = None
        while self.__blob_readers:
>           self.__blob_readers.pop().close()

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

self = BlobReader[size=65536]

    def close(self) -> None:
        """Close the BlobReader.
        """
        if self._blob is not None:
>           self._blob.close()

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

self = <firebird.driver.interfaces.iBlob pytest object at [hex]>

    def close(self) -> None:
        "Replaces `isc_close_blob()`. On success releases interface."
        self.vtable.close(self, self.status)
>       self._check()

../lib/python3.11/site-packages/firebird/driver/interfaces.py:411: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <firebird.driver.interfaces.iBlob 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: invalid BLOB handle

../lib/python3.11/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 5.0.3.1657 2025.06.19 4bd4c P P 984 684 2025.06.27 12:24:35.636 2025.06.27 12:24:36.620 2025.06.27 11:04:27.442 2025.06.27 11:04:28.126
2 5.0.3.1657 2025.06.11 dae6f P P 1102 683 2025.06.17 07:29:46.422 2025.06.17 07:29:47.524 2025.06.17 06:08:23.881 2025.06.17 06:08:24.564
3 5.0.3.1657 2025.06.10 dbc92 P P 1088 879 2025.06.11 12:20:23.898 2025.06.11 12:20:24.986 2025.06.11 10:50:34.881 2025.06.11 10:50:35.760
4 5.0.3.1656 2025.05.20 c4b11 P P 1129 743 2025.06.10 12:14:15.979 2025.06.10 12:14:17.108 2025.06.10 10:48:43.735 2025.06.10 10:48:44.478
5 5.0.3.1652 2025.05.13 f51c6 P P 1208 864 2025.05.20 05:18:53.245 2025.05.20 05:18:54.453 2025.05.20 03:41:22.169 2025.05.20 03:41:23.033
6 5.0.3.1651 2025.04.30 141ef P P 1367 883 2025.05.13 12:16:57.000 2025.05.13 12:16:58.367 2025.05.13 10:38:19.962 2025.05.13 10:38:20.845
7 5.0.3.1650 2025.04.28 4cbff P P 1238 836 2025.05.01 11:50:43.294 2025.05.01 11:50:44.532 2025.05.01 10:13:03.683 2025.05.01 10:13:04.519
8 5.0.3.1649 2025.04.21 5b2d0 P P 1317 824 2025.04.28 05:48:27.664 2025.04.28 05:48:28.981 2025.04.28 04:12:41.578 2025.04.28 04:12:42.402
9 5.0.3.1648 2025.04.18 2f4c5 P P 1305 826 2025.04.20 05:40:10.401 2025.04.20 05:40:11.706 2025.04.20 04:06:58.622 2025.04.20 04:06:59.448
10 5.0.3.1635 2025.03.31 22ec6 F F 2294 2085 2025.04.18 12:03:22.701 2025.04.18 12:03:24.995 2025.04.18 10:26:14.186 2025.04.18 10:26:16.271

Elapsed time, ms. Chart for last 10 runs:

Last commits information (all timestamps in UTC):