Skip to content

countme: projectbluefin-countme never reports Bluefin Server (DDI, no bootc) #1399

Closed

Description

@jeefy

What

Bluefin Server ships projectbluefin-countme from system_files/shared (projectbluefin/server, re-tracked to common main at e416284). On that image the reporter never counts anything, for four independent reasons:

  1. Scope. The script exits before any network call unless image-name starts with dakota or utah. Server's image-info.json has image-name: server.
  2. Stream source. The stream comes only from bootc status; with no booted bootc image the script exits. Server is a DDI updated by systemd-sysupdate and has no bootc. It now declares its stream in image-info.json as image-tag: latest (Bluefin Server reports no stream identifier to countme server#97: its transfers follow GitHub Releases latest and nothing else), but the reporter never reads image-tag.
  3. Stream allowlist. Even from bootc, any tag other than stable/testing becomes unknown, so latest could not be reported as-is.
  4. Unit conditions. ConditionPathExists=/run/ostree-booted (absent on a DDI) and ConditionDirectoryNotEmpty=/home (empty on a server) both skip the service.

The previous bluefin-countme (#1112 branch) also had ConditionPathExists=/run/ostree-booted, so the server image has never counted.

Evidence (QEMU, Bluefin Server 26.09.2, no real pings sent)

PROBE countme-info={"image-name":"server","image-tag":"latest"}
PROBE countme-timer=enabled active ostree-booted=no bootc=absent
PROBE-LOG countme: Send daily active-system ping to Project Bluefin skipped, unmet condition check ConditionDirectoryNotEmpty=/home
PROBE countme-new=+ name=server + exit 0

What fixed would look like

This is a scope decision for maintainers, the same kind as the Utah sign-off on #1205. If server is to be counted:

  • add server to the name allowlist (and to docs.projectbluefin.io/analytics)
  • when no bootc image is booted, take the stream from image-info.json image-tag only for images that are not bootc images, never as a fallback for bootc images (where the baked tag is the compose tag)
  • accept latest as a stream
  • let the unit run without /run/ostree-booted, for example by moving the bootc check into the script, and reconsider ConditionDirectoryNotEmpty=/home for server images

Server needs no change after this: re-tracking elements/bluefin-server/os-countme.bst picks it up.

Activity

  1. added
    needs-decisionWaiting on a maintainer decision; not contributor work until a human clears the label
    on Oct 6, 2026
  2. hivecommons-hive commented on Oct 6, 2026

    @hivecommons-hive
    Contributor

    What to reply

    • /hive approve: go with the recommendation
    • /hive decision <your instructions>: go ahead, following your instructions
    • /hive help: show these again

    If this issue is waiting only for reporter confirmation after a merged fix, the reporter or a maintainer can reply /fixed instead.

    Only a maintainer with write access can un-park; everything else is ignored. Full command reference: https://github.com/hivecommons/hive/blob/v5/src/docs/maintainer-commands.md.

  3. added a commit that references this issue on Oct 6, 2026
  4. added
    needs-humanHuman input is required before Hive may start new implementation work.
    needs-kindA maintainer must classify this issue; the intake source did not establish its kind.
    on Oct 6, 2026
  5. github-actions commented on Oct 6, 2026

    @github-actions
    Contributor

    Status: Accepted

    Maintainer

    • Assign a contributor, or route this to the existing PR owner.
    • After the actual fix merges, add awaiting-release.
    • Existing work: PR #1419. Don't start a duplicate.
    • Next: Assign someone → implementation.

    Reporter

    Reporter action: No action needed unless information is requested.

  6. added
    triage/acceptedScope accepted; ready for work. Use `/triage accepted`.
    on Oct 6, 2026
  7. added and removed
    needs-humanHuman input is required before Hive may start new implementation work.
    needs-decisionWaiting on a maintainer decision; not contributor work until a human clears the label
    on Oct 6, 2026
  8. removed
    needs-kindA maintainer must classify this issue; the intake source did not establish its kind.
    on Oct 6, 2026
  9. added
    🐝 covered by PRHive verified that an open PR references or claims this issue; still actionable until confirmed
    on Oct 7, 2026
  10. added
    hive/likely-doneHive verified that a merged PR references or claims this issue; pending confirmation
    and removed
    🐝 covered by PRHive verified that an open PR references or claims this issue; still actionable until confirmed
    on Oct 8, 2026
  11. added a commit that references this issue on Oct 10, 2026
    ef7b3b3
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

    hive/likely-doneHive verified that a merged PR references or claims this issue; pending confirmationkind/featureA new capability.triage/acceptedScope accepted; ready for work. Use `/triage accepted`.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions