Skip to content

Absent optional extensions classify as PERMISSIONS/NO_PERMISSIONS instead of the named non-fatal skip the changelog promises #3240

Closed

Description

@erikdarlingdata

On a stock self-hosted PostgreSQL 18.4 with no optional extensions installed (the normal starting state the product's own docs call fine: "no extension is required to start"), five collectors log status = PERMISSIONS on every cycle and the Collection Health surface bands them NO_PERMISSIONS:

collector error SQLSTATE
pg_buffer_usage relation "public.pg_buffercache" does not exist 42P01
pg_index_bloat function public.pgstatindex(regclass) does not exist 42883
pg_kernel_stats function public.pg_stat_kcache() does not exist 42883
pg_predicate_stats function public.pg_qualstats() does not exist 42883
pg_wait_sampling relation "pg_wait_sampling_profile" does not exist 42P01

Every error message even says "the source object does not exist on this target" — while the status says PERMISSIONS and the shared hint says "pg_monitor covers every collector here; check that it is granted." A grant will fix none of these; installing the extension would.

The design already disagrees with the behavior: #2603's changelog entries say pg_wait_sampling "degrades to a named non-fatal skip" for an absent module and pg_qualstats-less databases "degrade to a named non-fatal skip"; #2546 built the precondition miss vocabulary for exactly this shape; and the extension-availability collector (#2545) is already collecting the ground truth every cycle. 42P01/42883 from these sources should classify as the precondition/extension-missing kind, with the extension name as the remedy — not as a permissions failure.

Operator impact: a minimal self-hosted target's health page shows 7 red NO_PERMISSIONS collectors (these 5 plus the two real pg_read_file ones from the sibling issue), which reads as "your grants are broken" when the true state is "one real grant gap, five optional extensions you may not even want."

Observed on the 20260910 nightly (store v114), dogfood target PG18: 57+ PERMISSIONS rows each since 2026-09-07, statuses unchanged after the v104→v114 upgrade.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AtjWJJ3NnSkDSrPBsGywoZ

Activity

  1. erikdarlingdata commented on Sep 10, 2026

    @erikdarlingdata
    OwnerAuthor

    Fixed by PR #3263 (absent declared extensions record EXTENSION_MISSING with the CREATE EXTENSION remedy instead of PERMISSIONS; new health band wired through all five banding reads and the MCP precondition vocabulary), merged to dev at 4c8b159. Live verification against the PG18 dogfood target follows with the next nightly reinstall.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions