On Wed, 15 Mar 2023 17:59:06 +0800
Coiby Xu <coxu(a)redhat.com> wrote:
On Thu, Jan 12, 2023 at 04:43:45PM +0100, Philipp Rudo wrote:
>On Tue, 27 Dec 2022 09:26:23 +0800
>Coiby Xu <coxu(a)redhat.com> wrote:
>> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2140721
>> Currently, if users specify dumping to nfsv4 target via
>> dracut_args --mount "<NFS-server-ip>:/var/crash /mnt nfs
>> it fails with the following errors,
>> [ 5.159760] mount: mount.nfs: Protocol not supported
>> [ 5.164502] systemd: mnt.mount: Mount process exited, code=exited,
>> [ 5.167616] systemd: mnt.mount: Failed with result
>> [FAILED] Failed to mount /mnt.
>> This is because nfsv4-releted drivers are not installed to kdump initrd.
>> mkdumprd calls dracut with "--hostonly-mode strict". If nfsv4-related
>> drivers aren't loaded before calling dracut, they won't be installed.
>> When users specify nfs dumping via dracut_args, kexec-tools won't mount
>> the nfs fs beforehand hence nfsv4-related drivers won't be installed.
>> Note dracut only installs the nfs driver i.e. nfsv3 driver for "--mount
>> ... nfs". So also install nfsv4-related drivers when users specify nfs
>> dumping via dracut_args. Since nfs_layout_nfsv41_files depends on nfsv4,
>> the nfsv4 driver will be installed automatically.
>> As for the reason why we support nfs dumping via dracut_args instead of
>> asking user to use the nfs directive, please refer to commit 74c6f464
>> ("Support special mount information via 'dracut_args'").
>I don't understand why this was designed the way it is. Personally I
>would have treated the dracut_args and nfs directive identical and
>would simply have added a "--no-mount" option...
>Anyway that's nothing we can change right now. So your patch looks like
>a valid workaround to me.
Thanks for reviewing the patch! Could I have you Reviewed-by or Acked-by
if it looks good to you.
Reviewed-by: Philipp Rudo <prudo(a)redhat.com>
Btw, out of curiosity, I managed to find bz1183555 which the commit
74c6f464 tried to resolve. But after going through all the comments
unfortunately I still don't know if they have considered about
introducing a "--no-mount" option or neither can I find the rationale
for using dracut_args to skip mounting nfs fs. But for the sake of not
surprising users, I think it's better to stick with the old design.
Yes, it's probably better we stick with the old design...
>> Fixes: 4eedcae5 ("dracut-module-setup.sh: don't include
>> Reported-by: rcheerla(a)redhat.com
>> Signed-off-by: Coiby Xu <coxu(a)redhat.com>
>> mkdumprd | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>> diff --git a/mkdumprd b/mkdumprd
>> index 3e250e02..51ca4f01 100644
>> --- a/mkdumprd
>> +++ b/mkdumprd
>> @@ -420,6 +420,15 @@ while read -r config_opt config_val; do
>> verify_core_collector "$config_val"
>> + # When users specify nfs dumping via dracut_args, kexec-tools won't
>> + # mount nfs fs beforehand thus nfsv4-related drivers won't be installed
>> + # because we call dracut with --hostonly-mode strict. So manually install
>> + # nfsv4-related drivers.
>> + if [[ $(get_dracut_args_fstype "$config_val") == nfs* ]]; then
>> + add_dracut_arg "--add-drivers" nfs_layout_nfsv41_files
>> + fi
>> while read -r dracut_arg; do
>> add_dracut_arg "$dracut_arg"
>> done <<< "$(echo "$config_val" | xargs -n 1