All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mantas Mikulėnas" <grawity@gmail.com>
To: Chuck Lever III <chuck.lever@oracle.com>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: Data corruption with 5.10.x client -> 6.5.x server
Date: Sun, 24 Sep 2023 19:51:05 +0300	[thread overview]
Message-ID: <78c81a97-4324-c2df-27c0-917436ddee07@gmail.com> (raw)
In-Reply-To: <9691788F-2B62-4EB5-8879-CEDABD1B9D4B@oracle.com>

[-- Attachment #1: Type: text/plain, Size: 2497 bytes --]

On 2023-09-24 17:44, Chuck Lever III wrote:
> 
> 
>> On Sep 24, 2023, at 10:32 AM, Mantas Mikulėnas <grawity@gmail.com> wrote:
>>
>> On 2023-09-24 16:28, Chuck Lever III wrote:
>>>> On Sep 24, 2023, at 9:07 AM, Mantas Mikulėnas <grawity@gmail.com> wrote:
>>>>
>>>> I've recently upgraded my home NFS server from 6.4.12 to 6.5.4 (running Arch Linux x86_64).
>>>>
>>>> Now, when I'm accessing the server over NFSv4.2 from a client that's running 5.10.0 (32-bit x86, Debian 11), if the mount is using sec=krb5i or sec=krb5p, trying to read a file that's <= 4092 bytes in size will return all-zero data. (That is, `hexdump -C file` shows "00 00 00...") Files that are 4093 bytes or larger seem to be unaffected.
>>>>
>>>> Only sec=krb5i/krb5p are affected by this – plain sec=krb5 (or sec=sys for that matter) seems to work without any problems.
>>>>
>>>> Newer clients (like 6.1.x or 6.4.x) don't seem to have any issues, it's only 5.10.0 that does... though it might also be that the client is 32-bit, but the same client did work previously when the server was running older kernels, so I still suspect 6.5.x on the server being the problem.
>>>>
>>>> Upgrading to 6.6.0-rc2 on the server hasn't changed anything.
>>>> The server is using Btrfs but I've tested with tmpfs as well.
>>> I'm guessing proto=tcp as well (as opposed to proto=rdma).
>>
>> Yes, it's TCP.
>>
>> (I do have RDMA set up between two of the 6.5.x server systems, but in this case all the clients I've tested were TCP-only, and the home server that I originally noticed the problem with doesn't have RDMA at all.)
>>
>>> Does the problem go away with vers=4.1 ?
>>
>> No, it doesn't (neither with 4.0).
>>
>>> Can you capture network traffic during the failure? Use sec=krb5i so
>>> we can see the RPC payloads. On the client:
>>> # tcpdump -iany -s0 -w/tmp/sniffer.pcap
>>
>> Attached. (The script I've been using for testing mounts with -o sec=krb5i, cats three files, then unmounts.)<nfs_krb5i.pcap>
> 
> I see three NFS READs in the capture.
> 
> The first READ payload is all zeroes. The second payload contains
> "Hello World (4093 bytes)" repeatedly, and the third contains
> "Hello World (4096 bytes)" repeatedly.

Right, whereas on the server, the first file is filled with "Hello World 
(4092 bytes)" as I originally tried to narrow down the issue.

Meanwhile, 6.4.x (Arch) clients don't seem to be having any problems 
with the same server, and with seemingly the same mount options.

Thanks for looking into it!

[-- Attachment #2: nfs_krb5i_working_6.4client.pcap --]
[-- Type: application/octet-stream, Size: 47504 bytes --]

  reply	other threads:[~2023-09-24 16:51 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-24 13:07 Data corruption with 5.10.x client -> 6.5.x server Mantas Mikulėnas
2023-09-24 13:28 ` Chuck Lever III
2023-09-24 14:32   ` Mantas Mikulėnas
2023-09-24 14:44     ` Chuck Lever III
2023-09-24 16:51       ` Mantas Mikulėnas [this message]
2023-09-24 18:24         ` Chuck Lever III
2023-09-25 19:22           ` Chuck Lever III
2023-09-26  4:41             ` Mantas Mikulėnas
2023-09-26 13:57               ` Chuck Lever III
2023-09-26 21:52                 ` Olga Kornievskaia
2023-09-26 22:55                   ` Chuck Lever III
2023-09-27  8:45                 ` Mantas Mikulėnas
2023-09-27  9:41                   ` Mantas Mikulėnas
2023-09-27 13:08                     ` Chuck Lever III
2023-09-27 13:30 ` Linux regression tracking #adding (Thorsten Leemhuis)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=78c81a97-4324-c2df-27c0-917436ddee07@gmail.com \
    --to=grawity@gmail.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.