Async support not compatible with alternative event loop implementations like uvloop · Issue #276 · oracle/python-oracledb (original) (raw)

('TEST',) 
Traceback (most recent call last):
  File "src/oracledb/impl/thin/connection.pyx", line 502, in oracledb.thin_impl.AsyncThinConnImpl._connect_with_address
  File "src/oracledb/impl/thin/protocol.pyx", line 567, in _connect_phase_one
  File "src/oracledb/impl/thin/protocol.pyx", line 730, in _connect_tcp
  File "src/oracledb/impl/thin/transport.pyx", line 301, in oracledb.thin_impl.Transport.set_from_socket
AttributeError: 'uvloop.loop.TCPTransport' object has no attribute 'setsockopt'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 189, in _run_module_as_main
  File "<frozen runpy>", line 148, in _get_module_details
  File "<frozen runpy>", line 112, in _get_module_details
  File "/app/example_service/__init__.py", line 18, in <module>
    uvloop.run(main())
  File "/app/.venv/lib/python3.12/site-packages/uvloop/__init__.py", line 109, in run
    return __asyncio.run(
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/app/.venv/lib/python3.12/site-packages/uvloop/__init__.py", line 61, in wrapper
    return await main
           ^^^^^^^^^^
  File "/app/example_service/__init__.py", line 8, in main
    async with oracledb.connect_async(
  File "/app/.venv/lib/python3.12/site-packages/oracledb/connection.py", line 1398, in __aenter__
    await self._connect_coroutine
  File "/app/.venv/lib/python3.12/site-packages/oracledb/connection.py", line 1443, in _connect
    await impl.connect(params_impl)
  File "src/oracledb/impl/thin/connection.pyx", line 609, in connect
  File "src/oracledb/impl/thin/connection.pyx", line 605, in oracledb.thin_impl.AsyncThinConnImpl.connect
  File "src/oracledb/impl/thin/connection.pyx", line 563, in _connect_with_params
  File "src/oracledb/impl/thin/connection.pyx", line 543, in _connect_with_description
  File "src/oracledb/impl/thin/connection.pyx", line 512, in _connect_with_address
  File "/app/.venv/lib/python3.12/site-packages/oracledb/errors.py", line 162, in _raise_err
    raise exc_type(_Error(message)) from cause
oracledb.exceptions.OperationalError: DPY-6005: cannot connect to database (CONNECTION_ID=+o4qjIZQoVmu5EZP54G9xw==).
'uvloop.loop.TCPTransport' object has no attribute 'setsockopt'