commit | 3ed02c32ccef3bc438a46bb3c48a7dbb131072a8 | [log] [tgz] |
---|---|---|
author | Marri Devender Rao <devenrao@in.ibm.com> | Tue Jun 28 23:12:14 2022 -0500 |
committer | Marri Devender Rao <devenrao@in.ibm.com> | Thu Mar 23 13:30:31 2023 -0500 |
tree | 1878f49e8ab0d458113c2d6744f785b915eeaba9 | |
parent | 73953b8f8db9a8e8e35ea58f0b8312d823a4a65b [diff] |
sdevent:inode entry is not released after creating dump For every dump generated an "anon_inode:[pidfd]" entry is created for the associated process and the same is not released. When the number of inode entries reach the maximum count dump request will fail and the dump service takes a reset with a core dump. When a dump is requested a child process is spawned to perform dump collection, parent process waits on the child process completion using sd-event-add-child systemd call. sd-event-add-child adds an inode entry which needs to be released during the callback method called after child process exit using unref but the same is not done. Now switching to sdeventplus::source::Child wrapper class for sd-event-add-child which takes care of releasing the inode fd. Tested: ''' Without the fix for the 3 dumps created noticed 3 anon_inode:[pidfd] are added but not cleared root@rain135bmc:/proc/2044/fd# ls -la dr-x------ 2 root root 0 Jun 27 08:38 . dr-xr-xr-x 8 root root 0 Jun 27 08:38 .. lr-x------ 1 root root 64 Jun 27 08:39 0 -> /dev/null lrwx------ 1 root root 64 Jun 27 08:39 1 -> socket:[21586] lrwx------ 1 root root 64 Jun 27 08:39 10 ->anon_inode:[timerfd] lrwx------ 1 root root 64 Jun 27 08:47 11 ->anon_inode:[pidfd] lrwx------ 1 root root 64 Jun 27 08:47 12 ->anon_inode:[pidfd] lrwx------ 1 root root 64 Jun 27 08:47 13 ->anon_inode:[pidfd] After the fix noticed all the anon_inode:[pidfd] are cleared dr-x------ 2 root root 0 Jun 27 08:38 . dr-xr-xr-x 8 root root 0 Jun 27 08:38 .. lr-x------ 1 root root 64 Jun 27 08:39 0 -> /dev/null lrwx------ 1 root root 64 Jun 27 08:39 1 -> socket:[21586] lrwx------ 1 root root 64 Jun 27 08:39 10 ->anon_inode:[timerfd] ''' Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com> Change-Id: I9a2fec0a2287bfe978b811671c1cfeb1356e59d2
Phosphor Debug Collector provides mechanisms to collect various log files and system parameters. Used to troubleshoot problems in OpenBMC based systems.
One such mechanism is dreport, a script that collects debug data and packages it into an archive file.
To build this package with meson, do the following steps:
1. meson builddir 2. ninja -C builddir
To clean the built files run ninja -C builddir clean
.
Tests can be run in the CI docker container, refer local-ci-build
or with an OpenBMC x86 sdk(see below for x86 steps).
meson -Dtests=enabled build ninja -C build test