Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Re: reproducible kernel crash with quota



On Wed, 20 Apr 2022, J. Hannken-Illjes wrote:

Date: Wed, 20 Apr 2022 22:19:30 +0200
From: J. Hannken-Illjes <hannken%mailbox.org@localhost>
To: 6bone%6bone.informatik.uni-leipzig.de@localhost
Cc: current-users%netbsd.org@localhost, Manuel Bouyer <bouyer%antioche.eu.org@localhost>
Subject: [Extern] Re: reproducible kernel crash with quota

On 20. Apr 2022, at 22:10, 6bone%6bone.informatik.uni-leipzig.de@localhost wrote:

On Tue, 19 Apr 2022, J. Hannken-Illjes wrote:

Date: Tue, 19 Apr 2022 11:07:48 +0200
From: J. Hannken-Illjes <hannken%mailbox.org@localhost>
To: 6bone%6bone.informatik.uni-leipzig.de@localhost
Cc: current-users%netbsd.org@localhost, Manuel Bouyer <bouyer%antioche.eu.org@localhost>
Subject: [Extern] Re: reproducible kernel crash with quota
On 19. Apr 2022, at 08:38, 6bone%6bone.informatik.uni-leipzig.de@localhost wrote:

On Thu, 14 Apr 2022, J. Hannken-Illjes wrote:

Date: Thu, 14 Apr 2022 13:09:02 +0200
From: J. Hannken-Illjes <hannken%mailbox.org@localhost>
To: 6bone%6bone.informatik.uni-leipzig.de@localhost
Cc: current-users%netbsd.org@localhost, Manuel Bouyer <bouyer%antioche.eu.org@localhost>
Subject: [Extern] Re: reproducible kernel crash with quota
On 12. Apr 2022, at 08:52, 6bone%6bone.informatik.uni-leipzig.de@localhost wrote:

Hello,

since I already have some open bugs with reproducible kernel crashes, I'm only writing this to the mailing list.

how to reproduce the crash: /etc/rc.d/quota restart

dmesg:

[   412.047595] panic: kernel diagnostic assertion "dq->dq_ump->um_quotas[dq->dq _type] != vp" failed: file "/usr/src/sys/ufs/ufs/ufs_quota.c", line 978
[   412.047595] cpu8: Begin traceback...
[   412.047595] vpanic() at netbsd:vpanic+0x156
[   412.057595] kern_assert() at netbsd:kern_assert+0x4b
[   412.057595] dqflush() at netbsd:dqflush+0x92
[   412.057595] quota1_handle_cmd_quotaoff() at netbsd:quota1_handle_cmd_quotaof f+0x120
[   412.057595] ufs_quotactl() at netbsd:ufs_quotactl+0x3d
[   412.057595] VFS_QUOTACTL() at netbsd:VFS_QUOTACTL+0x22
[   412.057595] vfs_quotactl_quotaoff() at netbsd:vfs_quotactl_quotaoff+0x1b
[   412.057595] do_sys_quotactl() at netbsd:do_sys_quotactl+0xf1
[   412.067595] sys___quotactl() at netbsd:sys___quotactl+0x2e
[   412.067595] syscall() at netbsd:syscall+0x196
[   412.067595] --- syscall (number 473) ---
[   412.067595] netbsd:syscall+0x196:
[   412.067595] cpu8: End traceback...

[   412.067595] dumping to dev 168,1 (offset=8, size=33425953):
[   412.067595] dump


(gdb) target kvm netbsd.1.core
<snip>

I'm quite sure you have a /etc/fstab with "userquota,groupquota", yes?

with gdb:

frame 4 (dqflush())
print dq->dq_ump->um_quotas[0]
print dq->dq_ump->um_quotas[1]

gives the same vnode address for both fields, yes?

If this is the case the attached diff should help, since 2012-01-30
group quota got enabled on the user quota file.

As a workaround you could try to name the quota files in /etc/fstab
like "groupquota=XXX/quota.group".

You are right. I use groupquota and userquota in fstab. I tested the patch. With patch there is no crash. But the /etc/rc.d/quota restart leads to the blocking of the file system. You can only turn off the server. This also happens when I only use userquota in the fstab.

Sorry, forgot the second diff (now attached) that prevents looping
when taking the quota off on a modified file system.

Please try again with both diffs applied.

I tested with both patches. If I just enable querquota it seems to work. If you also activate groupquota, the kernel crashes:

output:

/etc/rc.d/quota restart
Checking quotas:quotacheck: creating quota file //quota.group

You have root (/) with quota?  What exactly do you have in /etc/fstab?

cat /etc/fstab
# NetBSD /etc/fstab
# See /usr/share/examples/fstab/ for more examples.
NAME=179d5ca2-7f26-476b-b544-823bd1849816 / ffs rw,userquota,groupquota 1 1 NAME=088fb0c9-d042-451d-b768-39d9c1f44a17 none swap sw,dp 0 0
tmpfs           /tmp    tmpfs   rw,-m=1777,-s=ram%15
kernfs          /kern   kernfs  rw
ptyfs           /dev/pts        ptyfs   rw
procfs          /proc   procfs  rw
/dev/cd0a       /cdrom  cd9660  ro,noauto
tmpfs           /var/shm        tmpfs   rw,-m1777,-sram%15

done.

-> crash

Are "dq->dq_ump->um_quotas[0]" and "dq->dq_ump->um_quotas[1]]" now different?

[   448.325252] panic: kernel diagnostic assertion "dq->dq_ump->um_quotas[dq->dq_type] != vp" failed: file "/usr/src/sys/ufs/ufs/ufs_quota.c", line 978
[   448.325252] cpu1: Begin traceback...
[   448.325252] vpanic() at netbsd:vpanic+0x156
[   448.325252] kern_assert() at netbsd:kern_assert+0x4b
[   448.325252] dqflush() at netbsd:dqflush+0x92
[   448.335252] quota1_handle_cmd_quotaoff() at netbsd:quota1_handle_cmd_quotaoff+0x117
[   448.335252] ufs_quotactl() at netbsd:ufs_quotactl+0x3d
[   448.335252] VFS_QUOTACTL() at netbsd:VFS_QUOTACTL+0x22
[   448.335252] vfs_quotactl_quotaoff() at netbsd:vfs_quotactl_quotaoff+0x1b
[   448.335252] do_sys_quotactl() at netbsd:do_sys_quotactl+0xf1
[   448.335252] sys___quotactl() at netbsd:sys___quotactl+0x2e
[   448.345252] syscall() at netbsd:syscall+0x196
[   448.345252] --- syscall (number 473) ---
[   448.345252] netbsd:syscall+0x196:
[   448.345252] cpu1: End traceback...

[   448.345252] dumping to dev 168,1 (offset=8, size=33425953):
[   448.345252] dump


Thank you for your efforts

Regards
Uwe




Maybe someone can fix the problem.


Thank you for your efforts


Regards
Uwe

--
J. Hannken-Illjes - hannken%mailbox.org@localhost


--
J. Hannken-Illjes - hannken%mailbox.org@localhost



--
J. Hannken-Illjes - hannken%mailbox.org@localhost



Home | Main Index | Thread Index | Old Index