Skip to content

Artifacts stop pulling without visible failure #2156

Open

Description

@ada-magicat

Sometimes, artifacts get stuck in a state of being "pulled" but no network traffic occurs. Buildstream will never finish or stop trying to pull these artifacts. These pulls never hit timeouts or retries. I can even turn off my network connection and buildstream will still present these as being actively pulled for hours, never showing a failure (even though the network is down).

I have hesitated to open this issue for a while because, unfortunately, I have not found clear reproduction steps for this. This has just occasionally happened for months with no clear pattern. Nothing is logged with default logging options.

Activity

  1. wsalmonct commented on Jul 27, 2026

    @wsalmonct
    Contributor

    I have hesitated to open this issue for a while because, unfortunately, I have not found clear reproduction steps for this.

    This is often the case for bugs between buildstream and buildbox.. They can be very frustrating!

    Its worth noting that all the pulling happens in buildbox-casd.

    So ether buildbox-casd has not noticed, or its failed to let buildstream know.

    @juergbi @ColdrickSotK is it posible for buildbox-casd to fail a pull and not let buildstream know?

  2. juergbi commented on Jul 31, 2026

    @juergbi
    Contributor

    Have you already tried setting keepalive-time (and possibly also request-timeout) as documented in https://docs.buildstream.build/2.7/using_config.html#connection-configuration? gRPC doesn't enable keepalive by default but maybe we should.

  3. juergbi commented on Jul 31, 2026

    @juergbi
    Contributor

    Too aggressive keepalive can cause problems depending on server and possible proxy. I think a default of 5 min (which is also the server side default for GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS) may be reasonable for BuildStream, though, especially considering that this will only apply to active sessions, not some persistent background daemon. It may make sense to keep keepalive disabled by default in buildbox-casd upstream, though, as buildbox-casd may be used as a persistent background daemon where regular pings may not be desired.

  4. ada-magicat commented on Jul 31, 2026

    @ada-magicat
    Author

    @juergbi

    Have you already tried setting keepalive-time (and possibly also request-timeout) as documented in https://docs.buildstream.build/2.7/using_config.html#connection-configuration? gRPC doesn't enable keepalive by default but maybe we should.

    We do this in g-b-m, yes: https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3c6c56f3dfd49073343c1f84a264542b494e3a90/project.conf#L11

    I've seen the bug happen before and after we set those limits though.

    Too aggressive keepalive can cause problems depending on server and possible proxy

    Indeed, setting it too low makes me get nonsense pull failures (as in, it "times out" while pulling normally)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cache serverIssue related to cache server interactions

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions