COVESA / COVESA/vsomeip

[BUG]: Use of select in Boost ASIO on QNX limits number of connections silently

Open
#1,069 5 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
1.4k
Forks
826
PR merge metrics
No merged PRs in 30d

Description

### vSomeip Version

v3.6.0

### Boost Version

1.82

### Environment

QNX

### Describe the bug

Boost ASIO uses `select` in QNX which can only support a limited number of FD:

https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.lib_ref/topic/s/select.html

> QNX recommends that you use [poll()](https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.lib_ref/topic/p/poll.html) instead of select() to examine file descriptor sets.

> The FD_SETSIZE setting determines the highest file descriptor number that the fd_set structure supports and must be set to one more than the highest file descriptor number that the fd_set objects use. The default FD_SETSIZE value of 256 is defined in . However, by default, QNX OS allows a maximum of 1000 file descriptors per process, which well exceeds this value. Using poll() instead of select() avoids errors caused by using the default value, and also is more efficient at handling a sparse list of file descriptors.

this causes failure when receiving messages over SOME/IP on QNX when a certain number of connections is reached.

### Reproduction Steps

_No response_

### Expected behaviour

_No response_

### Logs and Screenshots

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the connection-limit failure on QNX with vSomeIP 3.6.0, then inspect how Boost ASIO uses select() and compare it with QNX's poll() guidance. Done means message reception continues beyond the select() file-descriptor limit without silent connection failures, with validation on QNX.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.