[Bug 1979637] Re: apport_python_hook: FileNotFoundError if cwd was deleted
Benjamin Drung
1979637 at bugs.launchpad.net
Tue Aug 23 20:46:27 UTC 2022
** Description changed:
+ Impact
+ ------
+
+ The Apport Python hook should be transparent to the user (which is
+ normally the case). Bugs and crashes inside the hook lead to an
+ exception inside the exception which clutters the output and confuse the
+ user. User/Developer need to understand this Python hook and look into
+ the encapsulated stack trace only.
+
Test Case
---------
Run following shell script:
```sh
echo "raise ValueError()" > /tmp/failure.py
mkdir /tmp/foo
cd /tmp/foo/
rmdir /tmp/foo/
python3 ../failure.py
```
It should only print following stacktrace:
```
Traceback (most recent call last):
- File "../failure.py", line 1, in <module>
- raise ValueError()
+ File "../failure.py", line 1, in <module>
+ raise ValueError()
ValueError
```
Regression Potential
--------------------
There might be a regression that causes capturing Python exception fail.
Then reporting them as bugs to Launchpad or the error tracker would not
be possible.
Original Description
--------------------
The script should only show a ValueError, but apport_python_hook.py
crashes:
```
Traceback (most recent call last):
File "../failure.py", line 1, in <module>
raise ValueError()
ValueError
Error in sys.excepthook:
Traceback (most recent call last):
File "<frozen importlib._bootstrap_external>", line 1372, in _path_importer_cache
KeyError: '..'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 55, in apport_excepthook
import apt_pkg
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1002, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 945, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1439, in find_spec
File "<frozen importlib._bootstrap_external>", line 1408, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1374, in _path_importer_cache
File "<frozen importlib._bootstrap_external>", line 1350, in _path_hooks
File "<frozen importlib._bootstrap_external>", line 1632, in path_hook_for_FileFinder
File "<frozen importlib._bootstrap_external>", line 1505, in __init__
FileNotFoundError: [Errno 2] No such file or directory
Original exception was:
Traceback (most recent call last):
File "../failure.py", line 1, in <module>
raise ValueError()
ValueError
```
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/1979637
Title:
apport_python_hook: FileNotFoundError if cwd was deleted
Status in Apport:
Fix Released
Status in apport package in Ubuntu:
Fix Released
Status in apport source package in Jammy:
Confirmed
Bug description:
Impact
------
The Apport Python hook should be transparent to the user (which is
normally the case). Bugs and crashes inside the hook lead to an
exception inside the exception which clutters the output and confuse
the user. User/Developer need to understand this Python hook and look
into the encapsulated stack trace only.
Test Case
---------
Run following shell script:
```sh
echo "raise ValueError()" > /tmp/failure.py
mkdir /tmp/foo
cd /tmp/foo/
rmdir /tmp/foo/
python3 ../failure.py
```
It should only print following stacktrace:
```
Traceback (most recent call last):
File "../failure.py", line 1, in <module>
raise ValueError()
ValueError
```
Regression Potential
--------------------
There might be a regression that causes capturing Python exception
fail. Then reporting them as bugs to Launchpad or the error tracker
would not be possible.
Original Description
--------------------
The script should only show a ValueError, but apport_python_hook.py
crashes:
```
Traceback (most recent call last):
File "../failure.py", line 1, in <module>
raise ValueError()
ValueError
Error in sys.excepthook:
Traceback (most recent call last):
File "<frozen importlib._bootstrap_external>", line 1372, in _path_importer_cache
KeyError: '..'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 55, in apport_excepthook
import apt_pkg
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1002, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 945, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1439, in find_spec
File "<frozen importlib._bootstrap_external>", line 1408, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1374, in _path_importer_cache
File "<frozen importlib._bootstrap_external>", line 1350, in _path_hooks
File "<frozen importlib._bootstrap_external>", line 1632, in path_hook_for_FileFinder
File "<frozen importlib._bootstrap_external>", line 1505, in __init__
FileNotFoundError: [Errno 2] No such file or directory
Original exception was:
Traceback (most recent call last):
File "../failure.py", line 1, in <module>
raise ValueError()
ValueError
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/apport/+bug/1979637/+subscriptions
More information about the foundations-bugs
mailing list