forked from MagicStack/asyncpg
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
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 a NoneType object is being accessed for the cancelled attribute, which is expected to exist on a valid object (likely an asyncio Future or similar).
Logs:
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'
How to reproduce it:
pytest --durations=0 -s -v tests/test_copy.pyExpected Behavior
Test completes successfully without AttributeError.
Actual Behavior
The test fails with an AttributeError, as a NoneType object is accessed for the cancelled attribute during the copy-from-query operation.
Environment
- OS: Huawei Cloud EulerOS 2.0
- Python Version: 3.9
- Database: GaussDB Kernel 505.2.1.SPC0800 build 3e43b3bc
Metadata
Metadata
Assignees
Labels
No labels