ZFS kernel modules lack debug symbols
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Mauricio Faria de Oliveira |
Bug Description
The ZFS kernel modules aren't built with debug symbols,
which introduces problems/issues for debugging/support.
Patches are required in:
1) linux kernel packaging, to add infrastructure to
enable/
(this is sufficient with zfs-linux now in Eoan.)
2) zfs-linux and spl-linux, for the stable releases,
which need a few patches to enable debug symbols
(add option './configure --enable-debuginfo' and
'(ZFS|
Initially submitting the kernel patchset for Unstable,
for review/feedback. It backports nicely into B/D/E,
should it be accepted; for X (doesn't use DKMS builds)
a simpler patch for the moment (until it does) works.
The zfs/spl-linux patches are ready, to be submitted
once the approach used by the kernel package settles.
CVE References
Changed in linux (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
description: | updated |
description: | updated |
description: | updated |
tags: | added: sts |
tags: | added: linux |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
Test Build 1) Old behavior
goal: show limitations/issues.
- original packaging
- zfs not built with debug symbols
- zfs modules not present in debug package
- extra modules lack .gnu_debuglink section
Original packaging:
There are no ZFS modules in the debug package:
$ dpkg-deb -x linux-image- unsigned- 5.3.0-8- generic- dbgsym_ 5.3.0-8. 9_amd64. ddeb ddeb-orig
$ ls ddeb-orig/ usr/lib/ debug/lib/ modules/ 5.3.0-8- generic/ kernel/ zfs
...: No such file or directory
Accordingly, the ZFS modules are the only modules without '.gnu_debuglink' section in the 'linux-modules' package:
$ dpkg-deb -x linux-modules- 5.3.0-8- generic_ 5.3.0-8. 9_amd64. deb deb-modules
$ find deb-modules/ -name '*.ko' | while read ko; do objdump -h -j .gnu_debuglink $ko >/dev/null 2>&1 || echo "Module without debug link '$ko'"; done lib/modules/ 5.3.0-8- generic/ kernel/ zfs/icp. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/spl. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/zavl. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/zcommon. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/zfs. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/zlua. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/znvpair. ko' lib/modules/ 5.3.0-8- generic/ kernel/ zfs/zunicode. ko'
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
Module without debug link 'deb-modules/
By the way, this is also the case for *all* modules in the 'linux- modules- extra' package:
(only modules in the 'linux-modules' package have '.gnu_debuglink' sections).
$ dpkg-deb -x linux-modules- extra-5. 3.0-8-generic_ 5.3.0-8. 9_amd64. deb deb-modules-extras
$ find deb-modules-extras/ -name '*.ko' | wc -l
4508
$ find deb-modules-extras/ -name '*.ko' | while read ko; do objdump -h -j .gnu_debuglink $ko >/dev/null 2>&1 || echo "Module without debug link '$ko'"; done | wc -l
4508