NetBSD-Bugs archive

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

bin/48774: quota tests fail with NFS root



>Number:         48774
>Category:       bin
>Synopsis:       quota tests fail with NFS root
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 30 20:45:00 +0000 2014
>Originator:     Martin Husemann
>Release:        NetBSD 6.99.40
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD unpluged.duskware.de 6.99.40 NetBSD 6.99.40 (UNPLUGED) #78: Wed 
Apr 30 12:02:38 CEST 2014 
martin%night-owl.duskware.de@localhost:/usr/src/sys/arch/evbarm/compile/UNPLUGED
 evbarm
Architecture: earm
Machine: evbarm
>Description:
I run atf tests on a system with / on NFS (nfs server is netbsd, no quotas
enabled on the underlying filesystem). Most quota related tests fail,
see for example:

http://www.netbsd.org/~martin/evbarm-atf/6_atf.html#fs_ffs_t_getquota_get_be_1_both

The quota command outputs two ERANGE error messages before printing the
correct values for the rump hijacked file system image.

It gets that ERANGE from the return at the end of __quota_nfs_get() in libquota:

        /* XXX not exactly a good errno */   
        errno = ERANGE;
        return -1;

because the rpc resulted in an unknown gq_rslt.status:

(gdb) p gq_rslt
$3 = {status = 50464, getquota_rslt_u = {gqr_rquota = {rq_bsize = -1073751540, 
      rq_active = -1073751576, rq_bhardlimit = 1073848532, 
      rq_bsoftlimit = 1073855648, rq_curblocks = 77696, 
      rq_fhardlimit = 1073973248, rq_fsoftlimit = 1074152736, rq_curfiles = 0, 
      rq_btimeleft = 0, rq_ftimeleft = 77696}}}
(gdb) p gq_rslt.status

backtrace is:

#0  __quota_nfs_get (qh=<optimized out>, qk=0xbfffda5c, qv=0x4031d060)
    at /usr/src/lib/libquota/quota_nfs.c:218
#1  0x4005bd68 in quota_get (qh=<optimized out>, qk=qk@entry=0xbfffda5c, 
    qv=<optimized out>) at /usr/src/lib/libquota/quota_get.c:54
#2  0x000092d0 in getprivs (idtype=0, id=205)
    at /usr/src/usr.bin/quota/quota.c:542
#3  showquotas (idtype=idtype@entry=0, 
    idtypename=idtypename@entry=0xaac0 "user", id=205, 
    idname=0x401e6f80 "martin") at /usr/src/usr.bin/quota/quota.c:327
#4  0x00009a48 in showuid (uid=<optimized out>)
    at /usr/src/usr.bin/quota/quota.c:229
#5  0x0000a568 in main (argc=0, argv=<optimized out>)
    at /usr/src/usr.bin/quota/quota.c:160

Without closer inspection it sounds like a bug to me that it tries to
query the NFS server at all.

I have / on nfs, /tmp on tmpfs (where the rump filesystem image resides in
a temporary atf subdir).

>How-To-Repeat:
s/a

>Fix:
n/a



Home | Main Index | Thread Index | Old Index