Open
Description
Description
Openbsd has a rather low max value for socket receive and send timeouts, much lower than what rtrlib may set after initial sync finished.
The limit seems to be 655 seconds on openbsd 6.
We run into this problem when the refresh interval is larger than 655 Seconds. The RFC recommends 3600.
Steps to reproduce the issue
- Compile rtrlib on openbsd in debug mode
- run live_validation_test manually
- Wait for sync to finish and look for
setting SO_RCVTIMEO failed
Expected results
rtr_mgr should enter state RTR_MGR_ESTABLISHED
after finishing sync
Actual results
rtr_Mgr enters state RTR_MGR_ERROR
because the blocking receive fails, due to setsockopt(…, SO_RCVTIMEO, …)
failing.
An unrelated bug causes rtrlib to hang until retry interval expires. (fixed by #243)
But the under lying problem remains.
A possible fix would be to handle the refresh interval at the fsm level and use much shorter recv timouts.
Versions
Operating System: openbsd 6
rtrlib: current master
Metadata
Metadata
Assignees
Labels
No labels