Traceback (most recent call last):
File "/usr/lib64/python3.9/unittest/case.py", line 59, in testPartExecutor
yield
File "/usr/lib64/python3.9/unittest/case.py", line 592, in run
self._callTestMethod(testMethod)
File "/usr/lib64/python3.9/unittest/case.py", line 550, in _callTestMethod
method()
File "/home/gaussdbuser/gaussdb-python-async/.venv/lib64/python3.9/site-packages/async_gaussdb/_testbase/__init__.py", line 92, in wrapper
self.loop.run_until_complete(coro)
File "/usr/lib64/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/gaussdbuser/gaussdb-python-async/tests/test_copy.py", line 244, in test_copy_from_query_to_sink
await self.con.copy_from_query(...)
File "/home/gaussdbuser/gaussdb-python-async/.venv/lib64/python3.9/site-packages/async_gaussdb/connection.py", line 932, in copy_from_query
return await self._copy_out(copy_stmt, output, timeout)
File "/home/gaussdbuser/gaussdb-python-async/.venv/lib64/python3.9/site-packages/async_gaussdb/connection.py", line 1197, in _copy_out
return await self._protocol.copy_out(copy_stmt, writer, timeout)
File "async_gaussdb/protocol/protocol.pyx", line 400, in copy_out
File "async_gaussdb/protocol/protocol.pyx", line 401, in async_gaussdb.protocol.protocol.BaseProtocol.copy_out
done, status_msg = await waiter
File "async_gaussdb/protocol/coreproto.pyx", line 110, in async_gaussdb.protocol.protocol.CoreProtocol._read_server_messages
self._process_copy_out_data(mtype)
File "async_gaussdb/protocol/coreproto.pyx", line 387, in async_gaussdb.protocol.protocol.CoreProtocol._process_copy_out_data
self._parse_copy_data_msgs()
File "async_gaussdb/protocol/coreproto.pyx", line 456, in async_gaussdb.protocol.protocol.CoreProtocol._parse_copy_data_msgs
self._on_result()
File "async_gaussdb/protocol/protocol.pyx", line 935, in async_gaussdb.protocol.protocol.BaseProtocol._on_result
self._dispatch_result()
File "async_gaussdb/protocol/protocol.pyx", line 855, in async_gaussdb.protocol.protocol.BaseProtocol._dispatch_result
if waiter.cancelled():
AttributeError: 'NoneType' object has no attribute 'cancelled'
Description:
When executing the test case
tests/test_copy.py::TestCopyFrom::test_copy_from_query_to_sink, an AttributeError is thrown. The error occurs because aNoneTypeobject is being accessed for thecancelledattribute, which is expected to exist on a valid object (likely an asyncio Future or similar).Logs:
How to reproduce it:
Expected Behavior
Test completes successfully without AttributeError.
Actual Behavior
The test fails with an AttributeError, as a
NoneTypeobject is accessed for thecancelledattribute during the copy-from-query operation.Environment