Riza Suminto created IMPALA-14426:
-------------------------------------
Summary: TestImpalaShell.test_cancellation failed with Python3.9
Key: IMPALA-14426
URL: https://issues.apache.org/jira/browse/IMPALA-14426
Project: IMPALA
Issue Type: Bug
Components: Clients
Affects Versions: Impala 5.0.0
Reporter: Riza Suminto
Assignee: Riza Suminto
Fix For: Impala 5.0.0
TestImpalaShell.test_cancellation failed in downstream build with Python3.9.
{noformat}
Stacktrace
/data/jenkins/workspace/impala-cdw-master-core/repos/Impala/tests/shell/test_shell_commandline.py:563:
in test_cancellation
assert "Cancelling Query" in result.stderr, result.stderr
E AssertionError: 2025-09-10 10:54:04 [Exception] Unknown Exception reentrant
call inside <_io.BufferedWriter name='<stderr>'>
E Traceback (most recent call last):
E File
"/data/jenkins/workspace/impala-cdw-master-core/repos/Impala/shell/build/impala-shell-5.0.0-SNAPSHOT/install_py3.9/impala_shell/impala_shell.py",
line 739, in _signal_handler
E print(ImpalaShell.CANCELLATION_MESSAGE, file=sys.stderr)
E RuntimeError: reentrant call inside <_io.BufferedWriter name='<stderr>'>
E
E During handling of the above exception, another exception occurred:
E
E Traceback (most recent call last):
E File
"/data/jenkins/workspace/impala-cdw-master-core/repos/Impala/shell/build/impala-shell-5.0.0-SNAPSHOT/install_py3.9/impala_shell/impala_shell.py",
line 1482, in _execute_stmt
E self._print_if_verbose(
E File
"/data/jenkins/workspace/impala-cdw-master-core/repos/Impala/shell/build/impala-shell-5.0.0-SNAPSHOT/install_py3.9/impala_shell/impala_shell.py",
line 1218, in _print_if_verbose
E print(message, file=file_descriptor)
E File
"/data/jenkins/workspace/impala-cdw-master-core/repos/Impala/shell/build/impala-shell-5.0.0-SNAPSHOT/install_py3.9/impala_shell/impala_shell.py",
line 756, in _signal_handler
E print(err_details % (cancel_try + 1, ImpalaShell.CANCELLATION_TRIES,
err_msg),
E RuntimeError: reentrant call inside <_io.BufferedWriter name='<stderr>'>
E Could not execute command: select sleep(10) from
functional_parquet.alltypesagg
E
E assert 'Cancelling Query' in "2025-09-10 10:54:04 [Exception] Unknown
Exception reentrant call inside <_io.BufferedWriter
name='<stderr>'>\nTraceba..._io.BufferedWriter name='<stderr>'>\nCould not
execute command: select sleep(10) from functional_parquet.alltypesagg\n"
E + where "2025-09-10 10:54:04 [Exception] Unknown Exception reentrant call
inside <_io.BufferedWriter name='<stderr>'>\nTraceba..._io.BufferedWriter
name='<stderr>'>\nCould not execute command: select sleep(10) from
functional_parquet.alltypesagg\n" = <tests.shell.util.ImpalaShellResult object
at 0x7fb1942fe5d0>.stderr{noformat}
Changing the stderr printing from print() to os.write() seems to work because
os.write() directly calls the native API (a thin wrapper around the system
call), bypassing the Python IO stack (see the complete discussion
[here|https://stackoverflow.com/questions/75367828/runtimeerror-reentrant-call-inside-io-bufferedwriter-name-stdout]).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]