Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[backport] NFSv3 and NFSv4 fixes and improvements #22909

Merged
merged 5 commits into from Mar 6, 2023

Conversation

thexai
Copy link
Member

@thexai thexai commented Mar 5, 2023

Description

Backport of #22714 and #22897

What is the effect on users?

  • Fixes random NFS4ERR_EXPIRED errors at open files any time.
  • Fixes video playback stalls and closes after pause due insufficient keep alive of NFSv4 session.
  • Fixes slow NFSv4 read when not using file cache due very small read chunk size.

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • None of the above (please explain below)

Checklist:

  • My code follows the Code Guidelines of this project
  • My change requires a change to the documentation, either Doxygen or wiki
  • I have updated the documentation accordingly
  • I have read the Contributing document
  • I have added tests to cover my change
  • All new and existing tests passed

lrusak and others added 5 commits March 5, 2023 17:09
That means the nfsv4 context has expired and needs to be recreated

Signed-off-by: Lukas Rusak <lorusak@gmail.com>
In case an NFSv4 server are configured with low "lese_time" i.e: 30s
the session will expire before receiving the first keep alive and we
will realize it by nfs_read errors here
Retrying with other error codes and force deinit connection may cause
crash, specifically when a file does not exist.

Anyway, NFS4ERR_EXPIRED should not occur now that contexts expiration and keep alives are
handled correctly.
NFSv4 not has maximun chunk size limitation at server side (used
TCP vs UDP in NFSv3, etc.) then 'nfs_get_readmax' returns zero or not
implemented.

Clients must set the chunk size they want to use.
@thexai thexai added Type: Fix non-breaking change which fixes an issue Type: Backport Component: FileSystem Filesystem v20 Nexus labels Mar 5, 2023
@thexai thexai added this to the Nexus 20.1 milestone Mar 5, 2023
@thexai thexai requested review from wsnipex and arnova March 5, 2023 16:18
@thexai thexai changed the title Nfs fixes nexus [backport] NFSv3 and NFSv4 fixes and improvements Mar 5, 2023
@jenkins4kodi

This comment was marked as off-topic.

@thexai thexai merged commit ae03c8e into xbmc:Nexus Mar 6, 2023
@thexai thexai deleted the nfs-fixes-Nexus branch March 9, 2023 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: FileSystem Filesystem Type: Backport Type: Fix non-breaking change which fixes an issue v20 Nexus
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants