Fwd: Memleaks in offset_ctx->xa (shmem)

From: Bagas Sanjaya
Date: Tue Oct 24 2023 - 03:55:40 EST


Hi,

I notice a regression report on Bugzilla [1]. Quoting from it:

> We have been getting memleaks in offset_ctx->xa in our networking tests:
>
> unreferenced object 0xffff8881004cd080 (size 576):
> comm "systemd", pid 1, jiffies 4294893373 (age 1992.864s)
> hex dump (first 32 bytes):
> 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 38 5c 7c 02 81 88 ff ff 98 d0 4c 00 81 88 ff ff 8\|.......L.....
> backtrace:
> [<000000000f554608>] xas_alloc+0x306/0x430
> [<0000000075537d52>] xas_create+0x4b4/0xc80
> [<00000000a927aab2>] xas_store+0x73/0x1680
> [<0000000020a61203>] __xa_alloc+0x1d8/0x2d0
> [<00000000ae300af2>] __xa_alloc_cyclic+0xf1/0x310
> [<000000001032332c>] simple_offset_add+0xd8/0x170
> [<0000000073229fad>] shmem_mknod+0xbf/0x180
> [<00000000242520ce>] vfs_mknod+0x3b0/0x5c0
> [<000000001ef218dd>] unix_bind+0x2c2/0xdb0
> [<0000000009b9a8dd>] __sys_bind+0x127/0x1e0
> [<000000003c949fbb>] __x64_sys_bind+0x6e/0xb0
> [<00000000b8a767c7>] do_syscall_64+0x3d/0x90
> [<000000006132ae0d>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
>
> Memleak trace points to some syscall performed by systemd and none of our tests do anything more advanced with it than 'systemctl restart ovs-vswitchd'. Basically it is a setup with Fedora and an upstream kernel that executes bunch of network offload tests with Open vSwitch, iproute2 tc, Linux bridge, etc.
>
> It looks like those may be caused by recent commit 6faddda69f62 ("libfs: Add directory operations for stable offsets") but we don't have a proper reproduction, just sometimes arbitrary getting the memleak complains during/after the regression run.

See Bugzilla for the full thread.

Anyway, I'm adding it to regzbot:

#regzbot introduced: 6faddda69f623d https://bugzilla.kernel.org/show_bug.cgi?id=218039
#regzbot title: stable offsets directory operation support triggers offset_ctx->xa memory leak

Thanks.

[1]: https://bugzilla.kernel.org/show_bug.cgi?id=218039

--
An old man doll... just what I always wanted! - Clara