Skip to content

ls-apis missed the invalid dependency between sled agent and dpd #9706

@davepacheco

Description

@davepacheco

See #9704 for details. We made dpd server-side-versioned, but that's not really valid. ls-apis should catch this.

I believe the problem here is that its DAG check does not look at deployment units. It finds no cycle in the graph of API dependencies among components (the Rust programs that expose an API). The problem is the cycle in the graph of API dependencies among deployment units -- namely: host OS depends on itself.

It won't be as simple as just adding this check because there are a lot of acceptable dependencies here. In particular, a bunch of stuff in the switch zone talks to other stuff in the same switch zone. That's always okay. Some stuff in the switch zone talks to sled agent, but it's always the local one. Unfortunately, the tool can't tell statically which instances a client is talking to, so we're going to just have to vet these things and add overrides for these cases.

It would be interesting to know if the proposed solutions for #8770 would have caught this.

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