Skip to content

openbsd setting SO_RCVTIMEO failed, Numerical argument out of domain #244

Open
@mroethke

Description

@mroethke

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

  1. Compile rtrlib on openbsd in debug mode
  2. run live_validation_test manually
  3. 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions