[OpenAFS-devel] Kernel BUG on Linux 6.5.3

MS Vitale mvitale@sinenomine.net
Thu, 14 Sep 2023 16:06:31 -0400


Michael,

Thank you for the report.  I have not seen this before.


> On Sep 14, 2023, at 2:55 PM, Michael La=C3=9F <lass@mail.upb.de> wrote:
>=20
> on Arch Linux we are observing a kernel BUG with Linux 6.5.3 and a
> patched OpenAFS 1.8.10. Patched means that it contains the following
> changes on top of the 1.8.10 release:
>=20
> fea2bd506 linux: Replace fop iterate with fop iterate_shared
> 01d7316f6 hcrypto: rename abort to _afscrypto_abort
> aef0016df Linux 6.5: Use register_sysctl()
> 48e0bd7d9 LINUX: Make sysctl definitions more concise
> 04083bc9a Linux 6.5: Replace generic_file_splice_read
>=20
> Here's an excerpt of the error:
>=20
> Sep 13 19:57:54.727778 pcitds29 kernel: detected buffer overflow in
> strlcpy
> Sep 13 19:57:54.728304 pcitds29 kernel: ------------[ cut here ]-------
> -----
> Sep 13 19:57:54.740823 pcitds29 kernel: kernel BUG at
> lib/string_helpers.c:1031!
> Sep 13 19:57:54.740881 pcitds29 kernel: invalid opcode: 0000 [#1]
> PREEMPT SMP NOPTI
> [...]
> Sep 13 19:57:54.741049 pcitds29 kernel: Call Trace:
> Sep 13 19:57:54.741056 pcitds29 kernel:  <TASK>
> Sep 13 19:57:54.741062 pcitds29 kernel:  ? die+0x128/0x130
> Sep 13 19:57:54.741069 pcitds29 kernel:  ? do_trap+0xc9/0x170
> Sep 13 19:57:54.741074 pcitds29 kernel:  ? fortify_panic+0x13/0x20
> Sep 13 19:57:54.741080 pcitds29 kernel:  ? fortify_panic+0x13/0x20
> Sep 13 19:57:54.741087 pcitds29 kernel:  ? exc_invalid_op+0x92/0xc0
> Sep 13 19:57:54.741093 pcitds29 kernel:  ? fortify_panic+0x13/0x20
> Sep 13 19:57:54.741099 pcitds29 kernel:  ? asm_exc_invalid_op+0x1a/0x20
> Sep 13 19:57:54.741164 pcitds29 kernel:  ? fortify_panic+0x13/0x20
> Sep 13 19:57:54.741172 pcitds29 kernel:  ? fortify_panic+0x13/0x20
> Sep 13 19:57:54.741179 pcitds29 kernel:=20
> afs_dynroot_addDirEnt+0x1ef/0x210 [openafs
> 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741185 pcitds29 kernel:  afs_GetDynroot+0x8dd/0xc50
> [openafs 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741192 pcitds29 kernel:=20
> afs_DynrootNewVnode+0x369/0x960 [openafs
> 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741199 pcitds29 kernel:  afs_GetVCache+0x234/0x540
> [openafs 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741205 pcitds29 kernel:  afs_fill_super+0x2b0/0x3d0
> [openafs 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741210 pcitds29 kernel:  ?
> __pfx_afs_fill_super+0x10/0x10 [openafs
> 3f311692cd9b17721fc863c5e870abbfd609f083]
> Sep 13 19:57:54.741215 pcitds29 kernel:  mount_nodev+0x1a0/0x250
> Sep 13 19:57:54.741223 pcitds29 kernel:  legacy_get_tree+0x28/0x50
> Sep 13 19:57:54.741229 pcitds29 kernel:  vfs_get_tree+0x26/0xd0
> Sep 13 19:57:54.741236 pcitds29 kernel:  path_mount+0x4bb/0xb70
> Sep 13 19:57:54.741240 pcitds29 kernel:  __x64_sys_mount+0x11a/0x150
> Sep 13 19:57:54.741245 pcitds29 kernel:  do_syscall_64+0x5d/0x90
> Sep 13 19:57:54.741252 pcitds29 kernel:  ?
> do_user_addr_fault+0x2cd/0x9e0
> Sep 13 19:57:54.741259 pcitds29 kernel:  ? exc_page_fault+0x7f/0x180
> Sep 13 19:57:54.741264 pcitds29 kernel:=20
> entry_SYSCALL_64_after_hwframe+0x6e/0xd8
>=20
> The full error can be seen in this post:
> https://aur.archlinux.org/packages/openafs#comment-933721
>=20
> It might be that dirSize is not computed correctly in
> afs_RebuildDynroot. Although this function is not shown in the trace, I
> think it is the only way to go from afs_GetDynroot to
> afs_dynroot_addDirEnt.

I agree that this is probably the failure path.

> The strlcpy in afs_dynroot_addDirEnt was introduced in 14938 (15243 on
> 1.8.x) but it could very well be that this now only shows an error that
> was there before.
>=20
> Or did I maybe miss an important patch for 1.8.10 on Linux 6.5?

I didn't look closely, but I doubt you are missing anything.
Instead, this might be an edge case provoked by site-specific contents of d=
ynroot.
Could you please supply a list of all your cell names from CellServDB
and any aliases from CellAlias?

Thanks,
--
Mark Vitale
OpenAFS Release Team