[SRU][J][I][F][PATCH 0/1] Null Pointer issue in nfs code running Ubuntu on IBM Z (LP: 1968096)
frank.heimes at canonical.com
frank.heimes at canonical.com
Tue May 17 05:45:59 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1968096
SRU Justification:
[Impact]
* The kernel crashed under load with a null pointer issue in nfs code:
[556585.270959] Krnl Code:#0000000000000000: 0000 illegal
>0000000000000002: 0000 illegal
0000000000000004: 0000 illegal
0000000000000006: 0000 illegal
0000000000000008: 0000 illegal
000000000000000a: 0000 illegal
000000000000000c: 0000 illegal
000000000000000e: 0000 illegal
[556585.270967] Call Trace:
[556585.270982] ([<000003ff80d6fb1a>] rpcauth_lookup_credcache+0x5a/0x300 [sunrpc])
[556585.270993] [<000003ff80e1182c>] nfs_ctx_key_to_expire+0xec/0x130 [nfs]
[556585.271004] [<000003ff80e1189c>] nfs_key_timeout_notify+0x2c/0x70 [nfs]
[556585.271014] [<000003ff80dfdf7e>] nfs_file_write+0x3e/0x320 [nfs]
[556585.271016] [<00000028165944a8>] new_sync_write+0x118/0x1b0
[556585.271017] [<0000002816594ee0>] vfs_write+0xb0/0x1b0
[556585.271019] [<0000002816596a1e>] ksys_pwrite64+0x7e/0xc0
[556585.271021] [<0000002816bb26b2>] system_call+0x2a6/0x2c8
* Several dumps were generated and shared with Canonical.
* Analysis (done by kernel and SEG) point to refcount leaks fixed,
that are already fixed in the following commit/fix:
[Fix]
* ca05cbae2a0468e5d78e9b4605936a8bf5da328b ca05cbae2a04 "NFS: Fix up nfs_ctx_key_to_expire()"
[Test Case]
* There is unfortunately no reproducer or trigger available for this issue.
* It just happens now and then under higher load.
* A patched kernel (focal 5.4 and bionic 5.4-hwe) were created and
ran for more than a week in a special staging environment (at IBM)
without further crashes.
* Hence the test and verification will be done by the IBM Z team.
[Where problems could occur]
* The inode handling can become broken, in case the changes
on the pointers are erroneous.
* Problems with the authentication and/or the credentials could occur
due to the modifications in put_rpccred, rpc_cred and rpc_auth.
* The expiration of the cached credentials could be harmed as well,
due to the changes in nfs_ctx_key_to_expire.
* The different pointer artihmetic may cause further issues - wrong
or null pointer references.
* Positive is that the original commit was brought upstream by nfs experts.
* A patched test kernel sustained day long runs under load in a staging
and test environment.
* The author of the upstream commit/patch is well known in the NFS area.
[Other]
* The Salesforce Case Number 00334334 is associated with this bug.
* Commit ca05cbae2a04 was upstream accepted with 5.16-rc1.
* But commit ca05cbae2a04 was unfortunately not tagged as stable,
hence it was not picked automatically.
* Since kinetic's (22.10) target kernel is 5.18,
it will have the patch included,
hence no dedicated PATCH request for kinetic.
Trond Myklebust (1):
NFS: Fix up nfs_ctx_key_to_expire()
fs/nfs/inode.c | 4 ++--
fs/nfs/write.c | 41 ++++++++++++++++++++++++++++-------------
include/linux/nfs_fs.h | 2 +-
3 files changed, 31 insertions(+), 16 deletions(-)
--
2.25.1
More information about the kernel-team
mailing list