Bug 42006 - Ошибка чтения EIO на NFS 4.2 из-за поддержки READ_PLUS
Summary: Ошибка чтения EIO на NFS 4.2 из-за поддержки READ_PLUS
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-std-def (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-21 01:42 MSK by Vitaly Lipatov
Modified: 2022-03-25 18:30 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2022-02-21 01:42:54 MSK
Наткнулся на то, что на ядрах 5.10 при чтении больших (более 1Гб) файлов возникают ошибки чтения

lseek(3, 1360307200, SEEK_SET)          = 1360307200
read(3, 0x559cb8606000, 2048)           = -1 EIO (Input/output error)


Нагуглил, что это похоже на проблему с поддержкой READ_PLUS:

Hmm... If this is NFSv4.2 do you have READ_PLUS turned on or off in
.config? It really is not safe to enable READ_PLUS on 5.10 kernels
since that can cause random memory corruption.

OK, I compiled a kernel without support for READ_PLUS
and the test program magically succeeds.
https://www.spinics.net/lists/kernel/msg3789855.html

NFS Client With Linux 5.10 Adds "READ_PLUS" For Faster Performance
https://www.phoronix.com/scan.php?page=news_item&px=NFS-READ_PLUS-Linux-5.10

[1/3] NFS: Disable READ_PLUS by default
https://www.spinics.net/lists/linux-nfs/msg81213.html
https://patchwork.kernel.org/project/linux-nfs/patch/20201203201841.103294-2-Anna.Schumaker@Netapp.com/


Например, на Fedora добавили патч, отключающий READ_PLUS, и проблемы там нет.

[root@fedora64 boot]# grep READ_PLUS config-*
config-5.13.10-200.fc34.x86_64:# CONFIG_NFS_V4_2_READ_PLUS is not set
config-5.15.6-100.fc34.x86_64:# CONFIG_NFS_V4_2_READ_PLUS is not set
Comment 1 Anton V. Boyarshinov 2022-02-21 10:57:39 MSK
А на 5.15 проблема проявляется? Чтоб понимать -- везде ли отключать или только на 5.10
Comment 2 Sergey Bolshakov 2022-02-21 11:49:07 MSK
(In reply to Anton V. Boyarshinov from comment #1)
> А на 5.15 проблема проявляется? Чтоб понимать -- везде ли отключать или
> только на 5.10
в текущем 5.17-rc5:

config NFS_V4_2_READ_PLUS
        bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
        depends on NFS_V4_2
        default n
        help
         This is intended for developers only. The READ_PLUS operation has
         been shown to have issues under specific conditions and should not
         be used in production.
Comment 3 Vitaly Lipatov 2022-02-21 12:09:56 MSK
(Ответ для Anton V. Boyarshinov на комментарий #1)
> А на 5.15 проблема проявляется? Чтоб понимать -- везде ли отключать или
> только на 5.10
А на 5.10 же нет ещё это ручки. Будет?
На 5.15 READ_PLUS должен быть выключен по умолчанию, как Сергей процитировал.
Comment 4 Anton V. Boyarshinov 2022-02-21 12:43:18 MSK
(Ответ для Vitaly Lipatov на комментарий #3)
> (Ответ для Anton V. Boyarshinov на комментарий #1)
> > А на 5.15 проблема проявляется? Чтоб понимать -- везде ли отключать или
> > только на 5.10
> А на 5.10 же нет ещё это ручки. Будет?
> На 5.15 READ_PLUS должен быть выключен по умолчанию, как Сергей процитировал.

Как нет ручки на 5.10, когда баг про это?
Будет выключено в следующих сборках.
Comment 5 Vitaly Lipatov 2022-02-23 16:14:19 MSK
В ожидании исправленного ядра на NFS-сервере в /etc/nfs.conf
вписал
vers4.2=n
и перезапустил сервис nfs.