Bug #13084
closed
tl_open should handle id_space exhaustion
Added by Patrick Mooney almost 2 years ago.
Updated almost 2 years ago.
Description
This is uptreaming of OS-5957 from SmartOS:
Reported as illumos-joynet#137
The reporter has supplied 3 crash dumps that I've put into thoth.
I think this should be tackled on two fronts. First and foremost tl_open
should switch to using id_alloc_nosleep
in order to fail gracefully when the id space is exhausted. This will prevent threads from becoming uninterruptibly blocked, should the limit of tl streams be reached.
Further in the future, we should evaluate possibilities for splitting the tl
minor space across more granular units. Perhaps per-zone or per-netstack scoping for tl
minor numbers might be acceptable? Further research is required to understand the possible effects of emitting minor numbers which are used by multiple socket instances.
While I have not installed netatalk like in the original bug report, I did boot up a BE with the proposed change and confirmed that tl_open
was using the fallible id_alloc_nosleep
and that AF_UNIX sockets were still functioning as expected.
- Status changed from In Progress to Closed
git commit 1c8449e95a93a750df972545379490366b392934
commit 1c8449e95a93a750df972545379490366b392934
Author: Patrick Mooney <pmooney@pfmooney.com>
Date: 2020-09-01T17:28:57.000Z
13084 tl_open should handle id_space exhaustion
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Ryan Zezeski <ryan.zeseski@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Andrew Stormont <astormont@racktopsystems.com>
Approved by: Robert Mustacchi <rm@fingolfin.org>
Also available in: Atom
PDF