NetBSD-Bugs archive

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

Re: kern/42455: tstile hang with nfs


>>  hi,
>>  >>  >  I added some more debug lines and figured out that the macro
>>  >>  >  nfsm_wcc_data() drops the mbuf chain w/o decreasing
>>  >>  >  ctxt.nwc_mbufcount.
>>  >>  
>>  >>  The nfsm_wcc_data() macro calls the nfsm_postop_attr() macro.
>>  >>  The nfsm_postop_attr() macro calls nfsm_loadattrcache() function.
>>  >>  The nfsm_loadattrcache() function calls nfsm_disct() function.
>>  >>  
>>  >>  nfsm_disct() is the function in error which drops the mbuf chain.
>>  are you sure?
> yes, absolutely and reproducable.
>>  iirc, nwc_mbufcount is about sending mbuf.  otoh, nfsm_disct
>>  is for received mbuf.
> nfs_writerpc *does* call nfsm_disct() through nfsm_wcc_data,
> nfsm_postop_attr and nfsm_loadattrcache in this order.
> So you are saying this should never happen?

i'm saying i don't understand.

nfs_writerpc sends a request to the server, using mreq and mb.
it's what nwc_mbufcount is used for.

it then parses the reply from the server, using mrep and md.
it's what nfsm_wcc_data/nfsm_postop_attr/nfsm_loadattrcache/nfsm_disct are
used for.

i don't understand how a problem in the latter causes the nwc_mbufcount
problem.  the above two are somehow mixed up?


> Christoph

Home | Main Index | Thread Index | Old Index