[Bug 2071563] Re: [SRU - Noble] Backport crash fix
Dave Jones
2071563 at bugs.launchpad.net
Mon Sep 30 12:46:15 UTC 2024
Thanks for this! Patch matches the upstream commit, looks reasonable,
and SRU template is well filled out. I'm going to make a couple of minor
tweaks to it just to ease things along a bit. Firstly I know the SRU
team don't like to read "None" in the regression potential. Even in
cases like this where the application doesn't even start (and you might
be tempted to ask, "how much further do you want it to regress ...
catching fire?!"), if there's anything that depends on the application
(e.g. that load modules from it) then it can potentially be broken by
changes. Secondly, I'm going to include explicit commands in the test
plan (so that people unfamiliar with the application can still perform
verification if need be).
After that I'll sponsor, because other than those nitpicks, this looks
good.
** Description changed:
[ Impact ]
CHIRP contains a regression that causes it to crash on launch when no existing config file is found (e.g. clear installation).
The regression is an oversight in the refactoring of the recent file
handling. It results in the CHIRP application being completely unusable,
crashing every time immediately after startup and there is no easy
workaround available.
[ Test Plan ]
- This fix has already been tested and is implemented in newer CHIRP release that is already present in Ubuntu Oracular. However, it was not fixed before FeatureFreeze, and was not available in Debian until post-Noble release.
+ On an installation of noble:
+
+ * sudo apt install chirp
+ * chirpw
+ * Observe failure with the back-trace present in the original description below
+ * Enable proposed (https://wiki.ubuntu.com/Testing/EnableProposed)
+ * sudo apt install -t noble-proposed chirp
+ * chirpw
+ * Observe application starts successfully
The fix has already been tested manually by others, but as soon as a
version with the patch present is available, a user should install the
updated chirp package and the program should launch without any crashes.
[ Regression Potential ]
- None. The fix simply adds one line of code with an if conditional to remove the "state" section only if it exists, thus fixing the "No section: 'state'" error.
+ Very low. The application already fails to start "out of the box" and hence can't regress much further, and there's only a single reverse-recommends (from hamradio-rigcontrol) on the package.
+
+ The fix is directly from upstream, already present in Ubuntu Oracular,
+ and minimal, adding one line of code with an if conditional to remove
+ the "state" section only if it exists, thus fixing the "No section:
+ 'state'" error.
[ Where problems could occur ]
The only change is in the one line of code that handles "cleaning of higher-order entries if they exist" and was previously attempting to remove them even if they did not exist, resulting in a fatal error.
[ Other Info ]
It has been fixed as a part of the new CHIRP version from the Debian package 20240413-1 which has been synced to Oracular.
Here is the upstream commit that needs to be added as a patch to the
Noble SRU:
https://github.com/kk7ds/chirp/commit/0885555196b94ffad44acc7ca9b37a1ba67b815e
[ Original Bug Description ]
Chirp (1:20240224-1) on Ubuntu 24.04 LTS crashes on startup with:
Traceback (most recent call last):
File "/usr/bin/chirpw", line 33, in <module>
sys.exit(load_entry_point('chirp==20240224', 'console_scripts', 'chirpw')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/__init__.py", line 178, in chirpmain
mainwindow = main.ChirpMain(None, title='CHIRP')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 415, in __init__
self.SetMenuBar(self.make_menubar())
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 656, in make_menubar
self.adj_menu_open_recent(None)
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 1025, in adj_menu_open_recent
CONF.remove_option('recent%i' % i, 'state')
File "/usr/lib/python3/dist-packages/chirp/wxui/config.py", line 160, in remove_option
self._config.remove_option(section, key)
File "/usr/lib/python3/dist-packages/chirp/wxui/config.py", line 64, in remove_option
self.__config.remove_option(section, key)
File "/usr/lib/python3.12/configparser.py", line 924, in remove_option
raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'state'
This is fixed in the latest version from Oracular (1:20240413-1). In
Noble, it is possible to fix it by applying the following simple patch:
https://github.com/kk7ds/chirp/commit/0885555196b94ffad44acc7ca9b37a1ba67b815e
(Line 1025 instead of 1041 in chirp 20240224-1.)
--
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2071563
Title:
[SRU - Noble] Backport crash fix
Status in chirp package in Ubuntu:
Fix Released
Status in chirp source package in Noble:
Confirmed
Bug description:
[ Impact ]
CHIRP contains a regression that causes it to crash on launch when no existing config file is found (e.g. clear installation).
The regression is an oversight in the refactoring of the recent file
handling. It results in the CHIRP application being completely
unusable, crashing every time immediately after startup and there is
no easy workaround available.
[ Test Plan ]
On an installation of noble:
* sudo apt install chirp
* chirpw
* Observe failure with the back-trace present in the original description below
* Enable proposed (https://wiki.ubuntu.com/Testing/EnableProposed)
* sudo apt install -t noble-proposed chirp
* chirpw
* Observe application starts successfully
The fix has already been tested manually by others, but as soon as a
version with the patch present is available, a user should install the
updated chirp package and the program should launch without any
crashes.
[ Regression Potential ]
Very low. The application already fails to start "out of the box" and hence can't regress much further, and there's only a single reverse-recommends (from hamradio-rigcontrol) on the package.
The fix is directly from upstream, already present in Ubuntu Oracular,
and minimal, adding one line of code with an if conditional to remove
the "state" section only if it exists, thus fixing the "No section:
'state'" error.
[ Where problems could occur ]
The only change is in the one line of code that handles "cleaning of higher-order entries if they exist" and was previously attempting to remove them even if they did not exist, resulting in a fatal error.
[ Other Info ]
It has been fixed as a part of the new CHIRP version from the Debian package 20240413-1 which has been synced to Oracular.
Here is the upstream commit that needs to be added as a patch to the
Noble SRU:
https://github.com/kk7ds/chirp/commit/0885555196b94ffad44acc7ca9b37a1ba67b815e
[ Original Bug Description ]
Chirp (1:20240224-1) on Ubuntu 24.04 LTS crashes on startup with:
Traceback (most recent call last):
File "/usr/bin/chirpw", line 33, in <module>
sys.exit(load_entry_point('chirp==20240224', 'console_scripts', 'chirpw')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/__init__.py", line 178, in chirpmain
mainwindow = main.ChirpMain(None, title='CHIRP')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 415, in __init__
self.SetMenuBar(self.make_menubar())
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 656, in make_menubar
self.adj_menu_open_recent(None)
File "/usr/lib/python3/dist-packages/chirp/wxui/main.py", line 1025, in adj_menu_open_recent
CONF.remove_option('recent%i' % i, 'state')
File "/usr/lib/python3/dist-packages/chirp/wxui/config.py", line 160, in remove_option
self._config.remove_option(section, key)
File "/usr/lib/python3/dist-packages/chirp/wxui/config.py", line 64, in remove_option
self.__config.remove_option(section, key)
File "/usr/lib/python3.12/configparser.py", line 924, in remove_option
raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'state'
This is fixed in the latest version from Oracular (1:20240413-1). In
Noble, it is possible to fix it by applying the following simple
patch:
https://github.com/kk7ds/chirp/commit/0885555196b94ffad44acc7ca9b37a1ba67b815e
(Line 1025 instead of 1041 in chirp 20240224-1.)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/chirp/+bug/2071563/+subscriptions
More information about the Ubuntu-sponsors
mailing list