Skip to content

libnetwork: fix (or replace) usage of github.com/armon/go-radix #43753

@thaJeztah

Description

@thaJeztah

Libnetwork currently uses a very old version of github.com/armon/go-radix. When updating the dependency to a more current version, we found that the way it's used in the libnetwork code is not correct; while there's a proposed fix in the upstream repository, that fix has not been accepted (yet), as it would only prevent one possible scenario, but the library is not written for concurrent use; see armon/go-radix#14 (comment)

It seems like the only way to hit this issue is to be doing concurrent read/write operations without synchronization. This means a delete took place concurrently with a walk. This fix might avoid a particular race condition, but the library itself is not designed for concurrent read/write and there are likely other edge cases that are not handled.

We should look at how the library is used, and;

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions