On 07/31/14 at 08:52am, Vivek Goyal wrote:
On Thu, Jul 31, 2014 at 02:30:09PM +0800, WANG Chao wrote:
> Now upon failure kdump script might not be called at all and it might
> not be able to execute default action. It results in a hang.
>
> Because we disable emergency shell and rely on kdump.sh being invoked
> through dracut-pre-pivot hook. But it might happen that we never call
> into dracut-pre-pivot hook because certain systemd targets could not
> reach due to failure in their dependencies. In those cases error
> handling code does not run and system hangs. For example:
>
> sysroot-var-crash.mount --> initrd-root-fs.target --> initrd.target \
> --> dracut-pre-pivot.service --> kdump.sh
>
> If /var/crash mount fails, local-fs.target will not be reached. And then
> sysinit.target will not be reached, kdump-pre-pivot.service wouldn't
> run. Finally kdump.sh wouldn't run.
Hey chao,
The description and call graph you have drawn are not matching. You
mention that local-fs.target will not be reached but there is no
local-fs.target in the graph.
You mention sysinit.target will not be reached, but there is no
sysinit.target in the graph.
You mention kdump-pre-pivot.service will not run, but there isn o
kdump-pre-pivot.service in the graph.
I think this description/call graph requires some fixing.
Yes. I messed up. In fact the graph is correct, because after
"x-initrd.mount", local-fs.target becomes initrd-root-fs.target for
fstab mount entry.