Re: [syzbot] [net?] possible deadlock in inet6_getname
From: Fernando Fernandez Mancera
Date: Tue Feb 17 2026 - 15:28:08 EST
On 2/17/26 7:58 PM, Gerd Rausch wrote:
Hi,
+Allison
On 2026-02-17 09:28, Gerd Rausch wrote:
On 2026-02-17 09:19, Fernando Fernandez Mancera wrote:
On 2/17/26 6:13 PM, Gerd Rausch wrote:
If someone were to change the code to pass in "fan_out == true"
from a context not already holding a socket lock,
would they remember to change rds_tcp_conn_slots_available()
to acquire that lock?
Usually kernel requires the developer to understand when do they need to acquire a lock or not.
Anyway, what would you suggest? To check whether we have acquired the lock or not and do it conditionally?>
Something along those lines.
Either a "_locked" version of "conn_slots_available" function pointer,
a parameter, or a check.
What you suggested is fine though for the immediate syzbot need.
FWIW, in UEK (the modified Linux kernel that Oracle uses),
this issue reported by syzbot was addressed differently:
https://github.com/oracle/linux-uek/commit/a94abc444c487
The commit under discussion here originally came from:
https://github.com/oracle/linux-uek/commit/ebf71f5b6c29c
and pre-dates:
9dfc685e0262 ("inet: remove races in inet{6}_getname()")
which is why UEK didn't have this deadlock issue reported by syszbot.
If the objective is to keep divergence of UEK and Upstream to a minimum,
it may be worthwhile to consider adopting the same fix we carry in UEK.
I see, I don't really have a strong opinion here. Although, the solution at UEK seems a bit overkill to me. As RDS do not really need all the information that inet_getname() provides. It just needs the source port and it can be used without acquiring the lock (because it was already done).
The ideal solution to me would be the patch proposed here [1] + a comment on the shutdown path to remember the developer that acquiring a lock is needed to enable fan-out. Having said that, I cannot tell if it would be better to keep divergence of UEK and Upstream or be more efficient. I am leaving this dilemma to you and Allison and any other maintainer that would like to chime in.
Just let me know so I can a send a v2 of my proposed patch with a more detailed commit message and also a comment on the mentioned path.
[1] https://lore.kernel.org/netdev/20260216120804.14840-1-fmancera@xxxxxxx/
Thanks,
Fernando.
Thanks,
Gerd