Skip to content

Conversation

@hiddenalpha
Copy link

I would like to merge this commit to PR_127 but I could not find a way to do so.
Therefore I opened this (yet another) pull request. Basically it
is the same but adding one more commit.

In PR_127 we got miscellaneous improvements. But we do no longer use
poll and therefore are back to the FD_SETSIZE limit of select.

This commit suggests some fine-tuning to PR_127. It does so by
replacing a possible SEGFAULT (aka crashing the whole JVM) by throwing a
java exception instead. This improves the reported error and even
enables user code to react to the situation.

Still not perfect. But IMHO would allow to merge PR_127 if we apply this
addition. We can still improve later (for example as soon there's enough time
to do so).

This does not touch stuff discussed in the java part. It only adds the checks
around FD_SETSIZE.

I did not find that much time for testing.

Roel and others added 6 commits May 30, 2022 22:46
In [PR_127] we got miscellaneous improvements. But we do no longer use
poll and therefore are back to the FD_SETSIZE limit of *select*.

This commit suggests some fine-tuning to [PR_127]. It does so by
replacing a possible SEGFAULT (aka crashing the whole JVM) by throwing a
java exception instead. This improves the reported error and even
enables user code to react to the situation.

Still not perfect. But IMHO good enough for now. We can still improve
later (for example as soon there's enough time to do so).

[PR_127]: java-native#127
@tresf
Copy link

tresf commented Dec 10, 2023

@hiddenalpha,

@pietrygamat would like to begin the next release. Since you've been working on most of the CPP issues, I was hoping we could get some help on what's open, what's closed and if there's anything you'd like to see in the next release from a CPP perspective. :)

@hiddenalpha
Copy link
Author

hiddenalpha commented Dec 13, 2023

Nothing pressing pending for a release from my point of view. Everything should be at least as good as in the previous release -> IMHO go on.

This specific PR here was a draft to contain a few suggestions for another PR which suggested to go back to 'select'. But this causes trouble in our use-case (see SEGFAULT in case of large FDs). For the infinite loop we reported related behavior in #94 and #95 . Back then I concluded that those arise from missing error handling in native code. But I did not further investigate on this. Because as already said, customer had no further interest.

As there was no paying customer left, I decided to instead fix the missing error handling unrelated to the original issue. Just for fun, whenever I was bored.

Maybe I'll cherry-pick some ideas from here over to separate PRs somewhen. But as I do this just-for-fun, there has to be a boring enough evening :)

Contact hiddenalpha

@pietrygamat pietrygamat removed this from the 2.9.6 milestone Dec 15, 2023
@hiddenalpha hiddenalpha deleted the throwExceptionsIfFiledescriptorInvalidForSelect branch July 27, 2025 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants