Conversation
|
@3u13r This makes sense. I wasn’t aware of the FD_SETSIZE limit here. The original idea was to mirror what nft does, but the use cases are a bit different. nft likely never ends up with a large number of open FDs, whereas with this library the parent process could own quite a few more. I assume you didn’t use ppoll because the signal mask isn’t being used and the timeout is immediate? |
Yeah, we run into this because we have a lot of tests, each in their own network namespace testing different nftables things. Also those run concurrently.
Now that you're mentioning it, |
I don’t have a strong preference here. I’m not a maintainer, but using poll seems fine as long as we’re confident there’s no difference compared to ppoll with these inputs. I also don’t see any reason to use a signal mask in this case. |
e19a423 to
f5d2d94
Compare
|
Thanks for the fast review(s). I've guarded the test with the Sadly I get testing errors on the main branch when executing I guess it's due to my kernel version (6.8.0). |
When it comes to the test failures that you're seeing locally, I think you're right to suspect your kernel version as both of these tests use |
pselect6 is limited to FD_SETSIZE, which is 1024 in most cases. When a application holds many fds, this can be reached easily, resulting in a panic when the fd is added to the fd set. Instead of pselect6 use poll, which doesn't have such a limitation.
f5d2d94 to
07c1e85
Compare
pselect6 is limited to FD_SETSIZE, which is 1024 in most cases. When a application holds many fds, this can be reached easily, resulting in a panic when the fd is added to the fd set. Instead of pselect6 use poll, which doesn't have such a limitation.