Re: [RFC] After nfs restart, locks can't be recovered which record by lockd before

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

 



Hi Jeff,

Jeff Layton 写道:
> On Wed, 13 Jan 2010 17:51:25 +0800
> Mi Jinlong <mijinlong@xxxxxxxxxxxxxx> wrote:
> 
>> Hi,
>>
>> When testing the nfs's lock at NFSv3, I get a problem.
>> So I want someone help me, thanks!
>>
>> Test Process:
>>   Step1, ClientA get an exclusive lock success.
>>   Step2, Using command "service nfs restart" to restart server's nfs service.
> 
> "service nfs restart" on an RH-derived distro is the same as running
> "/etc/init.d/nfs restart". Init scripts vary between distros (and even
> between releases on the same distro). Since you're asking this in a
> more generic forum, you should probably be specific about what's
> actually being restarted (and in what order). Understanding that may
> also help you answer your own question here.

  I test it on RHEL5(kernel 2.6.18, nfs-utils 1.0.9) and Fedora 12(kernel 2.6.33-rc3,
   nfs-utils 1.2.0).

> 
>>   Step3. ClientB get lock should fail, but success.
>>
>> I think after step2 (nfs service restart), clientA's lock should be recovered.
>> But like above, clientA's lock doesn’t be recovered.
>>
>> When tracing the kernel, I find nfsd will cause lockd stop when it stop.
>> When lockd stop, all locks will be release which is record before at lockd.
>>
>> When nfsd start, the lockd will start also, but the statd don't know what happened
>>  at kernel, so after that, locks will be lost.
>>
>> Is it right when nfs stop, the lockd will stop too? 
>> If it's right, should locks be recovered after lockd start?
>>
> 
> Assuming you're using a RH-derived distro like Fedora or RHEL, then no.
> statd is controlled by a separate init script (nfslock) and when you
> run "service nfs restart" you're not restarting it. NSM notifications
> are not sent and clients generally won't reclaim their locks.

  Yes, the statd don't restart when nfs restart. But, nfs restart will
  cause lockd restart. If lockd restart, locks which record before will be lost.

> IOW, "you're doing it wrong". If you want locks to be reclaimed then
> you probably need to restart the nfslock service too.
> 

  Don't you think it's more reasonable that locks should be recovered 
  when nfs restart cause lockd restart?

-- 
Regards
Mi Jinlong

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux