Hi Jorgen,

On Wed, Aug 04, 2010 at 04:07:33PM +0900, Jorgen Lundman wrote:
> 
> Since the message that we frequently see before we have trouble
> comes from this code:
> 
> 6719 oo = rfs4_findopenowner(owner, &create, args->seqid);
> 6720 if (oo == NULL) {
> 6721 *cs->statusp = resp->status = NFS4ERR_STALE_CLIENTID;
> 
> 
> 
> and the function rfs4_findopenowner() calls rfs4_dbsearch(), whose first line 
> is:
> 
> 522 NFS4_DEBUG(table->debug & SEARCH_DEBUG,
> 523           (CE_NOTE, "Searching for key %p in table %s by %s",
> 524            key, table->name, idx->keyname));
> 
> I thought it would be interesting to enable this message.
> 
> Ie, set SEARCH_DEBUG for NFS4_DEBUG. It would appear that it comes from:
> 
> rfs4_table_create()
> 
> rfs4_database_create(uint32_t flags)
> 
> rfs4_server_state = rfs4_database_create(rfs4_database_debug);
> 
> static uint32_t rfs4_database_debug = 0x00;
> 
> 
> 
> And since SEARCH_DEBUG is 0x0001, I have attempted to set:
> 
> # mdb -kw
> > rfs4_database_debug/D
> rfs4_database_debug:
> rfs4_database_debug:            0
> > rfs4_database_debug/W0t1
> > rfs4_database_debug/D
> rfs4_database_debug:
> rfs4_database_debug:            1
> 
> but also I added /etc/system
> 
> set nfssrv:rfs4_database_debug=1
> 
> with a reboot.
> 
> 
> 
> I can confirm that rfs4_database_debug is now set to 1.
> 
> But I don't see a huge amount of debug info that I somewhat expected
> to see. It uses CNM_NOTE, which I assume will be picked up by
> kern.debug and placed in /var/adm/messages. Is this not correct?

You need to compile the kernel as DEBUG first to have the above working. Please
read usr/src/uts/common/nfs/nfs4.h around lines 950 - 970 for details.

-- 
Marcel Telka
RPE, Systems
_______________________________________________
nfs-discuss mailing list
[email protected]

Reply via email to