[Bug 1848211] Re: [SRU] valgrind fails to use debug symbols from glib/gtk
Balint Reczey
balint.reczey at canonical.com
Tue Dec 3 16:10:25 UTC 2019
Verified with 1:3.15.0-1ubuntu3.1 on Eoan:
root at ee-valgrind:~# echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse
> deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
> deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | \
> sudo tee -a /etc/apt/sources.list.d/ddebs.list
deb http://ddebs.ubuntu.com eoan main restricted universe multiverse
deb http://ddebs.ubuntu.com eoan-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com eoan-proposed main restricted universe multiverse
root at ee-valgrind:~# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F2EDC64DC5AEE1F6B9C621F0C8CAB6595FDFF622
Executing: /tmp/apt-key-gpghome.p3fDDHpLDX/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys F2EDC64DC5AEE1F6B9C621F0C8CAB6595FDFF622
gpg: key C8CAB6595FDFF622: 4 signatures not checked due to missing keys
gpg: key C8CAB6595FDFF622: public key "Ubuntu Debug Symbol Archive Automatic Signing Key (2016) <ubuntu-archive at lists.ubuntu.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
root at ee-valgrind:~# apt update -qq
28 packages can be upgraded. Run 'apt list --upgradable' to see them.
root at ee-valgrind:~# apt install libglib2.0-0-dbgsym=2.62.1-1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libfreetype6
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
libglib2.0-0-dbgsym
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 3738 kB of archives.
After this operation, 4418 kB of additional disk space will be used.
Get:1 http://ddebs.ubuntu.com eoan/main amd64 libglib2.0-0-dbgsym amd64 2.62.1-1 [3738 kB]
Fetched 3738 kB in 0s (60.2 MB/s)
Selecting previously unselected package libglib2.0-0-dbgsym:amd64.
(Reading database ... 30827 files and directories currently installed.)
Preparing to unpack .../libglib2.0-0-dbgsym_2.62.1-1_amd64.ddeb ...
Unpacking libglib2.0-0-dbgsym:amd64 (2.62.1-1) ...
Setting up libglib2.0-0-dbgsym:amd64 (2.62.1-1) ...
root at ee-valgrind:~# valgrind gio ~
==2560== Memcheck, a memory error detector
==2560== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2560== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==2560== Command: gio /root
==2560==
--2560-- WARNING: Serious error when reading debug info
--2560-- When reading debug info from /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0.6200.1:
--2560-- debuginfo section duplicates a section in the main ELF file
--2560-- WARNING: Serious error when reading debug info
--2560-- When reading debug info from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6200.1:
--2560-- debuginfo section duplicates a section in the main ELF file
--2560-- WARNING: Serious error when reading debug info
--2560-- When reading debug info from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.6200.1:
--2560-- debuginfo section duplicates a section in the main ELF file
Usage:
gio COMMAND [ARGS…]
Commands:
help Print help
version Print version
cat Concatenate files to standard output
copy Copy one or more files
info Show information about locations
list List the contents of locations
mime Get or set the handler for a mimetype
mkdir Create directories
monitor Monitor files and directories for changes
mount Mount or unmount the locations
move Move one or more files
open Open files with the default application
rename Rename a file
remove Delete one or more files
save Read from standard input and save
set Set a file attribute
trash Move files or directories to the trash
tree Lists the contents of locations in a tree
Use “gio help COMMAND” to get detailed help.
==2560==
==2560== HEAP SUMMARY:
==2560== in use at exit: 36,900 bytes in 236 blocks
==2560== total heap usage: 634 allocs, 398 frees, 75,138 bytes allocated
==2560==
==2560== LEAK SUMMARY:
==2560== definitely lost: 0 bytes in 0 blocks
==2560== indirectly lost: 0 bytes in 0 blocks
==2560== possibly lost: 1,352 bytes in 18 blocks
==2560== still reachable: 35,548 bytes in 218 blocks
==2560== of which reachable via heuristic:
==2560== newarray : 1,536 bytes in 16 blocks
==2560== suppressed: 0 bytes in 0 blocks
==2560== Rerun with --leak-check=full to see details of leaked memory
==2560==
==2560== For lists of detected and suppressed errors, rerun with: -s
==2560== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
root at ee-valgrind:~# sed -i s/backports/proposed/ /etc/apt/sources.list
root at ee-valgrind:~# apt update -qq
40 packages can be upgraded. Run 'apt list --upgradable' to see them.
root at ee-valgrind:~# apt install -qq valgrind
The following package was automatically installed and is no longer required:
libfreetype6
Use 'apt autoremove' to remove it.
Suggested packages:
valgrind-dbg valgrind-mpi kcachegrind alleyoop valkyrie
The following packages will be upgraded:
valgrind
1 upgraded, 0 newly installed, 0 to remove and 39 not upgraded.
Need to get 20.3 MB of archives.
After this operation, 361 kB disk space will be freed.
(Reading database ... 30847 files and directories currently installed.)
Preparing to unpack .../valgrind_1%3a3.15.0-1ubuntu3.1_amd64.deb ...
Unpacking valgrind (1:3.15.0-1ubuntu3.1) over (1:3.15.0-1ubuntu3) ...
Setting up valgrind (1:3.15.0-1ubuntu3.1) ...
Processing triggers for man-db (2.8.7-3) ...
root at ee-valgrind:~# valgrind gio ~
==3271== Memcheck, a memory error detector
==3271== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==3271== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==3271== Command: gio /root
==3271==
Usage:
gio COMMAND [ARGS…]
Commands:
help Print help
version Print version
cat Concatenate files to standard output
copy Copy one or more files
info Show information about locations
list List the contents of locations
mime Get or set the handler for a mimetype
mkdir Create directories
monitor Monitor files and directories for changes
mount Mount or unmount the locations
move Move one or more files
open Open files with the default application
rename Rename a file
remove Delete one or more files
save Read from standard input and save
set Set a file attribute
trash Move files or directories to the trash
tree Lists the contents of locations in a tree
Use “gio help COMMAND” to get detailed help.
==3271==
==3271== HEAP SUMMARY:
==3271== in use at exit: 36,900 bytes in 236 blocks
==3271== total heap usage: 634 allocs, 398 frees, 75,138 bytes allocated
==3271==
==3271== LEAK SUMMARY:
==3271== definitely lost: 0 bytes in 0 blocks
==3271== indirectly lost: 0 bytes in 0 blocks
==3271== possibly lost: 1,352 bytes in 18 blocks
==3271== still reachable: 35,548 bytes in 218 blocks
==3271== of which reachable via heuristic:
==3271== newarray : 1,536 bytes in 16 blocks
==3271== suppressed: 0 bytes in 0 blocks
==3271== Rerun with --leak-check=full to see details of leaked memory
==3271==
==3271== For lists of detected and suppressed errors, rerun with: -s
==3271== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
** Description changed:
[Impact]
- * With dwz the .gnu_debuglink section may appear duplicated in the
+ * With dwz the .gnu_debuglink section may appear duplicated in the
debug file referenced originally in the .gnu_debuglink section. In that
case Valgrind fails to load the debug symbols.
[Test Case]
- * In Ubuntu releases earlier than 19.10 use gio from a package rebuilt with dwz.
- * Observe no relevant error when running gio with valgrind:
- $ valgrind /usr/bin/gio ~
+ * In Ubuntu releases earlier than 19.10 use gio from a package rebuilt with dwz.
+ * Install debug symbols for gio following the guide at https://wiki.ubuntu.com/Debug%20Symbol%20Packages
+ * Observe no relevant error when running gio with valgrind:
+ $ valgrind /usr/bin/gio ~
[Regression Potential]
- * The fix is very simple, just ignoring the second .gnu_debuglink
+ * The fix is very simple, just ignoring the second .gnu_debuglink
found. There are no likely regressions.
[Original Bug Text]
The debug symbols from libglib2.0-0-dbgsym and libgtk-3-0-dbgsym don't
get properly picked up by valgrind in eoan for some reason. The symbols
correctly work under gdb.
There is an warning printed from valgrind
'debuginfo section duplicates a section in the main ELF file'
Laney tried to rebuild without dh_dwz and it makes the warning go away and the symbol work.
Downgrading valgrind to the disco version doesn't fix the issue.
** Tags removed: verification-needed verification-needed-eoan
** Tags added: verification-done verification-done-eoan
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to valgrind in Ubuntu.
https://bugs.launchpad.net/bugs/1848211
Title:
[SRU] valgrind fails to use debug symbols from glib/gtk
Status in Valgrind:
New
Status in valgrind package in Ubuntu:
Fix Released
Status in valgrind source package in Bionic:
Triaged
Status in valgrind source package in Disco:
Triaged
Status in valgrind source package in Eoan:
Fix Committed
Status in valgrind source package in Focal:
Fix Released
Status in valgrind package in Debian:
Confirmed
Bug description:
[Impact]
* With dwz the .gnu_debuglink section may appear duplicated in the
debug file referenced originally in the .gnu_debuglink section. In
that case Valgrind fails to load the debug symbols.
[Test Case]
* In Ubuntu releases earlier than 19.10 use gio from a package rebuilt with dwz.
* Install debug symbols for gio following the guide at https://wiki.ubuntu.com/Debug%20Symbol%20Packages
* Observe no relevant error when running gio with valgrind:
$ valgrind /usr/bin/gio ~
[Regression Potential]
* The fix is very simple, just ignoring the second .gnu_debuglink
found. There are no likely regressions.
[Original Bug Text]
The debug symbols from libglib2.0-0-dbgsym and libgtk-3-0-dbgsym don't
get properly picked up by valgrind in eoan for some reason. The
symbols correctly work under gdb.
There is an warning printed from valgrind
'debuginfo section duplicates a section in the main ELF file'
Laney tried to rebuild without dh_dwz and it makes the warning go away and the symbol work.
Downgrading valgrind to the disco version doesn't fix the issue.
To manage notifications about this bug go to:
https://bugs.launchpad.net/valgrind/+bug/1848211/+subscriptions
More information about the foundations-bugs
mailing list