Linux-NFS Archive mirror
 help / color / mirror / Atom feed
* NFSD: Unable to initialize client recovery tracking! (-110)
@ 2024-04-19 16:50 Paul Menzel
  2024-05-21  9:55 ` Paul Menzel
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Menzel @ 2024-04-19 16:50 UTC (permalink / raw
  To: Chuck Lever, Jeff Layton; +Cc: linux-nfs

Dear Linux folks,


Since at least Linux 6.8-rc6, Linux logs the warning below:

     NFSD: Unable to initialize client recovery tracking! (-110)

I haven’t had time to bisect yet, so if you have an idea, that’d be great.


Kind regards,

Paul

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-04-19 16:50 NFSD: Unable to initialize client recovery tracking! (-110) Paul Menzel
@ 2024-05-21  9:55 ` Paul Menzel
  2024-05-21 10:01   ` Jeff Layton
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Menzel @ 2024-05-21  9:55 UTC (permalink / raw
  To: Chuck Lever, Jeff Layton; +Cc: linux-nfs, regressions, it+linux-nfs

#regzbot ^introduced: 74fd48739d04

Dear Jeff,


Am 19.04.24 um 18:50 schrieb Paul Menzel:

> Since at least Linux 6.8-rc6, Linux logs the warning below:
> 
>      NFSD: Unable to initialize client recovery tracking! (-110)
> 
> I haven’t had time to bisect yet, so if you have an idea, that’d be great.

74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
commit 74fd48739d0488e39ae18b0168720f449a06690c
Author: Jeff Layton <jlayton@kernel.org>
Date:   Fri Oct 13 09:03:53 2023 -0400

     nfsd: new Kconfig option for legacy client tracking

     We've had a number of attempts at different NFSv4 client tracking
     methods over the years, but now nfsdcld has emerged as the clear winner
     since the others (recoverydir and the usermodehelper upcall) are
     problematic.

     As a case in point, the recoverydir backend uses MD5 hashes to encode
     long form clientid strings, which means that nfsd repeatedly gets 
dinged
     on FIPS audits, since MD5 isn't considered secure. Its use of MD5 
is not
     cryptographically significant, so there is no danger there, but 
allowing
     us to compile that out allows us to sidestep the issue entirely.

     As a prelude to eventually removing support for these client tracking
     methods, add a new Kconfig option that enables them. Mark it deprecated
     and make it default to N.

     Acked-by: NeilBrown <neilb@suse.de>
     Signed-off-by: Jeff Layton <jlayton@kernel.org>
     Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

  fs/nfsd/Kconfig       | 16 +++++++++
  fs/nfsd/nfs4recover.c | 97 
+++++++++++++++++++++++++++++++++------------------
  fs/nfsd/nfsctl.c      |  6 ++++
  3 files changed, 85 insertions(+), 34 deletions(-)

`NFSD_LEGACY_CLIENT_TRACKING` is not set:

     # CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set


Kind regards,

Paul

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-21  9:55 ` Paul Menzel
@ 2024-05-21 10:01   ` Jeff Layton
  2024-05-24 11:16     ` Linux regression tracking (Thorsten Leemhuis)
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Layton @ 2024-05-21 10:01 UTC (permalink / raw
  To: Paul Menzel, Chuck Lever; +Cc: linux-nfs, regressions, it+linux-nfs

On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
> #regzbot ^introduced: 74fd48739d04
> 
> Dear Jeff,
> 
> 
> Am 19.04.24 um 18:50 schrieb Paul Menzel:
> 
> > Since at least Linux 6.8-rc6, Linux logs the warning below:
> > 
> >      NFSD: Unable to initialize client recovery tracking! (-110)
> > 
> > I haven’t had time to bisect yet, so if you have an idea, that’d be great.
> 
> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
> commit 74fd48739d0488e39ae18b0168720f449a06690c
> Author: Jeff Layton <jlayton@kernel.org>
> Date:   Fri Oct 13 09:03:53 2023 -0400
> 
>      nfsd: new Kconfig option for legacy client tracking
> 
>      We've had a number of attempts at different NFSv4 client tracking
>      methods over the years, but now nfsdcld has emerged as the clear winner
>      since the others (recoverydir and the usermodehelper upcall) are
>      problematic.
> 
>      As a case in point, the recoverydir backend uses MD5 hashes to encode
>      long form clientid strings, which means that nfsd repeatedly gets 
> dinged
>      on FIPS audits, since MD5 isn't considered secure. Its use of MD5 
> is not
>      cryptographically significant, so there is no danger there, but 
> allowing
>      us to compile that out allows us to sidestep the issue entirely.
> 
>      As a prelude to eventually removing support for these client tracking
>      methods, add a new Kconfig option that enables them. Mark it deprecated
>      and make it default to N.
> 
>      Acked-by: NeilBrown <neilb@suse.de>
>      Signed-off-by: Jeff Layton <jlayton@kernel.org>
>      Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> 
>   fs/nfsd/Kconfig       | 16 +++++++++
>   fs/nfsd/nfs4recover.c | 97 
> +++++++++++++++++++++++++++++++++------------------
>   fs/nfsd/nfsctl.c      |  6 ++++
>   3 files changed, 85 insertions(+), 34 deletions(-)
> 
> `NFSD_LEGACY_CLIENT_TRACKING` is not set:
> 
>      # CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
> 
> 

It sounds like you need to enable nfsdcld in your environment. The old
recovery tracking methods are deprecated. The only surviving one
requires the nfsdcld daemon to be running when recovery tracking is
started. Alternately, you can enable this option in your kernels if you
want to keep using the deprecated methods in the interim.

-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-21 10:01   ` Jeff Layton
@ 2024-05-24 11:16     ` Linux regression tracking (Thorsten Leemhuis)
  2024-05-24 12:46       ` Jeff Layton
  2024-05-24 16:09       ` Chuck Lever III
  0 siblings, 2 replies; 10+ messages in thread
From: Linux regression tracking (Thorsten Leemhuis) @ 2024-05-24 11:16 UTC (permalink / raw
  To: Jeff Layton, Paul Menzel, Chuck Lever
  Cc: linux-nfs, regressions, it+linux-nfs, Linus Torvalds

On 21.05.24 12:01, Jeff Layton wrote:
> On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
>> Am 19.04.24 um 18:50 schrieb Paul Menzel:
>>
>>> Since at least Linux 6.8-rc6, Linux logs the warning below:
>>>
>>>      NFSD: Unable to initialize client recovery tracking! (-110)
>>>
>>> I haven’t had time to bisect yet, so if you have an idea, that’d be great.
>>
>> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
>> commit 74fd48739d0488e39ae18b0168720f449a06690c
>> Author: Jeff Layton <jlayton@kernel.org>
>> Date:   Fri Oct 13 09:03:53 2023 -0400
>>
>>      nfsd: new Kconfig option for legacy client tracking
>>
>>      We've had a number of attempts at different NFSv4 client tracking
>>      methods over the years, but now nfsdcld has emerged as the clear winner
>>      since the others (recoverydir and the usermodehelper upcall) are
>>      problematic.
> [...]
> It sounds like you need to enable nfsdcld in your environment. The old
> recovery tracking methods are deprecated. The only surviving one
> requires the nfsdcld daemon to be running when recovery tracking is
> started. Alternately, you can enable this option in your kernels if you
> want to keep using the deprecated methods in the interim.

Hmm. Then why didn't this new config option default to "Y" for a while
(say a year or two) before changing the default to off? That would have
prevented people like Paul from running into the problem when running
"olddefconfig". I think that is what Linus would have wanted in a case
like this, but might be totally wrong there (I CCed him, in case he
wants to share his opinion, but maybe he does not care much).

But I guess that's too late now, unless we want to meddle with config
option names. But I guess that might not be worth it after half a year
for something that only causes a warning (aiui).

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-24 11:16     ` Linux regression tracking (Thorsten Leemhuis)
@ 2024-05-24 12:46       ` Jeff Layton
  2024-05-24 16:09       ` Chuck Lever III
  1 sibling, 0 replies; 10+ messages in thread
From: Jeff Layton @ 2024-05-24 12:46 UTC (permalink / raw
  To: Linux regressions mailing list, Paul Menzel, Chuck Lever
  Cc: linux-nfs, it+linux-nfs, Linus Torvalds

On Fri, 2024-05-24 at 13:16 +0200, Linux regression tracking (Thorsten
Leemhuis) wrote:
> On 21.05.24 12:01, Jeff Layton wrote:
> > On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
> > > Am 19.04.24 um 18:50 schrieb Paul Menzel:
> > > 
> > > > Since at least Linux 6.8-rc6, Linux logs the warning below:
> > > > 
> > > >      NFSD: Unable to initialize client recovery tracking! (-
> > > > 110)
> > > > 
> > > > I haven’t had time to bisect yet, so if you have an idea,
> > > > that’d be great.
> > > 
> > > 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
> > > commit 74fd48739d0488e39ae18b0168720f449a06690c
> > > Author: Jeff Layton <jlayton@kernel.org>
> > > Date:   Fri Oct 13 09:03:53 2023 -0400
> > > 
> > >      nfsd: new Kconfig option for legacy client tracking
> > > 
> > >      We've had a number of attempts at different NFSv4 client
> > > tracking
> > >      methods over the years, but now nfsdcld has emerged as the
> > > clear winner
> > >      since the others (recoverydir and the usermodehelper upcall)
> > > are
> > >      problematic.
> > [...]
> > It sounds like you need to enable nfsdcld in your environment. The
> > old
> > recovery tracking methods are deprecated. The only surviving one
> > requires the nfsdcld daemon to be running when recovery tracking is
> > started. Alternately, you can enable this option in your kernels if
> > you
> > want to keep using the deprecated methods in the interim.
> 
> Hmm. Then why didn't this new config option default to "Y" for a
> while
> (say a year or two) before changing the default to off? That would
> have
> prevented people like Paul from running into the problem when running
> "olddefconfig". I think that is what Linus would have wanted in a
> case
> like this, but might be totally wrong there (I CCed him, in case he
> wants to share his opinion, but maybe he does not care much).
> 
> But I guess that's too late now, unless we want to meddle with config
> option names. But I guess that might not be worth it after half a
> year
> for something that only causes a warning (aiui).
> 
> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker'
> hat)
> --
> Everything you wanna know about Linux kernel regression tracking:
> https://linux-regtracking.leemhuis.info/about/#tldr
> If I did something stupid, please tell me, as explained on that page.
> 

We simply changed the default in the Kconfig. That does not constitute
a regression, IMO. Why on earth would we continue to default enable an
option that we intend to deprecate in the near future?
-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-24 11:16     ` Linux regression tracking (Thorsten Leemhuis)
  2024-05-24 12:46       ` Jeff Layton
@ 2024-05-24 16:09       ` Chuck Lever III
  2024-05-29 12:51         ` Linux regression tracking (Thorsten Leemhuis)
  2024-05-29 13:13         ` Jeff Layton
  1 sibling, 2 replies; 10+ messages in thread
From: Chuck Lever III @ 2024-05-24 16:09 UTC (permalink / raw
  To: Linux regressions mailing list
  Cc: Jeff Layton, Paul Menzel, Linux NFS Mailing List,
	it+linux-nfs@molgen.mpg.de, Linus Torvalds



> On May 24, 2024, at 7:16 AM, Linux regression tracking (Thorsten Leemhuis) <regressions@leemhuis.info> wrote:
> 
> On 21.05.24 12:01, Jeff Layton wrote:
>> On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
>>> Am 19.04.24 um 18:50 schrieb Paul Menzel:
>>> 
>>>> Since at least Linux 6.8-rc6, Linux logs the warning below:
>>>> 
>>>>     NFSD: Unable to initialize client recovery tracking! (-110)
>>>> 
>>>> I haven’t had time to bisect yet, so if you have an idea, that’d be great.
>>> 
>>> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
>>> commit 74fd48739d0488e39ae18b0168720f449a06690c
>>> Author: Jeff Layton <jlayton@kernel.org>
>>> Date:   Fri Oct 13 09:03:53 2023 -0400
>>> 
>>>     nfsd: new Kconfig option for legacy client tracking
>>> 
>>>     We've had a number of attempts at different NFSv4 client tracking
>>>     methods over the years, but now nfsdcld has emerged as the clear winner
>>>     since the others (recoverydir and the usermodehelper upcall) are
>>>     problematic.
>> [...]
>> It sounds like you need to enable nfsdcld in your environment. The old
>> recovery tracking methods are deprecated. The only surviving one
>> requires the nfsdcld daemon to be running when recovery tracking is
>> started. Alternately, you can enable this option in your kernels if you
>> want to keep using the deprecated methods in the interim.
> 
> Hmm. Then why didn't this new config option default to "Y" for a while
> (say a year or two) before changing the default to off? That would have
> prevented people like Paul from running into the problem when running
> "olddefconfig". I think that is what Linus would have wanted in a case
> like this, but might be totally wrong there (I CCed him, in case he
> wants to share his opinion, but maybe he does not care much).

That's fair. I recall we believed at the time that very few people
if anyone currently use a legacy recovery tracking mechanism, and
the workaround, if they do, is easy.


> But I guess that's too late now, unless we want to meddle with config
> option names. But I guess that might not be worth it after half a year
> for something that only causes a warning (aiui).

In Paul's case, the default behavior might prevent proper NFSv4
state recovery, which is a little more hazardous than a mere
warning, IIUC.

To my surprise, it often takes quite some time for changes like
this to matriculate into mainstream usage, so half a year isn't
that long. We might want to change to a more traditional
deprecation path (default Y with warning, wait, default N, wait,
redact the old code).


--
Chuck Lever



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-24 16:09       ` Chuck Lever III
@ 2024-05-29 12:51         ` Linux regression tracking (Thorsten Leemhuis)
  2024-05-29 13:13         ` Jeff Layton
  1 sibling, 0 replies; 10+ messages in thread
From: Linux regression tracking (Thorsten Leemhuis) @ 2024-05-29 12:51 UTC (permalink / raw
  To: Chuck Lever III, Linux regressions mailing list
  Cc: Jeff Layton, Paul Menzel, Linux NFS Mailing List,
	it+linux-nfs@molgen.mpg.de, Linus Torvalds

On 24.05.24 18:09, Chuck Lever III wrote:
>> On May 24, 2024, at 7:16 AM, Linux regression tracking (Thorsten Leemhuis) <regressions@leemhuis.info> wrote:
>> On 21.05.24 12:01, Jeff Layton wrote:
>>> On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
>>>> Am 19.04.24 um 18:50 schrieb Paul Menzel:
>>>>
>>>>> Since at least Linux 6.8-rc6, Linux logs the warning below:
>>>>>
>>>>>     NFSD: Unable to initialize client recovery tracking! (-110)
>>>>>
>>>>> I haven’t had time to bisect yet, so if you have an idea, that’d be great.
>>>>
>>>> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
>>>> commit 74fd48739d0488e39ae18b0168720f449a06690c
>>>> Author: Jeff Layton <jlayton@kernel.org>
>>>> Date:   Fri Oct 13 09:03:53 2023 -0400
>>>>
>>>>     nfsd: new Kconfig option for legacy client tracking
>>>>
>>>>     We've had a number of attempts at different NFSv4 client tracking
>>>>     methods over the years, but now nfsdcld has emerged as the clear winner
>>>>     since the others (recoverydir and the usermodehelper upcall) are
>>>>     problematic.
>>> [...]
>>> It sounds like you need to enable nfsdcld in your environment. The old
>>> recovery tracking methods are deprecated. The only surviving one
>>> requires the nfsdcld daemon to be running when recovery tracking is
>>> started. Alternately, you can enable this option in your kernels if you
>>> want to keep using the deprecated methods in the interim.
>>
>> Hmm. Then why didn't this new config option default to "Y" for a while
>> (say a year or two) before changing the default to off? That would have
>> prevented people like Paul from running into the problem when running
>> "olddefconfig". I think that is what Linus would have wanted in a case
>> like this, but might be totally wrong there (I CCed him, in case he
>> wants to share his opinion, but maybe he does not care much).
> 
> That's fair. I recall we believed at the time that very few people
> if anyone currently use a legacy recovery tracking mechanism, and
> the workaround, if they do, is easy.
> 
>> But I guess that's too late now, unless we want to meddle with config
>> option names. But I guess that might not be worth it after half a year
>> for something that only causes a warning (aiui).
> 
> In Paul's case, the default behavior might prevent proper NFSv4
> state recovery, which is a little more hazardous than a mere
> warning, IIUC.
> 
> To my surprise, it often takes quite some time for changes like
> this to matriculate into mainstream usage, so half a year isn't
> that long. We might want to change to a more traditional
> deprecation path (default Y with warning, wait, default N, wait,
> redact the old code).

Well, that would help anybody that already ran "make olddefconfig" with
a kernel that has 74fd48739d04, as they now have
NFSD_LEGACY_CLIENT_TRACKING unset in their .config -- at least unless we
rename that option and make it default to Y; but it would help everybody
that updates from the latest longterm kernel to a future kernel that
would contain a change like you outlined.

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-24 16:09       ` Chuck Lever III
  2024-05-29 12:51         ` Linux regression tracking (Thorsten Leemhuis)
@ 2024-05-29 13:13         ` Jeff Layton
  2024-05-29 13:16           ` Chuck Lever III
  2024-05-29 13:27           ` Paul Menzel
  1 sibling, 2 replies; 10+ messages in thread
From: Jeff Layton @ 2024-05-29 13:13 UTC (permalink / raw
  To: Chuck Lever III, Linux regressions mailing list
  Cc: Paul Menzel, Linux NFS Mailing List, it+linux-nfs@molgen.mpg.de,
	Linus Torvalds

On Fri, 2024-05-24 at 16:09 +0000, Chuck Lever III wrote:
> 
> 
> > On May 24, 2024, at 7:16 AM, Linux regression tracking (Thorsten
> > Leemhuis) <regressions@leemhuis.info> wrote:
> > 
> > On 21.05.24 12:01, Jeff Layton wrote:
> > > On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
> > > > Am 19.04.24 um 18:50 schrieb Paul Menzel:
> > > > 
> > > > > Since at least Linux 6.8-rc6, Linux logs the warning below:
> > > > > 
> > > > >     NFSD: Unable to initialize client recovery tracking! (-
> > > > > 110)
> > > > > 
> > > > > I haven’t had time to bisect yet, so if you have an idea,
> > > > > that’d be great.
> > > > 
> > > > 74fd48739d0488e39ae18b0168720f449a06690c is the first bad
> > > > commit
> > > > commit 74fd48739d0488e39ae18b0168720f449a06690c
> > > > Author: Jeff Layton <jlayton@kernel.org>
> > > > Date:   Fri Oct 13 09:03:53 2023 -0400
> > > > 
> > > >     nfsd: new Kconfig option for legacy client tracking
> > > > 
> > > >     We've had a number of attempts at different NFSv4 client
> > > > tracking
> > > >     methods over the years, but now nfsdcld has emerged as the
> > > > clear winner
> > > >     since the others (recoverydir and the usermodehelper
> > > > upcall) are
> > > >     problematic.
> > > [...]
> > > It sounds like you need to enable nfsdcld in your environment.
> > > The old
> > > recovery tracking methods are deprecated. The only surviving one
> > > requires the nfsdcld daemon to be running when recovery tracking
> > > is
> > > started. Alternately, you can enable this option in your kernels
> > > if you
> > > want to keep using the deprecated methods in the interim.
> > 
> > Hmm. Then why didn't this new config option default to "Y" for a
> > while
> > (say a year or two) before changing the default to off? That would
> > have
> > prevented people like Paul from running into the problem when
> > running
> > "olddefconfig". I think that is what Linus would have wanted in a
> > case
> > like this, but might be totally wrong there (I CCed him, in case he
> > wants to share his opinion, but maybe he does not care much).
> 
> That's fair. I recall we believed at the time that very few people
> if anyone currently use a legacy recovery tracking mechanism, and
> the workaround, if they do, is easy.
> 
> 
> > But I guess that's too late now, unless we want to meddle with
> > config
> > option names. But I guess that might not be worth it after half a
> > year
> > for something that only causes a warning (aiui).
> 
> In Paul's case, the default behavior might prevent proper NFSv4
> state recovery, which is a little more hazardous than a mere
> warning, IIUC.
> 
> To my surprise, it often takes quite some time for changes like
> this to matriculate into mainstream usage, so half a year isn't
> that long. We might want to change to a more traditional
> deprecation path (default Y with warning, wait, default N, wait,
> redact the old code).
> 

I've no objection if you want to do that.

I'm more concerned about Paul's setup though. Paul, what distro are you
running that starts nfsd (and presumably, mountd, etc.), but doesn't
bother starting nfsdcld?

Reenabling this for now is an OK workaround, but we need to understand
where these setups are coming from, and probably do some sort of
outreach to get them working properly.
-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-29 13:13         ` Jeff Layton
@ 2024-05-29 13:16           ` Chuck Lever III
  2024-05-29 13:27           ` Paul Menzel
  1 sibling, 0 replies; 10+ messages in thread
From: Chuck Lever III @ 2024-05-29 13:16 UTC (permalink / raw
  To: Jeff Layton
  Cc: Linux regressions mailing list, Paul Menzel,
	Linux NFS Mailing List, it+linux-nfs@molgen.mpg.de,
	Linus Torvalds



> On May 29, 2024, at 9:13 AM, Jeff Layton <jlayton@kernel.org> wrote:
> 
> On Fri, 2024-05-24 at 16:09 +0000, Chuck Lever III wrote:
>> 
>> 
>>> On May 24, 2024, at 7:16 AM, Linux regression tracking (Thorsten
>>> Leemhuis) <regressions@leemhuis.info> wrote:
>>> 
>>> On 21.05.24 12:01, Jeff Layton wrote:
>>>> On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
>>>>> Am 19.04.24 um 18:50 schrieb Paul Menzel:
>>>>> 
>>>>>> Since at least Linux 6.8-rc6, Linux logs the warning below:
>>>>>> 
>>>>>>     NFSD: Unable to initialize client recovery tracking! (-
>>>>>> 110)
>>>>>> 
>>>>>> I haven’t had time to bisect yet, so if you have an idea,
>>>>>> that’d be great.
>>>>> 
>>>>> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad
>>>>> commit
>>>>> commit 74fd48739d0488e39ae18b0168720f449a06690c
>>>>> Author: Jeff Layton <jlayton@kernel.org>
>>>>> Date:   Fri Oct 13 09:03:53 2023 -0400
>>>>> 
>>>>>     nfsd: new Kconfig option for legacy client tracking
>>>>> 
>>>>>     We've had a number of attempts at different NFSv4 client
>>>>> tracking
>>>>>     methods over the years, but now nfsdcld has emerged as the
>>>>> clear winner
>>>>>     since the others (recoverydir and the usermodehelper
>>>>> upcall) are
>>>>>     problematic.
>>>> [...]
>>>> It sounds like you need to enable nfsdcld in your environment.
>>>> The old
>>>> recovery tracking methods are deprecated. The only surviving one
>>>> requires the nfsdcld daemon to be running when recovery tracking
>>>> is
>>>> started. Alternately, you can enable this option in your kernels
>>>> if you
>>>> want to keep using the deprecated methods in the interim.
>>> 
>>> Hmm. Then why didn't this new config option default to "Y" for a
>>> while
>>> (say a year or two) before changing the default to off? That would
>>> have
>>> prevented people like Paul from running into the problem when
>>> running
>>> "olddefconfig". I think that is what Linus would have wanted in a
>>> case
>>> like this, but might be totally wrong there (I CCed him, in case he
>>> wants to share his opinion, but maybe he does not care much).
>> 
>> That's fair. I recall we believed at the time that very few people
>> if anyone currently use a legacy recovery tracking mechanism, and
>> the workaround, if they do, is easy.
>> 
>> 
>>> But I guess that's too late now, unless we want to meddle with
>>> config
>>> option names. But I guess that might not be worth it after half a
>>> year
>>> for something that only causes a warning (aiui).
>> 
>> In Paul's case, the default behavior might prevent proper NFSv4
>> state recovery, which is a little more hazardous than a mere
>> warning, IIUC.
>> 
>> To my surprise, it often takes quite some time for changes like
>> this to matriculate into mainstream usage, so half a year isn't
>> that long. We might want to change to a more traditional
>> deprecation path (default Y with warning, wait, default N, wait,
>> redact the old code).
>> 
> 
> I've no objection if you want to do that.
> 
> I'm more concerned about Paul's setup though. Paul, what distro are you
> running that starts nfsd (and presumably, mountd, etc.), but doesn't
> bother starting nfsdcld?
> 
> Reenabling this for now is an OK workaround, but we need to understand
> where these setups are coming from, and probably do some sort of
> outreach to get them working properly.

Getting a root cause first seems prudent. I will hold off changes
for a bit.


--
Chuck Lever



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: NFSD: Unable to initialize client recovery tracking! (-110)
  2024-05-29 13:13         ` Jeff Layton
  2024-05-29 13:16           ` Chuck Lever III
@ 2024-05-29 13:27           ` Paul Menzel
  1 sibling, 0 replies; 10+ messages in thread
From: Paul Menzel @ 2024-05-29 13:27 UTC (permalink / raw
  To: Jeff Layton, Chuck Lever III
  Cc: regressions, linux-nfs, it+linux-nfs, Linus Torvalds

Dear Jeff, dear Chuck, dear Thorsten,


Thank you for your responses, and sorry for not replying earlier.

Am 29.05.24 um 15:13 schrieb Jeff Layton:
> On Fri, 2024-05-24 at 16:09 +0000, Chuck Lever III wrote:

>>> On May 24, 2024, at 7:16 AM, Linux regression tracking (Thorsten
>>> Leemhuis) wrote:
>>>
>>> On 21.05.24 12:01, Jeff Layton wrote:
>>>> On Tue, 2024-05-21 at 11:55 +0200, Paul Menzel wrote:
>>>>> Am 19.04.24 um 18:50 schrieb Paul Menzel:
>>>>>
>>>>>> Since at least Linux 6.8-rc6, Linux logs the warning below:
>>>>>>
>>>>>>      NFSD: Unable to initialize client recovery tracking! (-110)
>>>>>>
>>>>>> I haven’t had time to bisect yet, so if you have an idea,
>>>>>> that’d be great.
>>>>>
>>>>> 74fd48739d0488e39ae18b0168720f449a06690c is the first bad commit
>>>>> commit 74fd48739d0488e39ae18b0168720f449a06690c
>>>>> Author: Jeff Layton <jlayton@kernel.org>
>>>>> Date:   Fri Oct 13 09:03:53 2023 -0400
>>>>>
>>>>>      nfsd: new Kconfig option for legacy client tracking
>>>>>
>>>>>      We've had a number of attempts at different NFSv4 client tracking
>>>>>      methods over the years, but now nfsdcld has emerged as the clear winner
>>>>>      since the others (recoverydir and the usermodehelper upcall) are
>>>>>      problematic.
>>>> [...]
>>>> It sounds like you need to enable nfsdcld in your environment. The old
>>>> recovery tracking methods are deprecated. The only surviving one
>>>> requires the nfsdcld daemon to be running when recovery tracking is
>>>> started. Alternately, you can enable this option in your kernels if you
>>>> want to keep using the deprecated methods in the interim.
>>>
>>> Hmm. Then why didn't this new config option default to "Y" for a while
>>> (say a year or two) before changing the default to off? That would have
>>> prevented people like Paul from running into the problem when running
>>> "olddefconfig". I think that is what Linus would have wanted in a case
>>> like this, but might be totally wrong there (I CCed him, in case he
>>> wants to share his opinion, but maybe he does not care much).
>>
>> That's fair. I recall we believed at the time that very few people
>> if anyone currently use a legacy recovery tracking mechanism, and
>> the workaround, if they do, is easy.
>>
>>> But I guess that's too late now, unless we want to meddle with config
>>> option names. But I guess that might not be worth it after half a year
>>> for something that only causes a warning (aiui).
>>
>> In Paul's case, the default behavior might prevent proper NFSv4
>> state recovery, which is a little more hazardous than a mere
>> warning, IIUC.
>>
>> To my surprise, it often takes quite some time for changes like
>> this to matriculate into mainstream usage, so half a year isn't
>> that long. We might want to change to a more traditional
>> deprecation path (default Y with warning, wait, default N, wait,
>> redact the old code).
> 
> I've no objection if you want to do that.
> 
> I'm more concerned about Paul's setup though. Paul, what distro are you
> running that starts nfsd (and presumably, mountd, etc.), but doesn't
> bother starting nfsdcld?
> 
> Reenabling this for now is an OK workaround, but we need to understand
> where these setups are coming from, and probably do some sort of
> outreach to get them working properly.

Thank you for the explanation. Due to historical reasons we maintain our 
own distribution MarIuX64 [1] and currently run Linux 5.15.x and 6.6.x. 
Installing nfsdcld is no problem, but it would have been nice to make 
this clearer in the error message, so people without being NFSD experts 
getting this message, knew what to do right away. Maybe:

NFSD: Unable to initialize client recovery tracking! (-110) Is nfsdcld 
running? Otherwise enable NFSD_LEGACY_CLIENT_TRACKING.


Kind regards,

Paul


[1]: https://github.molgen.mpg.de/mariux64/bee-files/
[2]: https://github.molgen.mpg.de/mariux64/bee-files/pull/3111

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-05-29 13:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-19 16:50 NFSD: Unable to initialize client recovery tracking! (-110) Paul Menzel
2024-05-21  9:55 ` Paul Menzel
2024-05-21 10:01   ` Jeff Layton
2024-05-24 11:16     ` Linux regression tracking (Thorsten Leemhuis)
2024-05-24 12:46       ` Jeff Layton
2024-05-24 16:09       ` Chuck Lever III
2024-05-29 12:51         ` Linux regression tracking (Thorsten Leemhuis)
2024-05-29 13:13         ` Jeff Layton
2024-05-29 13:16           ` Chuck Lever III
2024-05-29 13:27           ` Paul Menzel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).