Bug 464185 - readlink("/proc/self/exe") failed when debug systemd(pid 1)
Summary: readlink("/proc/self/exe") failed when debug systemd(pid 1)
Status: RESOLVED NOT A BUG
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (show other bugs)
Version: 3.16.1
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
: 464184 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-01-12 09:28 UTC by hguo3
Modified: 2024-09-22 22:09 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description hguo3 2023-01-12 09:28:03 UTC
SUMMARY
By the https://github.com/systemd/systemd/issues/2187, I try to debug systemd (pid 1) memory leak  using valgrind.
Kernel boot command is below:
/usr/bin/valgrind --leak-check=full --log-file=/valgrind.out /lib/systemd/systemd

Boot log and result of "/usr/bin/valgrind /lib/systemd/systemd"

OBSERVED RESULT

[   11.653187] /usr/bin/valgrind --leak-check=full --log-file=/valgrind.out /lib/systemd/systemdsh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell
sh-4.3# /usr/bin/valgrind /lib/systemd/systemd
valgrind: warning (non-fatal): readlink("/proc/self/exe") failed.
valgrind: continuing, however --trace-children=yes will not work.
--247:0: aspacem Valgrind: FATAL: can't open /proc/self/maps
--247:0: aspacem Exiting now.

EXPECTED RESULT
In this link https://github.com/systemd/systemd/issues/2187, valgrind can debug systemd(pid 1)

SOFTWARE/OS VERSIONS

Linux:  2.6 or yocto dunfell
Comment 1 hguo3 2023-01-12 09:31:08 UTC
Is there anything missing in my valgrind?
Comment 2 Mark Wielaard 2023-01-12 13:03:18 UTC
(In reply to hguo3 from comment #1)
> Is there anything missing in my valgrind?

I think this question is really for the systemd project. The problem that you are observing is that the way you are running/starting systemd causes the /proc filesystem not being available. You might look in the systemd bug report https://github.com/systemd/systemd/issues/2187 or ask the systemd project how you are supposed to run/start systemd under valgrind to get proper results.
Comment 3 Mark Wielaard 2023-01-12 13:03:58 UTC
*** Bug 464184 has been marked as a duplicate of this bug. ***
Comment 4 hguo3 2023-01-13 00:43:47 UTC
Thanks for reply and will ask systemd for help.
Comment 5 hguo3 2023-01-13 06:29:27 UTC
Get below debug log, when I use "valgrind -d". It is valgrind exit before systemd runs. Seems this is valgrind issue not systemd
------------------------------------------------
sh-4.3#/usr/bin/valgrind -d --leak-check=full --log-file=/valgrind.out /lib/systemd/systemd
--254:1:debuglog DebugLog system started by Stage 1, level 1 logging requested
--254:1:launcher no tool requested, defaulting to 'memcheck'
--254:1:launcher selected platform 'ppc64be-linux'
valgrind: warning (non-fatal): readlink("/proc/self/exe") failed.
valgrind: continuing, however --trace-children=yes will not work.
--254:1:launcher launching /usr/lib64/valgrind/memcheck-ppc64be-linux
--254:1:debuglog DebugLog system started by Stage 2 (main), level 1 logging requested
--254:1:    main Welcome to Valgrind version 3.16.1 debug logging
--254:1:    main Checking current stack is plausible
--254:1:    main Checking initial stack was noted
--254:1:    main Starting the address space manager
--254:0: aspacem Valgrind: FATAL: can't open /proc/self/maps
--254:0: aspacem Exiting now.
sh-4.3#
Comment 6 Mark Wielaard 2023-01-13 10:39:32 UTC
The issue is that you don't seem to have a /proc file system. Please let us know what the systemd people tell you.
Comment 7 hguo3 2023-01-16 01:03:33 UTC
https://github.com/systemd/systemd/issues/26046
Our systemd version is too old to support by upstream.