-
Notifications
You must be signed in to change notification settings - Fork 91
Description
- What versions are you using?
platform.platform: Windows-10-10.0.19044-SP0
sys.maxsize > 2**32: True
platform.python_version: 3.10.4
oracledb.__version__: 1.0.0
I'm using oracle 21.3.0.0, with client version (21, 3, 0, 0, 0)
-
Is it an error or a hang or a crash?
A crash of the python interpreter -
What error(s) or behavior you are seeing?
Windows fatal exception: access violation
Current thread 0x00001558 (most recent call first):
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\oracledb\connection.py", line 302 in close
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\engine\default.py", line 599 in do_close
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\pool\base.py", line 316 in _close_connection
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\pool\base.py", line 812 in __close
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\pool\base.py", line 745 in invalidate
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\pool\base.py", line 1343 in invalidate
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\engine\base.py", line 633 in invalidate
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\test\engine\test_reconnect.py", line 1112 in test_rollback_on_invalid_twophase
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\testing\exclusions.py", line 121 in _do
File "C:\Users\my_user\Dev\GitHub\sqlalchemy\lib\sqlalchemy\testing\exclusions.py", line 93 in decorate
File "<string>", line 2 in test_rollback_on_invalid_twophase
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\python.py", line 192 in pytest_pyfunc_call
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\python.py", line 1761 in runtest
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 166 in pytest_runtest_call
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 259 in <lambda>
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 338 in from_call
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 258 in call_runtest_hook
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 219 in call_and_report
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 130 in runtestprotocol
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\runner.py", line 111 in pytest_runtest_protocol
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\main.py", line 347 in pytest_runtestloop
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\main.py", line 322 in _main
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\main.py", line 268 in wrap_session
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\main.py", line 315 in pytest_cmdline_main
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\config\__init__.py", line 164 in main
File "C:\Users\my_user\miniconda3\envs\sa\lib\site-packages\_pytest\config\__init__.py", line 187 in console_main
File "C:\Users\my_user\miniconda3\envs\sa\Scripts\pytest.exe\__main__.py", line 7 in <module>
File "C:\Users\my_user\miniconda3\envs\sa\lib\runpy.py", line 86 in _run_code
File "C:\Users\my_user\miniconda3\envs\sa\lib\runpy.py", line 196 in _run_module_as_main
Windows fatal exception: code 0xebadebad
- Does your application call init_oracle_client()?
yes
- Include a runnable Python script that shows the problem.
Sadly I cannot reproduce it. I've tried multiple times re-running the same command but it does not reproduce.
The crash happened while implementing support for the oracledb
driver in sqlalchemy, running pytest --dburi oracle+oracledb://scott:tiger@127.0.0.1:1521/?service_name=XEPDB1 .\test\engine\
and momentarily enabling the thick mode.
The interpreter crashed while executing this test:
test/engine/test_reconnect.py::RealReconnectTest_oracle+oracledb_21_3_0_0_0::test_rollback_on_invalid_twophase
https://github.com/sqlalchemy/sqlalchemy/blob/ad86d32f7fbd1c6deda8ff3bebe0595c0f2986cc/test/engine/test_reconnect.py#L1108-L1112
I know it's not much to work on, but it's all I have.
I've reported since from the stack trace it seems to be a double free or similar since it happened in the close
method, so maybe something useful can be gathered from it event with this few information.
Let me know if I can be of further help