Skip to content

All commands fail on systems with UIDs > 2^31: strconv.ParseInt value out of range #4951

@e-gineer

Description

@e-gineer

Problem

On Linux systems with UIDs or GIDs exceeding 2,147,483,647 (common with LDAP/SSSD/AD integration), every steampipe command fails — including steampipe plugin list:

Error: failed to get status: strconv.ParseInt: parsing "2721275558": value out of range

From the logs:

error finding process 7163: failed to get status: strconv.ParseInt: parsing "2721275558": value out of range

Root Cause

The verifyRunning() function in pkg/pluginmanager/state.go calls utils.FindProcess() on every startup to check if the plugin manager is alive. This calls gopsutil's process.Status(), which reads /proc/<pid>/status and parses UIDs with strconv.ParseInt(value, 10, 32) — overflowing for UIDs > int32 max.

The underlying fix is in pipe-fittings: turbot/pipe-fittings#781

Additional cleanup

Steampipe also has a local copy of FindProcess in pkg/utils/pid_exists.go with the same bug. There's already a TODO to consolidate to the pipe-fittings version:

// TODO We should look to use pipe-fittings/v2/utils.PidExists instead of this function.
// https://github.com/turbot/steampipe/issues/4487

Once pipe-fittings is fixed, steampipe should:

  1. Update the pipe-fittings dependency
  2. Remove the local pkg/utils/pid_exists.go and use the pipe-fittings version (per the existing TODO)

Environment

  • Steampipe v2.4.0
  • Ubuntu 24
  • System UID/GID > 2,147,483,647 (enterprise identity management)

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