Skip to content
This repository was archived by the owner on Sep 21, 2020. It is now read-only.
This repository was archived by the owner on Sep 21, 2020. It is now read-only.

NetworkTables writes hang if flush is used more often than the update rate #275

@virtuald

Description

@virtuald

If a user calls flush lots of times faster than the update rate, and then stops calling flush, the dispatcher won't send new values to the network connections for a potentially long period of time. It does not affect reads.

I ran into this with pynetworktables, but haven't yet verified the issue with ntcore itself. It's pretty easy to see at

m_flush_cv.wait_until(flush_lock, timeout_time,
. Every time a flush occurs, the timeout period is incremented by the update rate.

This is a really difficult bug to trigger, and I don't expect many users will run into it, so I don't recommend a fix released until after CMP. For users that may be affected by this bug, a workaround is to continue calling flush periodically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions