SRQL: adding comprehensive tests #2426

Merged
mfreeman451 merged 4 commits from refs/pull/2426/head into main 2025-11-19 08:40:06 +00:00
mfreeman451 commented 2025-11-19 07:43:54 +00:00 (Migrated from github.com)
Owner

Imported from GitHub pull request.

Original GitHub pull request: #1958
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/1958
Original created: 2025-11-19T07:43:54Z
Original updated: 2025-11-19T08:40:41Z
Original head: carverauto/serviceradar:srql/comp_tests
Original base: main
Original merged: 2025-11-19T08:40:06Z by @mfreeman451

User description

IMPORTANT: Please sign the Developer Certificate of Origin

Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:

Signed-off-by: J. Doe <j.doe@domain.com>

Describe your changes

Code checklist before requesting a review

  • I have signed the DCO?
  • The build completes without errors?
  • All tests are passing when running make test?

PR Type

Enhancement, Tests


Description

  • Add comparison operators (>, >=, <, <=) to SRQL parser and query builders

  • Implement range filtering for numeric fields across all query modules

  • Add comprehensive integration tests covering all SRQL entities

  • Refactor agent host resolution with dependency injection for testability

  • Expand test fixtures with complete schema and seed data for all entities


Diagram Walkthrough

flowchart LR
  Parser["Parser: Add FilterOp variants<br/>(Gt, Gte, Lt, Lte)"]
  BuildFilter["build_filter: Extract operators<br/>from scalar values"]
  QueryModules["Query Modules: Implement<br/>range filter logic"]
  Tests["Comprehensive Tests:<br/>All entities + fixtures"]
  
  Parser --> BuildFilter
  BuildFilter --> QueryModules
  QueryModules --> Tests

File Walkthrough

Relevant files
Enhancement
6 files
parser.rs
Add comparison operators to FilterOp enum                               
+21/-9   
cpu_metrics.rs
Implement range filtering for usage_percent field               
+52/-8   
interfaces.rs
Remove if_index equality filter, add error handling           
+6/-10   
otel_metrics.rs
Support text array bindings and range operators                   
+17/-10 
numeric_clause.rs
Implement Gt, Gte, Lt, Lte SQL generation                               
agent_poller.go
Inject lookup function for host resolution testability     
+7/-3     
Error handling
3 files
logs.rs
Add error handling for unsupported operators                         
+6/-0     
trace_summaries.rs
Add error handling for unsupported operators                         
+7/-0     
mod.rs
Add error handling in text filter macros                                 
+12/-0   
Tests
4 files
comprehensive_queries.rs
New comprehensive integration test suite                                 
+90/-0   
schema.sql
Add complete schema for all SRQL entities                               
+214/-0 
seed.sql
Add seed data for pollers, services, metrics, logs, traces
+90/-0   
agent_poller_test.go
Add mock lookup function and test cases                                   
+7/-2     
Miscellaneous
1 files
harness.rs
Add dead_code allow attribute to unused method                     
+1/-0     
Configuration changes
1 files
BUILD.bazel
Add comprehensive_queries test target configuration           
+20/-0   
Formatting
1 files
poller.go
Remove trailing blank line in lookupHostIPs function         
+0/-1     
Documentation
2 files
srql-language-reference.md
Document range query operators and syntax                               
+5/-0     
spec.md
Add comprehensive entity coverage requirement                       
+8/-0     

Imported from GitHub pull request. Original GitHub pull request: #1958 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/pull/1958 Original created: 2025-11-19T07:43:54Z Original updated: 2025-11-19T08:40:41Z Original head: carverauto/serviceradar:srql/comp_tests Original base: main Original merged: 2025-11-19T08:40:06Z by @mfreeman451 --- ### **User description** ## IMPORTANT: Please sign the Developer Certificate of Origin Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include a [DCO sign-off statement]( https://developercertificate.org/) indicating the DCO acceptance in one commit message. Here is an example DCO Signed-off-by line in a commit message: ``` Signed-off-by: J. Doe <j.doe@domain.com> ``` ## Describe your changes ## Issue ticket number and link ## Code checklist before requesting a review - [ ] I have signed the DCO? - [ ] The build completes without errors? - [ ] All tests are passing when running make test? ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Add comparison operators (>, >=, <, <=) to SRQL parser and query builders - Implement range filtering for numeric fields across all query modules - Add comprehensive integration tests covering all SRQL entities - Refactor agent host resolution with dependency injection for testability - Expand test fixtures with complete schema and seed data for all entities ___ ### Diagram Walkthrough ```mermaid flowchart LR Parser["Parser: Add FilterOp variants<br/>(Gt, Gte, Lt, Lte)"] BuildFilter["build_filter: Extract operators<br/>from scalar values"] QueryModules["Query Modules: Implement<br/>range filter logic"] Tests["Comprehensive Tests:<br/>All entities + fixtures"] Parser --> BuildFilter BuildFilter --> QueryModules QueryModules --> Tests ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>6 files</summary><table> <tr> <td><strong>parser.rs</strong><dd><code>Add comparison operators to FilterOp enum</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-b2edf55d1721185349ecddb2f4eacc42e0dfcae19b6c2bc638602f187da67e66">+21/-9</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>cpu_metrics.rs</strong><dd><code>Implement range filtering for usage_percent field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-400c860c805cd3e1a5e7f7c42cece63cce3e62c1f3fd8b49a5803e26b40fe31e">+52/-8</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>interfaces.rs</strong><dd><code>Remove if_index equality filter, add error handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-1ec833d4525fb2806523888b8c57b76ca8dd2ab70539368ccecc4d262769c8c5">+6/-10</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>otel_metrics.rs</strong><dd><code>Support text array bindings and range operators</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-8106bfa2099b8a6d945b338532f8b1108467e2f0592ddbd64d546fcbce3e3613">+17/-10</a>&nbsp; </td> </tr> <tr> <td><strong>numeric_clause.rs</strong><dd><code>Implement Gt, Gte, Lt, Lte SQL generation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href=""></a></td> </tr> <tr> <td><strong>agent_poller.go</strong><dd><code>Inject lookup function for host resolution testability</code>&nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-7cdaae416a1e7b5d39ad75f138c49fa0aca12fc38e8ab0b26bb59c64446da15c">+7/-3</a>&nbsp; &nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Error handling</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>logs.rs</strong><dd><code>Add error handling for unsupported operators</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-f4d3b33667f2e79a6ebe4cfff931f93c728d9a81c305ac13586e623850a504db">+6/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>trace_summaries.rs</strong><dd><code>Add error handling for unsupported operators</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-ff98619eb5dc4d75205d1797477e9e2880f42081e8d0c61d6fd1d6e5926b72fa">+7/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>mod.rs</strong><dd><code>Add error handling in text filter macros</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-393e3fa3d0e41741834cd7cd398a06111ab7b141ae6caca7a5dcc0e036172491">+12/-0</a>&nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>comprehensive_queries.rs</strong><dd><code>New comprehensive integration test suite</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8c">+90/-0</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>schema.sql</strong><dd><code>Add complete schema for all SRQL entities</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-ce14e9d31fb318e6b693bef44d6097d9ab1bc13d028ee32e603648aa9370f044">+214/-0</a>&nbsp; </td> </tr> <tr> <td><strong>seed.sql</strong><dd><code>Add seed data for pollers, services, metrics, logs, traces</code></dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-1de433f1e0e2be718b04d148299c8f2c8c46a1f9c0b452f55bc1067e82b4edc1">+90/-0</a>&nbsp; &nbsp; </td> </tr> <tr> <td><strong>agent_poller_test.go</strong><dd><code>Add mock lookup function and test cases</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-3b72f1c80958942904f082df21f74bb67bde710581174e9e0aa1dba82bd7971a">+7/-2</a>&nbsp; &nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>harness.rs</strong><dd><code>Add dead_code allow attribute to unused method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-f15ba86798901e9218b7310fbeae763be61ab6ccf3fe592a79d63eda02eea8b4">+1/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>BUILD.bazel</strong><dd><code>Add comprehensive_queries test target configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-92fd182413864e6ff93d5dd84e774dd0feab2d73c7e7a56f3519e76b121dd8f7">+20/-0</a>&nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>1 files</summary><table> <tr> <td><strong>poller.go</strong><dd><code>Remove trailing blank line in lookupHostIPs function</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-28a10dea1596540e55ce9a8b68bd1af3d96bd4634f6def668643892cef25a086">+0/-1</a>&nbsp; &nbsp; &nbsp; </td> </tr> </table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>srql-language-reference.md</strong><dd><code>Document range query operators and syntax</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-7fa04d96755318e393180aaae41cb1374c1da332b3fca76c29e443fd7146ef5f">+5/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> <tr> <td><strong>spec.md</strong><dd><code>Add comprehensive entity coverage requirement</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td> <td><a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-e14559d7bc9392db00b7d08e31b875dd4fbe0eb15538a04ec4e9dbd8b342ad8c">+8/-0</a>&nbsp; &nbsp; &nbsp; </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___
qodo-code-review[bot] commented 2025-11-19 07:44:46 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551255426
Original created: 2025-11-19T07:44:46Z

PR Compliance Guide 🔍

(Compliance updated until commit github.com/carverauto/serviceradar@98038c941d)

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
Missing audit logs: New range filtering paths for numeric fields execute without any added auditing/logging of
critical queries or outcomes, so it is unclear whether these actions are captured for
audit trails.

Referred Code
match filter.op {
    FilterOp::Eq => query = query.filter(col_usage_percent.eq(value)),
    FilterOp::NotEq => query = query.filter(col_usage_percent.ne(value)),
    FilterOp::Gt => query = query.filter(col_usage_percent.gt(value)),
    FilterOp::Gte => query = query.filter(col_usage_percent.ge(value)),
    FilterOp::Lt => query = query.filter(col_usage_percent.lt(value)),
    FilterOp::Lte => query = query.filter(col_usage_percent.le(value)),
    _ => {
        return Err(ServiceError::InvalidRequest(
            "usage_percent filter does not support this operator".into(),
        ))
    }
}

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
- Requires Further Human Verification
🏷️ - Compliance label

Previous compliance checks

Compliance check up to commit 6a45972
Security Compliance
Log data exposure

Description: The logs table uses a composite PRIMARY KEY that includes timestamp with second/subsecond
granularity, which may enable unintended enumeration or correlation of log events across
entities when exposed via SRQL if timestamps are directly filterable and returned without
redaction, potentially facilitating sensitive log mining; consider minimizing precision or
adding access controls in SRQL exposure.
schema.sql [66-81]

Referred Code
    timestamp           TIMESTAMPTZ NOT NULL,
    trace_id            TEXT,
    span_id             TEXT,
    severity_text       TEXT,
    severity_number     INT,
    body                TEXT,
    service_name        TEXT,
    service_version     TEXT,
    service_instance    TEXT,
    scope_name          TEXT,
    scope_version       TEXT,
    attributes          TEXT,
    resource_attributes TEXT,
    created_at          TIMESTAMPTZ NOT NULL,
    PRIMARY KEY (timestamp, trace_id, span_id)
);
Sensitive information exposure

Description: The test asserts on the exact log message value Connection failed, which hard-codes
potentially sensitive operational strings into test outputs and may leak into CI artifacts
or logs; prefer using synthetic/non-sensitive placeholders or masking in assertions.
comprehensive_queries.rs [85-89]

Referred Code
    assert_eq!(status, http::StatusCode::OK);
    let rows = body["results"].as_array().expect("results should be an array");
    assert_eq!(rows.len(), 1);
    assert_eq!(rows[0]["body"], "Connection failed");
})
Test data sensitivity

Description: Seeded logs include an ERROR entry with concrete trace/span IDs and message content that
could be treated as sensitive in some environments and may propagate to shared test
infrastructure or artifacts; replace with anonymized synthetic values or ensure test data
isolation.
seed.sql [149-157]

Referred Code
    base.now_ts - INTERVAL '1 minute', 'trace-1', 'span-1', 'INFO', 9,
    'Application started', 'my-service', '1.0.0', 'inst-1', 'my-scope',
    '1.0', '{"key":"value"}'::text, '{"res":"val"}'::text, base.now_ts
FROM base
UNION ALL
SELECT
    base.now_ts - INTERVAL '5 minutes', 'trace-2', 'span-2', 'ERROR', 17,
    'Connection failed', 'my-service', '1.0.0', 'inst-1', 'my-scope',
    '1.0', '{"error":"timeout"}'::text, '{"res":"val"}'::text, base.now_ts
Telemetry PII exposure

Description: The otel_traces table stores potentially sensitive telemetry attributes and resource
attributes as TEXT without constraints, increasing risk if SRQL exposes these fields
broadly; ensure PII/secret scrubbing at ingestion or redaction in query responses.
schema.sql [120-142]

Referred Code
CREATE TABLE otel_traces (
    timestamp            TIMESTAMPTZ NOT NULL,
    trace_id             TEXT,
    span_id              TEXT        NOT NULL,
    parent_span_id       TEXT,
    name                 TEXT,
    kind                 INT,
    start_time_unix_nano BIGINT,
    end_time_unix_nano   BIGINT,
    service_name         TEXT,
    service_version      TEXT,
    service_instance     TEXT,
    scope_name           TEXT,
    scope_version        TEXT,
    status_code          INT,
    status_message       TEXT,
    attributes           TEXT,
    resource_attributes  TEXT,
    events               TEXT,
    links                TEXT,
    created_at           TIMESTAMPTZ NOT NULL,


 ... (clipped 2 lines)
Infra fingerprinting risk

Description: The cpu_metrics schema records host identifiers and device IDs which, when combined with
precise timestamps and usage data, could reveal infrastructure topology via SRQL; consider
access scoping or aggregation to prevent detailed host fingerprinting.
schema.sql [189-204]

Referred Code
DROP TABLE IF EXISTS cpu_metrics;
CREATE TABLE cpu_metrics (
    timestamp     TIMESTAMPTZ NOT NULL,
    poller_id     TEXT        NOT NULL,
    agent_id      TEXT,
    host_id       TEXT,
    core_id       INT,
    usage_percent FLOAT8,
    frequency_hz  FLOAT8,
    label         TEXT,
    cluster       TEXT,
    device_id     TEXT,
    partition     TEXT,
    created_at    TIMESTAMPTZ NOT NULL,
    PRIMARY KEY (timestamp, poller_id, core_id)
);
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No audit logs: The new tests execute queries against multiple entities but do not assert that critical
actions (query execution, reads) are recorded with user ID, timestamp, and outcome, which
may be expected if the system requires audit trails.

Referred Code
    let response = harness.query(request).await;
    let (status, body) = read_json(response).await;

    assert_eq!(status, http::StatusCode::OK);
    let rows = body["results"].as_array().expect("results should be an array");
    assert_eq!(rows.len(), 2);
})

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Sparse assertions: Tests primarily assert HTTP 200 and simple field counts without exercising or validating
error paths or edge cases (e.g., empty results, invalid queries, pagination cursors),
leaving robustness unverified.

Referred Code
    let response = harness.query(request).await;
    let (status, body) = read_json(response).await;

    assert_eq!(status, http::StatusCode::OK);
    let rows = body["results"].as_array().expect("results should be an array");
    assert_eq!(rows.len(), 1);
    assert_eq!(rows[0]["service_name"], "ssh");
})
.await;

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status:
Log PII risk: Seeded logs include free-form 'body' and 'attributes' text which in
real environments could contain sensitive data; tests do not verify redaction or
structure, leaving logging practices unvalidated.

Referred Code
INSERT INTO logs (
    timestamp, trace_id, span_id, severity_text, severity_number,
    body, service_name, service_version, service_instance, scope_name,
    scope_version, attributes, resource_attributes, created_at
)
SELECT
    base.now_ts - INTERVAL '1 minute', 'trace-1', 'span-1', 'INFO', 9,
    'Application started', 'my-service', '1.0.0', 'inst-1', 'my-scope',
    '1.0', '{"key":"value"}'::text, '{"res":"val"}'::text, base.now_ts
FROM base
UNION ALL
SELECT
    base.now_ts - INTERVAL '5 minutes', 'trace-2', 'span-2', 'ERROR', 17,
    'Connection failed', 'my-service', '1.0.0', 'inst-1', 'my-scope',
    '1.0', '{"error":"timeout"}'::text, '{"res":"val"}'::text, base.now_ts
FROM base;

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Input validation gaps: Tests send raw SRQL strings but do not cover validation for malformed inputs,
injection-like payloads, or auth/authorization checks, so secure handling of external
inputs is not verified.

Referred Code
let request = QueryRequest {
    query: "in:otel_traces service.name:api-service".to_string(),
    limit: None,
    cursor: None,
    direction: QueryDirection::Next,
    mode: None,
};

let response = harness.query(request).await;
let (status, body) = read_json(response).await;

Learn more about managing compliance generic rules or creating your own custom rules

Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551255426 Original created: 2025-11-19T07:44:46Z --- ## PR Compliance Guide 🔍 <!-- https://github.com/carverauto/serviceradar/commit/98038c941d14e37290cd0867162dffd6c50bd5f5 --> #### (Compliance updated until commit https://github.com/carverauto/serviceradar/commit/98038c941d14e37290cd0867162dffd6c50bd5f5) Below is a summary of compliance checks for this PR:<br> <table><tbody><tr><td colspan='2'><strong>Security Compliance</strong></td></tr> <tr><td>🟢</td><td><details><summary><strong>No security concerns identified</strong></summary> No security vulnerabilities detected by AI analysis. Human verification advised for critical code. </details></td></tr> <tr><td colspan='2'><strong>Ticket Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary>🎫 <strong>No ticket provided </strong></summary> - [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true --> </details></td></tr> <tr><td colspan='2'><strong>Codebase Duplication Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary><strong>Codebase context is not defined </strong></summary> Follow the <a href='https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/'>guide</a> to enable codebase context checks. </details></td></tr> <tr><td colspan='2'><strong>Custom Compliance</strong></td></tr> <tr><td rowspan=5>🟢</td><td> <details><summary><strong>Generic: Meaningful Naming and Self-Documenting Code</strong></summary><br> **Objective:** Ensure all identifiers clearly express their purpose and intent, making code <br>self-documenting<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Robust Error Handling and Edge Case Management</strong></summary><br> **Objective:** Ensure comprehensive error handling that provides meaningful context and graceful <br>degradation<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Error Handling</strong></summary><br> **Objective:** To prevent the leakage of sensitive system information through error messages while <br>providing sufficient detail for internal debugging.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Logging Practices</strong></summary><br> **Objective:** To ensure logs are useful for debugging and auditing without exposing sensitive <br>information like PII, PHI, or cardholder data.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br> **Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td rowspan=1>⚪</td> <td><details> <summary><strong>Generic: Comprehensive Audit Trails</strong></summary><br> **Objective:** To create a detailed and reliable record of critical system actions for security analysis <br>and compliance.<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-400c860c805cd3e1a5e7f7c42cece63cce3e62c1f3fd8b49a5803e26b40fe31eR167-R179'><strong>Missing audit logs</strong></a>: New range filtering paths for numeric fields execute without any added auditing/logging of <br>critical queries or outcomes, so it is unclear whether these actions are captured for <br>audit trails.<br> <details open><summary>Referred Code</summary> ```rust match filter.op { FilterOp::Eq => query = query.filter(col_usage_percent.eq(value)), FilterOp::NotEq => query = query.filter(col_usage_percent.ne(value)), FilterOp::Gt => query = query.filter(col_usage_percent.gt(value)), FilterOp::Gte => query = query.filter(col_usage_percent.ge(value)), FilterOp::Lt => query = query.filter(col_usage_percent.lt(value)), FilterOp::Lte => query = query.filter(col_usage_percent.le(value)), _ => { return Err(ServiceError::InvalidRequest( "usage_percent filter does not support this operator".into(), )) } } ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td align="center" colspan="2"> <!-- placeholder --> <!-- /compliance --update_compliance=true --> </td></tr></tbody></table> <details><summary>Compliance status legend</summary> 🟢 - Fully Compliant<br> 🟡 - Partial Compliant<br> 🔴 - Not Compliant<br> ⚪ - Requires Further Human Verification<br> 🏷️ - Compliance label<br> </details> ___ #### Previous compliance checks <details> <summary>Compliance check up to commit <a href='https://github.com/carverauto/serviceradar/commit/6a459721a30ab661e06e393305d11741bca8b72e'>6a45972</a></summary><br> <table><tbody><tr><td colspan='2'><strong>Security Compliance</strong></td></tr> <tr><td rowspan=5>⚪</td> <td><details><summary><strong>Log data exposure </strong></summary><br> <b>Description:</b> The <code>logs</code> table uses a composite PRIMARY KEY that includes <code>timestamp</code> with second/subsecond <br>granularity, which may enable unintended enumeration or correlation of log events across <br>entities when exposed via SRQL if timestamps are directly filterable and returned without <br>redaction, potentially facilitating sensitive log mining; consider minimizing precision or <br>adding access controls in SRQL exposure.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-ce14e9d31fb318e6b693bef44d6097d9ab1bc13d028ee32e603648aa9370f044R66-R81'>schema.sql [66-81]</a></strong><br> <details open><summary>Referred Code</summary> ```sql timestamp TIMESTAMPTZ NOT NULL, trace_id TEXT, span_id TEXT, severity_text TEXT, severity_number INT, body TEXT, service_name TEXT, service_version TEXT, service_instance TEXT, scope_name TEXT, scope_version TEXT, attributes TEXT, resource_attributes TEXT, created_at TIMESTAMPTZ NOT NULL, PRIMARY KEY (timestamp, trace_id, span_id) ); ``` </details></details></td></tr> <tr><td><details><summary><strong>Sensitive information exposure </strong></summary><br> <b>Description:</b> The test asserts on the exact log message value <code>Connection failed</code>, which hard-codes <br>potentially sensitive operational strings into test outputs and may leak into CI artifacts <br>or logs; prefer using synthetic/non-sensitive placeholders or masking in assertions.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR85-R89'>comprehensive_queries.rs [85-89]</a></strong><br> <details open><summary>Referred Code</summary> ```rust assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().expect("results should be an array"); assert_eq!(rows.len(), 1); assert_eq!(rows[0]["body"], "Connection failed"); }) ``` </details></details></td></tr> <tr><td><details><summary><strong>Test data sensitivity </strong></summary><br> <b>Description:</b> Seeded logs include an ERROR entry with concrete trace/span IDs and message content that <br>could be treated as sensitive in some environments and may propagate to shared test <br>infrastructure or artifacts; replace with anonymized synthetic values or ensure test data <br>isolation.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-1de433f1e0e2be718b04d148299c8f2c8c46a1f9c0b452f55bc1067e82b4edc1R149-R157'>seed.sql [149-157]</a></strong><br> <details open><summary>Referred Code</summary> ```sql base.now_ts - INTERVAL '1 minute', 'trace-1', 'span-1', 'INFO', 9, 'Application started', 'my-service', '1.0.0', 'inst-1', 'my-scope', '1.0', '{"key":"value"}'::text, '{"res":"val"}'::text, base.now_ts FROM base UNION ALL SELECT base.now_ts - INTERVAL '5 minutes', 'trace-2', 'span-2', 'ERROR', 17, 'Connection failed', 'my-service', '1.0.0', 'inst-1', 'my-scope', '1.0', '{"error":"timeout"}'::text, '{"res":"val"}'::text, base.now_ts ``` </details></details></td></tr> <tr><td><details><summary><strong>Telemetry PII exposure </strong></summary><br> <b>Description:</b> The <code>otel_traces</code> table stores potentially sensitive telemetry attributes and resource <br>attributes as TEXT without constraints, increasing risk if SRQL exposes these fields <br>broadly; ensure PII/secret scrubbing at ingestion or redaction in query responses.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-ce14e9d31fb318e6b693bef44d6097d9ab1bc13d028ee32e603648aa9370f044R120-R142'>schema.sql [120-142]</a></strong><br> <details open><summary>Referred Code</summary> ```sql CREATE TABLE otel_traces ( timestamp TIMESTAMPTZ NOT NULL, trace_id TEXT, span_id TEXT NOT NULL, parent_span_id TEXT, name TEXT, kind INT, start_time_unix_nano BIGINT, end_time_unix_nano BIGINT, service_name TEXT, service_version TEXT, service_instance TEXT, scope_name TEXT, scope_version TEXT, status_code INT, status_message TEXT, attributes TEXT, resource_attributes TEXT, events TEXT, links TEXT, created_at TIMESTAMPTZ NOT NULL, ... (clipped 2 lines) ``` </details></details></td></tr> <tr><td><details><summary><strong>Infra fingerprinting risk </strong></summary><br> <b>Description:</b> The <code>cpu_metrics</code> schema records host identifiers and device IDs which, when combined with <br>precise timestamps and usage data, could reveal infrastructure topology via SRQL; consider <br>access scoping or aggregation to prevent detailed host fingerprinting.<br> <strong><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-ce14e9d31fb318e6b693bef44d6097d9ab1bc13d028ee32e603648aa9370f044R189-R204'>schema.sql [189-204]</a></strong><br> <details open><summary>Referred Code</summary> ```sql DROP TABLE IF EXISTS cpu_metrics; CREATE TABLE cpu_metrics ( timestamp TIMESTAMPTZ NOT NULL, poller_id TEXT NOT NULL, agent_id TEXT, host_id TEXT, core_id INT, usage_percent FLOAT8, frequency_hz FLOAT8, label TEXT, cluster TEXT, device_id TEXT, partition TEXT, created_at TIMESTAMPTZ NOT NULL, PRIMARY KEY (timestamp, poller_id, core_id) ); ``` </details></details></td></tr> <tr><td colspan='2'><strong>Ticket Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary>🎫 <strong>No ticket provided </strong></summary> - [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true --> </details></td></tr> <tr><td colspan='2'><strong>Codebase Duplication Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary><strong>Codebase context is not defined </strong></summary> Follow the <a href='https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/'>guide</a> to enable codebase context checks. </details></td></tr> <tr><td colspan='2'><strong>Custom Compliance</strong></td></tr> <tr><td rowspan=2>🟢</td><td> <details><summary><strong>Generic: Meaningful Naming and Self-Documenting Code</strong></summary><br> **Objective:** Ensure all identifiers clearly express their purpose and intent, making code <br>self-documenting<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Error Handling</strong></summary><br> **Objective:** To prevent the leakage of sensitive system information through error messages while <br>providing sufficient detail for internal debugging.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td rowspan=4>⚪</td> <td><details> <summary><strong>Generic: Comprehensive Audit Trails</strong></summary><br> **Objective:** To create a detailed and reliable record of critical system actions for security analysis <br>and compliance.<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR17-R23'><strong>No audit logs</strong></a>: The new tests execute queries against multiple entities but do not assert that critical <br>actions (query execution, reads) are recorded with user ID, timestamp, and outcome, which <br>may be expected if the system requires audit trails.<br> <details open><summary>Referred Code</summary> ```rust let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().expect("results should be an array"); assert_eq!(rows.len(), 2); }) ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td><details> <summary><strong>Generic: Robust Error Handling and Edge Case Management</strong></summary><br> **Objective:** Ensure comprehensive error handling that provides meaningful context and graceful <br>degradation<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR38-R46'><strong>Sparse assertions</strong></a>: Tests primarily assert HTTP 200 and simple field counts without exercising or validating <br>error paths or edge cases (e.g., empty results, invalid queries, pagination cursors), <br>leaving robustness unverified.<br> <details open><summary>Referred Code</summary> ```rust let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().expect("results should be an array"); assert_eq!(rows.len(), 1); assert_eq!(rows[0]["service_name"], "ssh"); }) .await; ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td><details> <summary><strong>Generic: Secure Logging Practices</strong></summary><br> **Objective:** To ensure logs are useful for debugging and auditing without exposing sensitive <br>information like PII, PHI, or cardholder data.<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-1de433f1e0e2be718b04d148299c8f2c8c46a1f9c0b452f55bc1067e82b4edc1R143-R158'><strong>Log PII risk</strong></a>: Seeded logs include free-form &#x27;body&#x27; and &#x27;attributes&#x27; text which in <br>real environments could contain sensitive data; tests do not verify redaction or <br>structure, leaving logging practices unvalidated.<br> <details open><summary>Referred Code</summary> ```sql INSERT INTO logs ( timestamp, trace_id, span_id, severity_text, severity_number, body, service_name, service_version, service_instance, scope_name, scope_version, attributes, resource_attributes, created_at ) SELECT base.now_ts - INTERVAL '1 minute', 'trace-1', 'span-1', 'INFO', 9, 'Application started', 'my-service', '1.0.0', 'inst-1', 'my-scope', '1.0', '{"key":"value"}'::text, '{"res":"val"}'::text, base.now_ts FROM base UNION ALL SELECT base.now_ts - INTERVAL '5 minutes', 'trace-2', 'span-2', 'ERROR', 17, 'Connection failed', 'my-service', '1.0.0', 'inst-1', 'my-scope', '1.0', '{"error":"timeout"}'::text, '{"res":"val"}'::text, base.now_ts FROM base; ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td><details> <summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br> **Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR96-R106'><strong>Input validation gaps</strong></a>: Tests send raw SRQL strings but do not cover validation for malformed inputs, <br>injection-like payloads, or auth/authorization checks, so secure handling of external <br>inputs is not verified.<br> <details open><summary>Referred Code</summary> ```rust let request = QueryRequest { query: "in:otel_traces service.name:api-service".to_string(), limit: None, cursor: None, direction: QueryDirection::Next, mode: None, }; let response = harness.query(request).await; let (status, body) = read_json(response).await; ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td align="center" colspan="2"> <!-- placeholder --> <!-- /compliance --update_compliance=true --> </td></tr></tbody></table> </details>
qodo-code-review[bot] commented 2025-11-19 07:45:49 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551258752
Original created: 2025-11-19T07:45:49Z

PR Code Suggestions

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Adopt data-driven testing for scalability

Refactor the duplicated test functions into a single data-driven test. This
involves creating a structure for test cases and iterating over them in one test
function to improve scalability and reduce code duplication.

Examples:

rust/srql/tests/comprehensive_queries.rs [6-113]
#[tokio::test(flavor = "multi_thread")]
async fn pollers_query_matches_fixture() {
    with_srql_harness(|harness| async move {
        let request = QueryRequest {
            query: "in:pollers status:active".to_string(),
            limit: None,
            cursor: None,
            direction: QueryDirection::Next,
            mode: None,
        };

 ... (clipped 98 lines)

Solution Walkthrough:

Before:

// rust/srql/tests/comprehensive_queries.rs

#[tokio::test]
async fn pollers_query_matches_fixture() {
    with_srql_harness(|harness| async move {
        let request = QueryRequest {
            query: "in:pollers status:active".to_string(),
            ...
        };
        let response = harness.query(request).await;
        let (status, body) = read_json(response).await;
        assert_eq!(status, http::StatusCode::OK);
        let rows = body["results"].as_array().unwrap();
        assert_eq!(rows.len(), 2);
    }).await;
}

#[tokio::test]
async fn services_query_matches_fixture() {
    with_srql_harness(|harness| async move {
        let request = QueryRequest {
            query: "in:services service_type:ssh".to_string(),
            ...
        };
        let response = harness.query(request).await;
        let (status, body) = read_json(response).await;
        assert_eq!(status, http::StatusCode::OK);
        let rows = body["results"].as_array().unwrap();
        assert_eq!(rows.len(), 1);
    }).await;
}
// ... and so on for other entities

After:

// rust/srql/tests/comprehensive_queries.rs

struct TestCase<'a> {
    query: &'a str,
    expected_count: usize,
    validator: Option<Box<dyn Fn(&serde_json::Value)>>,
}

#[tokio::test]
async fn comprehensive_queries_match_fixtures() {
    let test_cases = vec![
        TestCase { query: "in:pollers status:active", expected_count: 2, validator: None },
        TestCase { query: "in:services service_type:ssh", expected_count: 1, validator: Some(Box::new(|body| assert_eq!(body["results"][0]["service_name"], "ssh"))) },
        TestCase { query: "in:cpu_metrics usage_percent:88.2", expected_count: 1, validator: Some(Box::new(|body| assert_eq!(body["results"][0]["core_id"], 1))) },
        // ... more cases
    ];

    with_srql_harness(|harness| async move {
        for case in test_cases {
            let request = QueryRequest { query: case.query.to_string(), ..Default::default() };
            let response = harness.query(request).await;
            let (status, body) = read_json(response).await;
            assert_eq!(status, http::StatusCode::OK);
            let rows = body["results"].as_array().unwrap();
            assert_eq!(rows.len(), case.expected_count, "Failed query: {}", case.query);
            if let Some(validate) = &case.validator { validate(&body); }
        }
    }).await;
}

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies significant code duplication across the new test functions and proposes a valid data-driven pattern that would improve the test suite's scalability and maintainability.

Medium
Possible issue
Avoid exact floating-point value comparisons
Suggestion Impact:The cpu_metrics test query was changed from an exact value (usage_percent:88.2) to a range (usage_percent:>88.1 usage_percent:<88.3), aligning with the suggestion. The tests were also refactored into a table-driven format, but the key suggested change was applied.

code diff:

+        TestCase {
+            query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3",
+            expected_count: 1,
+            validator: Some(Box::new(|body| {
+                assert_eq!(body["results"][0]["core_id"], 1)
+            })),

Modify the cpu_metrics test to query for a range of usage_percent values instead
of an exact match to avoid potential flakiness from floating-point inaccuracies.

rust/srql/tests/comprehensive_queries.rs [49-69]

 #[tokio::test(flavor = "multi_thread")]
 async fn cpu_metrics_query_matches_fixture() {
     with_srql_harness(|harness| async move {
         let request = QueryRequest {
-            query: "in:cpu_metrics usage_percent:88.2".to_string(),
+            query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3".to_string(),
             limit: None,
             cursor: None,
             direction: QueryDirection::Next,
             mode: None,
         };
 
         let response = harness.query(request).await;
         let (status, body) = read_json(response).await;
 
         assert_eq!(status, http::StatusCode::OK, "unexpected error: {body}");
         let rows = body["results"].as_array().expect("results should be an array");
         assert_eq!(rows.len(), 1);
         assert_eq!(rows[0]["core_id"], 1);
     })
     .await;
 }

[Suggestion processed]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies the risk of flaky tests due to exact floating-point comparisons and proposes a robust alternative using a range query, which is a best practice.

Medium
General
Use a more informative panic message
Suggestion Impact:The commit replaced expect("results should be an array") with unwrap_or_else that panics with a detailed message including the body when 'results' is not an array or missing.

code diff:

+            let rows = body["results"].as_array().unwrap_or_else(|| {
+                panic!(
+                    "'results' field is not an array or is missing. Body: {}",
+                    body
+                )
+            });

Replace expect() with a more descriptive panic message that includes the
response body to aid debugging when the 'results' field is missing or not an
array.

rust/srql/tests/comprehensive_queries.rs [21]

-let rows = body["results"].as_array().expect("results should be an array");
+let rows = body["results"].as_array().unwrap_or_else(|| {
+    panic!("'results' field is not an array or is missing. Body: {}", body)
+});

[Suggestion processed]

Suggestion importance[1-10]: 4

__

Why: The suggestion correctly points out that using expect can hide useful debug information, and the proposed change improves test failure diagnostics by including the response body in the panic message.

Low
  • More
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551258752 Original created: 2025-11-19T07:45:49Z --- ## PR Code Suggestions ✨ <!-- 6a45972 --> Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>High-level</td> <td> <details><summary>Adopt data-driven testing for scalability</summary> ___ **Refactor the duplicated test functions into a single data-driven test. This <br>involves creating a structure for test cases and iterating over them in one test <br>function to improve scalability and reduce code duplication.** ### Examples: <details> <summary> <a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR6-R113">rust/srql/tests/comprehensive_queries.rs [6-113]</a> </summary> ```rust #[tokio::test(flavor = "multi_thread")] async fn pollers_query_matches_fixture() { with_srql_harness(|harness| async move { let request = QueryRequest { query: "in:pollers status:active".to_string(), limit: None, cursor: None, direction: QueryDirection::Next, mode: None, }; ... (clipped 98 lines) ``` </details> ### Solution Walkthrough: #### Before: ```rust // rust/srql/tests/comprehensive_queries.rs #[tokio::test] async fn pollers_query_matches_fixture() { with_srql_harness(|harness| async move { let request = QueryRequest { query: "in:pollers status:active".to_string(), ... }; let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().unwrap(); assert_eq!(rows.len(), 2); }).await; } #[tokio::test] async fn services_query_matches_fixture() { with_srql_harness(|harness| async move { let request = QueryRequest { query: "in:services service_type:ssh".to_string(), ... }; let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().unwrap(); assert_eq!(rows.len(), 1); }).await; } // ... and so on for other entities ``` #### After: ```rust // rust/srql/tests/comprehensive_queries.rs struct TestCase<'a> { query: &'a str, expected_count: usize, validator: Option<Box<dyn Fn(&serde_json::Value)>>, } #[tokio::test] async fn comprehensive_queries_match_fixtures() { let test_cases = vec![ TestCase { query: "in:pollers status:active", expected_count: 2, validator: None }, TestCase { query: "in:services service_type:ssh", expected_count: 1, validator: Some(Box::new(|body| assert_eq!(body["results"][0]["service_name"], "ssh"))) }, TestCase { query: "in:cpu_metrics usage_percent:88.2", expected_count: 1, validator: Some(Box::new(|body| assert_eq!(body["results"][0]["core_id"], 1))) }, // ... more cases ]; with_srql_harness(|harness| async move { for case in test_cases { let request = QueryRequest { query: case.query.to_string(), ..Default::default() }; let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK); let rows = body["results"].as_array().unwrap(); assert_eq!(rows.len(), case.expected_count, "Failed query: {}", case.query); if let Some(validate) = &case.validator { validate(&body); } } }).await; } ``` <details><summary>Suggestion importance[1-10]: 7</summary> __ Why: The suggestion correctly identifies significant code duplication across the new test functions and proposes a valid data-driven pattern that would improve the test suite's scalability and maintainability. </details></details></td><td align=center>Medium </td></tr><tr><td rowspan=1>Possible issue</td> <td> <details><summary>✅ <s>Avoid exact floating-point value comparisons</s></summary> ___ <details><summary><b>Suggestion Impact:</b></summary>The cpu_metrics test query was changed from an exact value (usage_percent:88.2) to a range (usage_percent:>88.1 usage_percent:<88.3), aligning with the suggestion. The tests were also refactored into a table-driven format, but the key suggested change was applied. code diff: ```diff + TestCase { + query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3", + expected_count: 1, + validator: Some(Box::new(|body| { + assert_eq!(body["results"][0]["core_id"], 1) + })), ``` </details> ___ **Modify the <code>cpu_metrics</code> test to query for a range of <code>usage_percent</code> values instead <br>of an exact match to avoid potential flakiness from floating-point inaccuracies.** [rust/srql/tests/comprehensive_queries.rs [49-69]](https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR49-R69) ```diff #[tokio::test(flavor = "multi_thread")] async fn cpu_metrics_query_matches_fixture() { with_srql_harness(|harness| async move { let request = QueryRequest { - query: "in:cpu_metrics usage_percent:88.2".to_string(), + query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3".to_string(), limit: None, cursor: None, direction: QueryDirection::Next, mode: None, }; let response = harness.query(request).await; let (status, body) = read_json(response).await; assert_eq!(status, http::StatusCode::OK, "unexpected error: {body}"); let rows = body["results"].as_array().expect("results should be an array"); assert_eq!(rows.len(), 1); assert_eq!(rows[0]["core_id"], 1); }) .await; } ``` `[Suggestion processed]` <details><summary>Suggestion importance[1-10]: 7</summary> __ Why: The suggestion correctly identifies the risk of flaky tests due to exact floating-point comparisons and proposes a robust alternative using a range query, which is a best practice. </details></details></td><td align=center>Medium </td></tr><tr><td rowspan=1>General</td> <td> <details><summary>✅ <s>Use a more informative panic message</s></summary> ___ <details><summary><b>Suggestion Impact:</b></summary>The commit replaced expect("results should be an array") with unwrap_or_else that panics with a detailed message including the body when 'results' is not an array or missing. code diff: ```diff + let rows = body["results"].as_array().unwrap_or_else(|| { + panic!( + "'results' field is not an array or is missing. Body: {}", + body + ) + }); ``` </details> ___ **Replace <code>expect()</code> with a more descriptive panic message that includes the <br>response body to aid debugging when the 'results' field is missing or not an <br>array.** [rust/srql/tests/comprehensive_queries.rs [21]](https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR21-R21) ```diff -let rows = body["results"].as_array().expect("results should be an array"); +let rows = body["results"].as_array().unwrap_or_else(|| { + panic!("'results' field is not an array or is missing. Body: {}", body) +}); ``` `[Suggestion processed]` <details><summary>Suggestion importance[1-10]: 4</summary> __ Why: The suggestion correctly points out that using `expect` can hide useful debug information, and the proposed change improves test failure diagnostics by including the response body in the panic message. </details></details></td><td align=center>Low </td></tr> <tr><td align="center" colspan="2"> - [ ] More <!-- /improve --more_suggestions=true --> </td><td></td></tr></tbody></table>
qodo-code-review[bot] commented 2025-11-19 08:35:13 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551428238
Original created: 2025-11-19T08:35:13Z

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No audit logs: The new code and tests add query features and DNS lookup indirection without adding or
verifying audit logging for critical actions like queries or host resolution.

Referred Code
#[tokio::test(flavor = "multi_thread")]
async fn comprehensive_queries_match_fixtures() {
    let test_cases = vec![
        TestCase {
            query: "in:pollers status:active",
            expected_count: 2,
            validator: None,
        },
        TestCase {
            query: "in:services service_type:ssh",
            expected_count: 1,
            validator: Some(Box::new(|body| {
                assert_eq!(body["results"][0]["service_name"], "ssh")
            })),
        },
        TestCase {
            query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3",
            expected_count: 1,
            validator: Some(Box::new(|body| {
                assert_eq!(body["results"][0]["core_id"], 1)
            })),


 ... (clipped 56 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Input operators: The parser now accepts comparison operators in scalar filter values without visible
numeric type validation or bounds checking, which may be safe but warrants verification
against injection and type handling in downstream query builders.

Referred Code
fn build_filter(key: &str, value: FilterValue) -> Filter {
    let mut field = key.trim();
    let mut negated = false;
    if let Some(stripped) = field.strip_prefix('!') {
        field = stripped;
        negated = true;
    }

    let (op, final_value) = match value {
        FilterValue::Scalar(v) => {
            if let Some(stripped) = v.strip_prefix(">=") {
                (FilterOp::Gte, FilterValue::Scalar(stripped.to_string()))
            } else if let Some(stripped) = v.strip_prefix('>') {
                (FilterOp::Gt, FilterValue::Scalar(stripped.to_string()))
            } else if let Some(stripped) = v.strip_prefix("<=") {
                (FilterOp::Lte, FilterValue::Scalar(stripped.to_string()))
            } else if let Some(stripped) = v.strip_prefix('<') {
                (FilterOp::Lt, FilterValue::Scalar(stripped.to_string()))
            } else if v.contains('%') {
                if negated {
                    (FilterOp::NotLike, FilterValue::Scalar(v))


 ... (clipped 23 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
- Requires Further Human Verification
🏷️ - Compliance label
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551428238 Original created: 2025-11-19T08:35:13Z --- ## PR Compliance Guide 🔍 <!-- https://github.com/carverauto/serviceradar/commit/98038c941d14e37290cd0867162dffd6c50bd5f5 --> Below is a summary of compliance checks for this PR:<br> <table><tbody><tr><td colspan='2'><strong>Security Compliance</strong></td></tr> <tr><td>🟢</td><td><details><summary><strong>No security concerns identified</strong></summary> No security vulnerabilities detected by AI analysis. Human verification advised for critical code. </details></td></tr> <tr><td colspan='2'><strong>Ticket Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary>🎫 <strong>No ticket provided </strong></summary> - [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true --> </details></td></tr> <tr><td colspan='2'><strong>Codebase Duplication Compliance</strong></td></tr> <tr><td>⚪</td><td><details><summary><strong>Codebase context is not defined </strong></summary> Follow the <a href='https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/'>guide</a> to enable codebase context checks. </details></td></tr> <tr><td colspan='2'><strong>Custom Compliance</strong></td></tr> <tr><td rowspan=4>🟢</td><td> <details><summary><strong>Generic: Meaningful Naming and Self-Documenting Code</strong></summary><br> **Objective:** Ensure all identifiers clearly express their purpose and intent, making code <br>self-documenting<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Robust Error Handling and Edge Case Management</strong></summary><br> **Objective:** Ensure comprehensive error handling that provides meaningful context and graceful <br>degradation<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Error Handling</strong></summary><br> **Objective:** To prevent the leakage of sensitive system information through error messages while <br>providing sufficient detail for internal debugging.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td> <details><summary><strong>Generic: Secure Logging Practices</strong></summary><br> **Objective:** To ensure logs are useful for debugging and auditing without exposing sensitive <br>information like PII, PHI, or cardholder data.<br> **Status:** Passed<br> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td rowspan=2>⚪</td> <td><details> <summary><strong>Generic: Comprehensive Audit Trails</strong></summary><br> **Objective:** To create a detailed and reliable record of critical system actions for security analysis <br>and compliance.<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-2d17debb1fb0e91ce3a1ec48f779dca4a145489187cd73b1d2848a6312d48c8cR14-R90'><strong>No audit logs</strong></a>: The new code and tests add query features and DNS lookup indirection without adding or <br>verifying audit logging for critical actions like queries or host resolution.<br> <details open><summary>Referred Code</summary> ```rust #[tokio::test(flavor = "multi_thread")] async fn comprehensive_queries_match_fixtures() { let test_cases = vec![ TestCase { query: "in:pollers status:active", expected_count: 2, validator: None, }, TestCase { query: "in:services service_type:ssh", expected_count: 1, validator: Some(Box::new(|body| { assert_eq!(body["results"][0]["service_name"], "ssh") })), }, TestCase { query: "in:cpu_metrics usage_percent:>88.1 usage_percent:<88.3", expected_count: 1, validator: Some(Box::new(|body| { assert_eq!(body["results"][0]["core_id"], 1) })), ... (clipped 56 lines) ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td><details> <summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br> **Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br> **Status:** <br><a href='https://github.com/carverauto/serviceradar/pull/1958/files#diff-b2edf55d1721185349ecddb2f4eacc42e0dfcae19b6c2bc638602f187da67e66R196-R239'><strong>Input operators</strong></a>: The parser now accepts comparison operators in scalar filter values without visible <br>numeric type validation or bounds checking, which may be safe but warrants verification <br>against injection and type handling in downstream query builders.<br> <details open><summary>Referred Code</summary> ```rust fn build_filter(key: &str, value: FilterValue) -> Filter { let mut field = key.trim(); let mut negated = false; if let Some(stripped) = field.strip_prefix('!') { field = stripped; negated = true; } let (op, final_value) = match value { FilterValue::Scalar(v) => { if let Some(stripped) = v.strip_prefix(">=") { (FilterOp::Gte, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix('>') { (FilterOp::Gt, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix("<=") { (FilterOp::Lte, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix('<') { (FilterOp::Lt, FilterValue::Scalar(stripped.to_string())) } else if v.contains('%') { if negated { (FilterOp::NotLike, FilterValue::Scalar(v)) ... (clipped 23 lines) ``` </details> > Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a> </details></td></tr> <tr><td align="center" colspan="2"> <!-- placeholder --> <!-- /compliance --update_compliance=true --> </td></tr></tbody></table> <details><summary>Compliance status legend</summary> 🟢 - Fully Compliant<br> 🟡 - Partial Compliant<br> 🔴 - Not Compliant<br> ⚪ - Requires Further Human Verification<br> 🏷️ - Compliance label<br> </details>
qodo-code-review[bot] commented 2025-11-19 08:36:27 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551432066
Original created: 2025-11-19T08:36:27Z

PR Code Suggestions

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix use-after-move error in match

In build_filter, fix a compile error by binding the list value in the
FilterValue::List match arm and reconstructing the FilterValue instead of moving
the partially-moved value.

rust/srql/src/parser.rs [196-240]

 fn build_filter(key: &str, value: FilterValue) -> Filter {
     let mut field = key.trim();
     let mut negated = false;
     if let Some(stripped) = field.strip_prefix('!') {
         field = stripped;
         negated = true;
     }
 
     let (op, final_value) = match value {
         FilterValue::Scalar(v) => {
             if let Some(stripped) = v.strip_prefix(">=") {
                 (FilterOp::Gte, FilterValue::Scalar(stripped.to_string()))
             } else if let Some(stripped) = v.strip_prefix('>') {
                 (FilterOp::Gt, FilterValue::Scalar(stripped.to_string()))
             } else if let Some(stripped) = v.strip_prefix("<=") {
                 (FilterOp::Lte, FilterValue::Scalar(stripped.to_string()))
             } else if let Some(stripped) = v.strip_prefix('<') {
                 (FilterOp::Lt, FilterValue::Scalar(stripped.to_string()))
             } else if v.contains('%') {
                 if negated {
                     (FilterOp::NotLike, FilterValue::Scalar(v))
                 } else {
                     (FilterOp::Like, FilterValue::Scalar(v))
                 }
             } else if negated {
                 (FilterOp::NotEq, FilterValue::Scalar(v))
             } else {
                 (FilterOp::Eq, FilterValue::Scalar(v))
             }
         }
-        FilterValue::List(_) => {
+        FilterValue::List(l) => {
             if negated {
-                (FilterOp::NotIn, value)
+                (FilterOp::NotIn, FilterValue::List(l))
             } else {
-                (FilterOp::In, value)
+                (FilterOp::In, FilterValue::List(l))
             }
         }
     };
 
     Filter {
         field: field.to_lowercase(),
         op,
         value: final_value,
     }
 }

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 10

__

Why: The suggestion correctly identifies a compile-time error in the new code due to a "use of partially moved value" in the match statement, which is a critical bug that prevents the code from compiling.

High
Correctly handle empty IN list filter

In build_text_clause, fix the handling of an empty IN list to return a 1=0
(always false) condition instead of 1=1 (always true) to ensure correct query
results.

rust/srql/src/query/otel_metrics.rs [413-430]

 FilterOp::In | FilterOp::NotIn => {
     let values: Vec<String> = filter
         .value
         .as_list()?
         .iter()
         .map(|v| v.to_string())
         .collect();
     if values.is_empty() {
-        return Ok("1=1".into());
+        return if matches!(filter.op, FilterOp::In) {
+            Ok("1=0".into()) // IN () is always false
+        } else {
+            Ok("1=1".into()) // NOT IN () is always true
+        };
     }
     binds.push(SqlBindValue::TextArray(values));
     let operator = if matches!(filter.op, FilterOp::In) {
         "= ANY(?)"
     } else {
         "<> ALL(?)"
     };
     Ok(format!("{column} {operator}"))
 }
  • Apply / Chat
Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies a critical bug where an empty IN clause evaluates to true instead of false, leading to incorrect query results. The proposed fix of returning 1=0 is correct and essential for query correctness.

High
Correctly handle empty NOT IN clause

In add_text_condition, for an empty NOT IN clause, explicitly add a 1=1 SQL
condition to the clauses vector to represent an always-true condition.

rust/srql/src/query/trace_summaries.rs [292-300]

 FilterOp::NotIn => {
     let values = filter.value.as_list()?.to_vec();
     if values.is_empty() {
+        clauses.push("1=1".to_string());
         return Ok(());
     }
     clauses.push(format!("{column} <> ALL(?)"));
     binds.push(SqlBindValue::TextArray(values));
 }
  • Apply / Chat
Suggestion importance[1-10]: 2

__

Why: The suggestion correctly states that NOT IN () is always true, but the current code's behavior of adding no clause is logically equivalent to AND TRUE and is not a bug. The proposed change to add 1=1 is a minor style improvement for explicitness, not a bug fix.

Low
High-level
Refactor filter logic into shared helpers

The filter logic is duplicated across several query modules, leading to
inconsistent SQL generation for operators like 'IN'. This should be refactored
into a centralized, reusable utility to ensure consistency and improve
maintainability.

Examples:

rust/srql/src/query/logs.rs [441-487]
fn build_text_clause(column: &str, filter: &Filter) -> Result<Option<(String, Vec<SqlBindValue>)>> {
    let mut binds = Vec::new();
    let clause = match filter.op {
        FilterOp::Eq => {
            binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string()));
            format!("{column} = ?")
        }
        FilterOp::NotEq => {
            binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string()));
            format!("{column} <> ?")

 ... (clipped 37 lines)
rust/srql/src/query/otel_metrics.rs [391-436]
fn build_text_clause(
    column: &str,
    filter: &Filter,
    binds: &mut Vec<SqlBindValue>,
) -> Result<String> {
    match filter.op {
        FilterOp::Eq => {
            binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string()));
            Ok(format!("{column} = ?"))
        }

 ... (clipped 36 lines)

Solution Walkthrough:

Before:

// In rust/srql/src/query/logs.rs
fn build_text_clause(column: &str, filter: &Filter) -> ... {
    match filter.op {
        // ...
        FilterOp::In | FilterOp::NotIn => {
            // ... generates "IN (...)" with multiple placeholders
            let placeholders: Vec<_> = values.iter().map(|_| "?".to_string()).collect();
            format!("{column} {operator} ({})", placeholders.join(", "))
        }
        // ...
    }
}

// In rust/srql/src/query/otel_metrics.rs
fn build_text_clause(column: &str, filter: &Filter, ...) -> ... {
    match filter.op {
        // ...
        FilterOp::In | FilterOp::NotIn => {
            // ... generates "= ANY(?)" with a single array bind
            let operator = if matches!(filter.op, FilterOp::In) { "= ANY(?)" } else { "<> ALL(?)" };
            Ok(format!("{column} {operator}"))
        }
        // ...
    }
}

After:

// In a new shared module, e.g., rust/srql/src/query/utils.rs
pub fn build_text_clause(column: &str, filter: &Filter) -> Result<(String, Vec<SqlBindValue>)> {
    match filter.op {
        // ...
        FilterOp::In => {
            // ... single, consistent implementation for IN
            Ok((format!("{column} = ANY(?)"), vec![...]))
        }
        FilterOp::NotIn => {
            // ... single, consistent implementation for NOT IN
            Ok((format!("{column} <> ALL(?)"), vec![...]))
        }
        // ... other operators
    }
}

// In rust/srql/src/query/logs.rs and other modules
fn build_stats_filter_clause(filter: &Filter) -> ... {
    // ...
    let (clause, binds) = query::utils::build_text_clause("some_column", filter)?;
    // ...
}

Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies significant code duplication and resulting inconsistencies in SQL generation for filters across multiple query modules, which is a critical design issue.

High
  • More
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551432066 Original created: 2025-11-19T08:36:27Z --- ## PR Code Suggestions ✨ <!-- 98038c9 --> Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=3>Possible issue</td> <td> <details><summary>Fix use-after-move error in match</summary> ___ **In <code>build_filter</code>, fix a compile error by binding the list value in the <br><code>FilterValue::List</code> match arm and reconstructing the <code>FilterValue</code> instead of moving <br>the partially-moved <code>value</code>.** [rust/srql/src/parser.rs [196-240]](https://github.com/carverauto/serviceradar/pull/1958/files#diff-b2edf55d1721185349ecddb2f4eacc42e0dfcae19b6c2bc638602f187da67e66R196-R240) ```diff fn build_filter(key: &str, value: FilterValue) -> Filter { let mut field = key.trim(); let mut negated = false; if let Some(stripped) = field.strip_prefix('!') { field = stripped; negated = true; } let (op, final_value) = match value { FilterValue::Scalar(v) => { if let Some(stripped) = v.strip_prefix(">=") { (FilterOp::Gte, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix('>') { (FilterOp::Gt, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix("<=") { (FilterOp::Lte, FilterValue::Scalar(stripped.to_string())) } else if let Some(stripped) = v.strip_prefix('<') { (FilterOp::Lt, FilterValue::Scalar(stripped.to_string())) } else if v.contains('%') { if negated { (FilterOp::NotLike, FilterValue::Scalar(v)) } else { (FilterOp::Like, FilterValue::Scalar(v)) } } else if negated { (FilterOp::NotEq, FilterValue::Scalar(v)) } else { (FilterOp::Eq, FilterValue::Scalar(v)) } } - FilterValue::List(_) => { + FilterValue::List(l) => { if negated { - (FilterOp::NotIn, value) + (FilterOp::NotIn, FilterValue::List(l)) } else { - (FilterOp::In, value) + (FilterOp::In, FilterValue::List(l)) } } }; Filter { field: field.to_lowercase(), op, value: final_value, } } ``` `[To ensure code accuracy, apply this suggestion manually]` <details><summary>Suggestion importance[1-10]: 10</summary> __ Why: The suggestion correctly identifies a compile-time error in the new code due to a "use of partially moved value" in the `match` statement, which is a critical bug that prevents the code from compiling. </details></details></td><td align=center>High </td></tr><tr><td> <details><summary>Correctly handle empty IN list filter</summary> ___ **In <code>build_text_clause</code>, fix the handling of an empty <code>IN</code> list to return a <code>1=0</code> <br>(always false) condition instead of <code>1=1</code> (always true) to ensure correct query <br>results.** [rust/srql/src/query/otel_metrics.rs [413-430]](https://github.com/carverauto/serviceradar/pull/1958/files#diff-8106bfa2099b8a6d945b338532f8b1108467e2f0592ddbd64d546fcbce3e3613R413-R430) ```diff FilterOp::In | FilterOp::NotIn => { let values: Vec<String> = filter .value .as_list()? .iter() .map(|v| v.to_string()) .collect(); if values.is_empty() { - return Ok("1=1".into()); + return if matches!(filter.op, FilterOp::In) { + Ok("1=0".into()) // IN () is always false + } else { + Ok("1=1".into()) // NOT IN () is always true + }; } binds.push(SqlBindValue::TextArray(values)); let operator = if matches!(filter.op, FilterOp::In) { "= ANY(?)" } else { "<> ALL(?)" }; Ok(format!("{column} {operator}")) } ``` - [ ] **Apply / Chat** <!-- /improve --apply_suggestion=1 --> <details><summary>Suggestion importance[1-10]: 9</summary> __ Why: The suggestion correctly identifies a critical bug where an empty `IN` clause evaluates to `true` instead of `false`, leading to incorrect query results. The proposed fix of returning `1=0` is correct and essential for query correctness. </details></details></td><td align=center>High </td></tr><tr><td> <details><summary>Correctly handle empty NOT IN clause</summary> ___ **In <code>add_text_condition</code>, for an empty <code>NOT IN</code> clause, explicitly add a <code>1=1</code> SQL <br>condition to the <code>clauses</code> vector to represent an always-true condition.** [rust/srql/src/query/trace_summaries.rs [292-300]](https://github.com/carverauto/serviceradar/pull/1958/files#diff-ff98619eb5dc4d75205d1797477e9e2880f42081e8d0c61d6fd1d6e5926b72faR292-R300) ```diff FilterOp::NotIn => { let values = filter.value.as_list()?.to_vec(); if values.is_empty() { + clauses.push("1=1".to_string()); return Ok(()); } clauses.push(format!("{column} <> ALL(?)")); binds.push(SqlBindValue::TextArray(values)); } ``` - [ ] **Apply / Chat** <!-- /improve --apply_suggestion=2 --> <details><summary>Suggestion importance[1-10]: 2</summary> __ Why: The suggestion correctly states that `NOT IN ()` is always true, but the current code's behavior of adding no clause is logically equivalent to `AND TRUE` and is not a bug. The proposed change to add `1=1` is a minor style improvement for explicitness, not a bug fix. </details></details></td><td align=center>Low </td></tr><tr><td rowspan=1>High-level</td> <td> <details><summary>Refactor filter logic into shared helpers</summary> ___ **The filter logic is duplicated across several query modules, leading to <br>inconsistent SQL generation for operators like 'IN'. This should be refactored <br>into a centralized, reusable utility to ensure consistency and improve <br>maintainability.** ### Examples: <details> <summary> <a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-f4d3b33667f2e79a6ebe4cfff931f93c728d9a81c305ac13586e623850a504dbR441-R487">rust/srql/src/query/logs.rs [441-487]</a> </summary> ```rust fn build_text_clause(column: &str, filter: &Filter) -> Result<Option<(String, Vec<SqlBindValue>)>> { let mut binds = Vec::new(); let clause = match filter.op { FilterOp::Eq => { binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string())); format!("{column} = ?") } FilterOp::NotEq => { binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string())); format!("{column} <> ?") ... (clipped 37 lines) ``` </details> <details> <summary> <a href="https://github.com/carverauto/serviceradar/pull/1958/files#diff-8106bfa2099b8a6d945b338532f8b1108467e2f0592ddbd64d546fcbce3e3613R391-R436">rust/srql/src/query/otel_metrics.rs [391-436]</a> </summary> ```rust fn build_text_clause( column: &str, filter: &Filter, binds: &mut Vec<SqlBindValue>, ) -> Result<String> { match filter.op { FilterOp::Eq => { binds.push(SqlBindValue::Text(filter.value.as_scalar()?.to_string())); Ok(format!("{column} = ?")) } ... (clipped 36 lines) ``` </details> ### Solution Walkthrough: #### Before: ```rust // In rust/srql/src/query/logs.rs fn build_text_clause(column: &str, filter: &Filter) -> ... { match filter.op { // ... FilterOp::In | FilterOp::NotIn => { // ... generates "IN (...)" with multiple placeholders let placeholders: Vec<_> = values.iter().map(|_| "?".to_string()).collect(); format!("{column} {operator} ({})", placeholders.join(", ")) } // ... } } // In rust/srql/src/query/otel_metrics.rs fn build_text_clause(column: &str, filter: &Filter, ...) -> ... { match filter.op { // ... FilterOp::In | FilterOp::NotIn => { // ... generates "= ANY(?)" with a single array bind let operator = if matches!(filter.op, FilterOp::In) { "= ANY(?)" } else { "<> ALL(?)" }; Ok(format!("{column} {operator}")) } // ... } } ``` #### After: ```rust // In a new shared module, e.g., rust/srql/src/query/utils.rs pub fn build_text_clause(column: &str, filter: &Filter) -> Result<(String, Vec<SqlBindValue>)> { match filter.op { // ... FilterOp::In => { // ... single, consistent implementation for IN Ok((format!("{column} = ANY(?)"), vec![...])) } FilterOp::NotIn => { // ... single, consistent implementation for NOT IN Ok((format!("{column} <> ALL(?)"), vec![...])) } // ... other operators } } // In rust/srql/src/query/logs.rs and other modules fn build_stats_filter_clause(filter: &Filter) -> ... { // ... let (clause, binds) = query::utils::build_text_clause("some_column", filter)?; // ... } ``` <details><summary>Suggestion importance[1-10]: 9</summary> __ Why: The suggestion correctly identifies significant code duplication and resulting inconsistencies in SQL generation for filters across multiple query modules, which is a critical design issue. </details></details></td><td align=center>High </td></tr> <tr><td align="center" colspan="2"> - [ ] More <!-- /improve --more_suggestions=true --> </td><td></td></tr></tbody></table>
qodo-code-review[bot] commented 2025-11-19 08:37:52 +00:00 (Migrated from github.com)
Author
Owner

Imported GitHub PR comment.

Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551439129
Original created: 2025-11-19T08:37:52Z

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: build

Failed stage: Test []

Failed test name: ""

Failure summary:

The action failed due to Bazel loading-phase errors caused by OCI base image fetch failures from
Docker Hub, which resulted in many docker/image targets failing to load:
- Multiple oci_pull fetches
hit Docker Hub rate limiting and/or unauthenticated access errors (HTTP 429 Too Many Requests) when
retrieving image manifests:
- Examples:
- @@rules_oci++oci+nginx_alpine_linux_amd64 at
external/rules_oci+/oci/private/pull.bzl:155:13
- @@rules_oci++oci+node_20_alpine_linux_amd64 at
external/rules_oci+/oci/private/pull.bzl:155:13
- @@rules_oci++oci+ubuntu_jammy_linux_amd64 at
external/rules_oci+/oci/private/pull.bzl:155:13
- @@rules_oci++oci+ubuntu_noble and
@@rules_oci++oci+debian_bookworm_slim_linux_amd64 similarly failed
- Explicit warnings show 429
responses from Docker Hub for nginx, node, ubuntu, debian, alpine image manifest URLs (e.g., lines
6190, 6339, 6465, 6783, 7085).
- Bazel then reported “no such package” for the above external
repositories and “errors encountered while analyzing target … it will not be built,” culminating in:

- ERROR: command succeeded, but there were loading phase errors
- ERROR: Build did NOT complete
successfully
- Although all tests passed, the overall build failed because many top-level image
targets (under //docker/images:...) could not be analyzed/built due to missing image manifests.

In short: Docker Hub rate limiting/unauthenticated pulls prevented rules_oci from fetching required
base images, causing Bazel loading-phase errors and failing the CI job.

Relevant error logs:
1:  Runner name: 'arc-runner-set-pr9x2-runner-gnjps'
2:  Runner group name: 'Default'
...

123:  ^[[36;1mif command -v apt-get >/dev/null 2>&1; then^[[0m
124:  ^[[36;1m  sudo apt-get update^[[0m
125:  ^[[36;1m  sudo apt-get install -y build-essential pkg-config libssl-dev protobuf-compiler cmake flex bison^[[0m
126:  ^[[36;1melif command -v dnf >/dev/null 2>&1; then^[[0m
127:  ^[[36;1m  sudo dnf install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m
128:  ^[[36;1melif command -v yum >/dev/null 2>&1; then^[[0m
129:  ^[[36;1m  sudo yum install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m
130:  ^[[36;1melif command -v microdnf >/dev/null 2>&1; then^[[0m
131:  ^[[36;1m  sudo microdnf install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m
132:  ^[[36;1melse^[[0m
133:  ^[[36;1m  echo "Unsupported package manager; please install gcc, g++ (or clang), make, OpenSSL headers, pkg-config, and protoc manually." >&2^[[0m
134:  ^[[36;1m  exit 1^[[0m
135:  ^[[36;1mfi^[[0m
136:  ^[[36;1m^[[0m
137:  ^[[36;1mensure_pkg_config^[[0m
138:  ^[[36;1mprotoc --version || (echo "protoc installation failed" && exit 1)^[[0m
139:  shell: /usr/bin/bash -e {0}
...

739:  libprotoc 3.12.4
740:  ##[group]Run bazelbuild/setup-bazelisk@v3
741:  with:
742:  bazelisk-version: 1.x
743:  token: ***
744:  env:
745:  BUILDBUDDY_ORG_API_KEY: ***
746:  SRQL_TEST_DATABASE_URL: ***
747:  SRQL_TEST_ADMIN_URL: ***
748:  ##[endgroup]
749:  Attempting to download 1.x...
750:  Acquiring v1.27.0 from https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64
751:  Adding to the cache ...
752:  Successfully cached bazelisk to /home/runner/_work/_tool/bazelisk/1.27.0/x64
753:  Added bazelisk to the path
754:  ##[warning]Failed to restore: Cache service responded with 400
755:  Restored bazelisk cache dir @ /home/runner/.cache/bazelisk
...

777:  2025/11/19 08:34:56 Downloading https://releases.bazel.build/8.4.1/release/bazel-8.4.1-linux-x86_64...
778:  Extracting Bazel installation...
779:  Starting local Bazel server (8.4.1) and connecting to it...
780:  (08:35:03) ^[[32mINFO: ^[[0mInvocation ID: 21e08aad-1c90-4e7f-8f27-20722dc28428
781:  (08:35:03) ^[[32mINFO: ^[[0mStreaming build results to: ^[[36mhttps://carverauto.buildbuddy.io/invocation/21e08aad-1c90-4e7f-8f27-20722dc28428^[[0m
782:  (08:35:03) ^[[32mINFO: ^[[0mReading 'startup' options from /home/runner/_work/serviceradar/serviceradar/.bazelrc: --max_idle_secs=60
783:  (08:35:03) ^[[32mINFO: ^[[0mOptions provided by the client:
784:  Inherited 'common' options: --isatty=0 --terminal_columns=80
785:  (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc:
786:  Inherited 'common' options: --announce_rc --experimental_convenience_symlinks=clean --color=yes --curses=yes
787:  (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc.remote:
788:  Inherited 'common' options: --remote_header=x-buildbuddy-api-key=***
789:  (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc:
790:  Inherited 'build' options: --keep_going --jobs=auto --show_timestamps --action_env=OPENSSL_NO_PKG_CONFIG=1 --action_env=SRQL_TEST_DATABASE_URL --action_env=SRQL_TEST_ADMIN_URL --java_runtime_version=local_jdk --tool_java_runtime_version=local_jdk --@io_bazel_rules_go//go/config:pure --workspace_status_command=$(pwd)/scripts/workspace_status.sh --build_metadata=REPO_URL=git@github.com:carverauto/serviceradar.git
791:  (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc:
792:  'test' options: --test_output=errors --action_env=OPENSSL_NO_PKG_CONFIG=1 --action_env=SRQL_TEST_DATABASE_URL --action_env=SRQL_TEST_ADMIN_URL --@io_bazel_rules_go//go/config:pure --flaky_test_attempts=2
793:  (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition build:ci in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --keep_going --build_tag_filters=-manual --config=remote_base --build_metadata=ROLE=CI --bes_results_url=https://carverauto.buildbuddy.io/invocation/ --bes_backend=grpcs://carverauto.buildbuddy.io --remote_cache=grpcs://carverauto.buildbuddy.io --remote_timeout=15m --strategy=ExpandTemplate=local --strategy=NpmPackageExtract=local --strategy=CopyDirectory=local
794:  (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition build:remote_base in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --remote_executor=grpcs://remote.buildbuddy.io --host_platform=//build/rbe:rbe_platform --platforms=//build/rbe:rbe_platform --crosstool_top=@buildbuddy_toolchain//:toolchain --extra_toolchains=@buildbuddy_toolchain//:cc_toolchain --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 --copt=-Wno-use-after-free --java_language_version=11 --tool_java_language_version=11 --java_runtime_version=remotejdk_11 --tool_java_runtime_version=remotejdk_11 --define=EXECUTOR=remote --incompatible_strict_action_env --remote_download_minimal --remote_upload_local_results --jobs=100 --strategy=ExpandTemplate=local --strategy=NpmPackageExtract=local --strategy=CopyDirectory=local
795:  (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition test:ci in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --test_tag_filters=-manual --test_output=errors
796:  (08:35:03) ^[[32mINFO: ^[[0mCurrent date is 2025-11-19
...

6175:  Fetching ...sitory @@rules_oci++oci+ubuntu_jammy_linux_amd64; starting 14s
6176:  Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s
6177:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6178:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6179:  Fetching ...++go_deps+com_github_rs_zerolog; starting 14s ... (72 fetches)
6180:  ^[[1A^[[K
6181:  ^[[1A^[[K
6182:  ^[[1A^[[K
6183:  ^[[1A^[[K
6184:  ^[[1A^[[K
6185:  ^[[1A^[[K
6186:  ^[[1A^[[K
6187:  ^[[1A^[[K
6188:  ^[[1A^[[K
6189:  ^[[1A^[[K
6190:  ^[[1A^[[K(08:36:06) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/nginx/manifests/sha256:60e48a050b6408d0c5dd59b98b6e36bf0937a0bbe99304e3e9c0e63b7563443a failed: class java.io.IOException GET returned 429 Too Many Requests
6191:  (08:36:06) ^[[32mAnalyzing:^[[0m 990 targets (434 packages loaded, 14139 targets configur\
...

6245:  Fetching ...sitory @@rules_oci++oci+ubuntu_jammy_linux_amd64; starting 14s
6246:  Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s
6247:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6248:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6249:  Fetching ...++go_deps+com_github_rs_zerolog; starting 14s ... (72 fetches)
6250:  ^[[1A^[[K
6251:  ^[[1A^[[K
6252:  ^[[1A^[[K
6253:  ^[[1A^[[K
6254:  ^[[1A^[[K
6255:  ^[[1A^[[K
6256:  ^[[1A^[[K
6257:  ^[[1A^[[K
6258:  ^[[1A^[[K
6259:  ^[[1A^[[K
6260:  ^[[1A^[[K(08:36:06) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+nginx_alpine_linux_amd64':
6261:  Traceback (most recent call last):
6262:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
6263:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
6264:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
6265:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
6266:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
6267:  fail(
6268:  Error in fail: Unable to retrieve the image manifest. This could be due to
6269:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6277:  Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s
6278:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6279:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6280:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s
6281:  Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (71 fetches)
6282:  ^[[1A^[[K
6283:  ^[[1A^[[K
6284:  ^[[1A^[[K
6285:  ^[[1A^[[K
6286:  ^[[1A^[[K
6287:  ^[[1A^[[K
6288:  ^[[1A^[[K
6289:  ^[[1A^[[K
6290:  ^[[1A^[[K
6291:  ^[[1A^[[K
6292:  ^[[1A^[[K(08:36:06) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+nginx_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to
6293:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6324:  Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s
6325:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6326:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6327:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s
6328:  Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (75 fetches)
6329:  ^[[1A^[[K
6330:  ^[[1A^[[K
6331:  ^[[1A^[[K
6332:  ^[[1A^[[K
6333:  ^[[1A^[[K
6334:  ^[[1A^[[K
6335:  ^[[1A^[[K
6336:  ^[[1A^[[K
6337:  ^[[1A^[[K
6338:  ^[[1A^[[K
6339:  ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/node/manifests/sha256:6a91081a440be0b57336fbc4ee87f3dab1a2fd6f80cdb355dcf960e13bda3b59 failed: class java.io.IOException GET returned 429 Too Many Requests
6340:  (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\
...

6394:  Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s
6395:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6396:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6397:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s
6398:  Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (74 fetches)
6399:  ^[[1A^[[K
6400:  ^[[1A^[[K
6401:  ^[[1A^[[K
6402:  ^[[1A^[[K
6403:  ^[[1A^[[K
6404:  ^[[1A^[[K
6405:  ^[[1A^[[K
6406:  ^[[1A^[[K
6407:  ^[[1A^[[K
6408:  ^[[1A^[[K
6409:  ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+node_20_alpine_linux_amd64':
6410:  Traceback (most recent call last):
6411:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
6412:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
6413:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
6414:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
6415:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
6416:  fail(
6417:  Error in fail: Unable to retrieve the image manifest. This could be due to
6418:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6426:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6427:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6428:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s
6429:  Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 14s
6430:  Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (73 fetches)
6431:  ^[[1A^[[K
6432:  ^[[1A^[[K
6433:  ^[[1A^[[K
6434:  ^[[1A^[[K
6435:  ^[[1A^[[K
6436:  ^[[1A^[[K
6437:  ^[[1A^[[K
6438:  ^[[1A^[[K
6439:  ^[[1A^[[K
6440:  ^[[1A^[[K
6441:  ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+node_20_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to
6442:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6450:  Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s
6451:  Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s
6452:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s
6453:  Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 14s
6454:  Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (74 fetches)
6455:  ^[[1A^[[K
6456:  ^[[1A^[[K
6457:  ^[[1A^[[K
6458:  ^[[1A^[[K
6459:  ^[[1A^[[K
6460:  ^[[1A^[[K
6461:  ^[[1A^[[K
6462:  ^[[1A^[[K
6463:  ^[[1A^[[K
6464:  ^[[1A^[[K
6465:  ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/ubuntu/manifests/sha256:985be7c735afdf6f18aaa122c23f87d989c30bba4e9aa24c8278912aac339a8d failed: class java.io.IOException GET returned 429 Too Many Requests
6466:  (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\
...

6544:  Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (74 fetches)
6545:  ^[[1A^[[K
6546:  ^[[1A^[[K
6547:  ^[[1A^[[K
6548:  ^[[1A^[[K
6549:  ^[[1A^[[K
6550:  ^[[1A^[[K
6551:  ^[[1A^[[K
6552:  ^[[1A^[[K
6553:  ^[[1A^[[K
6554:  ^[[1A^[[K
6555:  ^[[1A^[[K
6556:  ^[[1A^[[K
6557:  ^[[1A^[[K
6558:  ^[[1A^[[K
6559:  ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_noble':
6560:  Traceback (most recent call last):
6561:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 354, column 55, in _oci_alias_impl
6562:  manifest, _, digest = downloader.download_manifest(rctx.attr.identifier, "mf.json")
6563:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
6564:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
6565:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
6566:  fail(
6567:  Error in fail: Unable to retrieve the image manifest. This could be due to
6568:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6584:  Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (73 fetches)
6585:  ^[[1A^[[K
6586:  ^[[1A^[[K
6587:  ^[[1A^[[K
6588:  ^[[1A^[[K
6589:  ^[[1A^[[K
6590:  ^[[1A^[[K
6591:  ^[[1A^[[K
6592:  ^[[1A^[[K
6593:  ^[[1A^[[K
6594:  ^[[1A^[[K
6595:  ^[[1A^[[K
6596:  ^[[1A^[[K
6597:  ^[[1A^[[K
6598:  ^[[1A^[[K
6599:  ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_noble//': Unable to retrieve the image manifest. This could be due to
6600:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6674:  Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (77 fetches)
6675:  ^[[1A^[[K
6676:  ^[[1A^[[K
6677:  ^[[1A^[[K
6678:  ^[[1A^[[K
6679:  ^[[1A^[[K
6680:  ^[[1A^[[K
6681:  ^[[1A^[[K
6682:  ^[[1A^[[K
6683:  ^[[1A^[[K
6684:  ^[[1A^[[K
6685:  ^[[1A^[[K
6686:  ^[[1A^[[K
6687:  ^[[1A^[[K
6688:  ^[[1A^[[K
6689:  ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/ubuntu/manifests/sha256:a1af69f6c9bc3657289d23abff8ee360d2417d6cf69719e287822443dca3dc57 failed: class java.io.IOException GET returned 429 Too Many Requests
6690:  (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\
...

6768:  Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (76 fetches)
6769:  ^[[1A^[[K
6770:  ^[[1A^[[K
6771:  ^[[1A^[[K
6772:  ^[[1A^[[K
6773:  ^[[1A^[[K
6774:  ^[[1A^[[K
6775:  ^[[1A^[[K
6776:  ^[[1A^[[K
6777:  ^[[1A^[[K
6778:  ^[[1A^[[K
6779:  ^[[1A^[[K
6780:  ^[[1A^[[K
6781:  ^[[1A^[[K
6782:  ^[[1A^[[K
6783:  ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/debian/manifests/sha256:48fa1e32d5ad897f7748b4b67d1ffb9e2ec46f4129f037afa3456a99f937203a failed: class java.io.IOException GET returned 429 Too Many Requests
6784:  (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\
...

6798:  Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (76 fetches)
6799:  ^[[1A^[[K
6800:  ^[[1A^[[K
6801:  ^[[1A^[[K
6802:  ^[[1A^[[K
6803:  ^[[1A^[[K
6804:  ^[[1A^[[K
6805:  ^[[1A^[[K
6806:  ^[[1A^[[K
6807:  ^[[1A^[[K
6808:  ^[[1A^[[K
6809:  ^[[1A^[[K
6810:  ^[[1A^[[K
6811:  ^[[1A^[[K
6812:  ^[[1A^[[K
6813:  ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_jammy_linux_amd64':
6814:  Traceback (most recent call last):
6815:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
6816:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
6817:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
6818:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
6819:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
6820:  fail(
6821:  Error in fail: Unable to retrieve the image manifest. This could be due to
6822:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6869:  Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (76 fetches)
6870:  ^[[1A^[[K
6871:  ^[[1A^[[K
6872:  ^[[1A^[[K
6873:  ^[[1A^[[K
6874:  ^[[1A^[[K
6875:  ^[[1A^[[K
6876:  ^[[1A^[[K
6877:  ^[[1A^[[K
6878:  ^[[1A^[[K
6879:  ^[[1A^[[K
6880:  ^[[1A^[[K
6881:  ^[[1A^[[K
6882:  ^[[1A^[[K
6883:  ^[[1A^[[K
6884:  ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to
6885:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6934:  Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (78 fetches)
6935:  ^[[1A^[[K
6936:  ^[[1A^[[K
6937:  ^[[1A^[[K
6938:  ^[[1A^[[K
6939:  ^[[1A^[[K
6940:  ^[[1A^[[K
6941:  ^[[1A^[[K
6942:  ^[[1A^[[K
6943:  ^[[1A^[[K
6944:  ^[[1A^[[K
6945:  ^[[1A^[[K
6946:  ^[[1A^[[K
6947:  ^[[1A^[[K
6948:  ^[[1A^[[K
6949:  ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+debian_bookworm_slim_linux_amd64':
6950:  Traceback (most recent call last):
6951:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
6952:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
6953:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
6954:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
6955:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
6956:  fail(
6957:  Error in fail: Unable to retrieve the image manifest. This could be due to
6958:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

6974:  Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (77 fetches)
6975:  ^[[1A^[[K
6976:  ^[[1A^[[K
6977:  ^[[1A^[[K
6978:  ^[[1A^[[K
6979:  ^[[1A^[[K
6980:  ^[[1A^[[K
6981:  ^[[1A^[[K
6982:  ^[[1A^[[K
6983:  ^[[1A^[[K
6984:  ^[[1A^[[K
6985:  ^[[1A^[[K
6986:  ^[[1A^[[K
6987:  ^[[1A^[[K
6988:  ^[[1A^[[K
6989:  ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+debian_bookworm_slim_linux_amd64//': Unable to retrieve the image manifest. This could be due to
6990:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

7070:  ^[[1A^[[K
7071:  ^[[1A^[[K
7072:  ^[[1A^[[K
7073:  ^[[1A^[[K
7074:  ^[[1A^[[K
7075:  ^[[1A^[[K
7076:  ^[[1A^[[K
7077:  ^[[1A^[[K
7078:  ^[[1A^[[K
7079:  ^[[1A^[[K
7080:  ^[[1A^[[K
7081:  ^[[1A^[[K
7082:  ^[[1A^[[K
7083:  ^[[1A^[[K
7084:  ^[[1A^[[K
7085:  ^[[1A^[[K(08:36:08) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/alpine/manifests/sha256:f25ebd2af60b9de8e26e5100fe6f493beb81bff010f27e84f223ad19886a78f0 failed: class java.io.IOException GET returned 429 Too Many Requests
7086:  (08:36:08) ^[[32mAnalyzing:^[[0m 990 targets (457 packages loaded, 14233 targets configur\
...

7193:  Fetching ..._github_charmbracelet_bubbletea; starting 16s ... (78 fetches)
7194:  ^[[1A^[[K
7195:  ^[[1A^[[K
7196:  ^[[1A^[[K
7197:  ^[[1A^[[K
7198:  ^[[1A^[[K
7199:  ^[[1A^[[K
7200:  ^[[1A^[[K
7201:  ^[[1A^[[K
7202:  ^[[1A^[[K
7203:  ^[[1A^[[K
7204:  ^[[1A^[[K
7205:  ^[[1A^[[K
7206:  ^[[1A^[[K
7207:  ^[[1A^[[K
7208:  ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+alpine_3_20_linux_amd64':
7209:  Traceback (most recent call last):
7210:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
7211:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
7212:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
7213:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
7214:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
7215:  fail(
7216:  Error in fail: Unable to retrieve the image manifest. This could be due to
7217:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

7231:  Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 16s
7232:  Fetching ...om_github_charmbracelet_bubbles; starting 16s ... (78 fetches)
7233:  ^[[1A^[[K
7234:  ^[[1A^[[K
7235:  ^[[1A^[[K
7236:  ^[[1A^[[K
7237:  ^[[1A^[[K
7238:  ^[[1A^[[K
7239:  ^[[1A^[[K
7240:  ^[[1A^[[K
7241:  ^[[1A^[[K
7242:  ^[[1A^[[K
7243:  ^[[1A^[[K
7244:  ^[[1A^[[K
7245:  ^[[1A^[[K
7246:  ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
7247:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

7330:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 17s
7331:  Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 17s
7332:  Fetching ...zelle++go_deps+com_github_charmbracelet_lipgloss; starting 17s
7333:  Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 17s
7334:  Fetching ...om_github_charmbracelet_bubbles; starting 17s ... (81 fetches)
7335:  ^[[1A^[[K
7336:  ^[[1A^[[K
7337:  ^[[1A^[[K
7338:  ^[[1A^[[K
7339:  ^[[1A^[[K
7340:  ^[[1A^[[K
7341:  ^[[1A^[[K
7342:  ^[[1A^[[K
7343:  ^[[1A^[[K
7344:  ^[[1A^[[K
7345:  ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_noble_linux_amd64':
7346:  Traceback (most recent call last):
7347:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl
7348:  manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json")
7349:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda
7350:  download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output),
7351:  File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest
7352:  fail(
7353:  Error in fail: Unable to retrieve the image manifest. This could be due to
7354:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

7362:  Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 17s
7363:  Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 17s
7364:  Fetching ...zelle++go_deps+com_github_charmbracelet_lipgloss; starting 17s
7365:  Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 17s
7366:  Fetching ...om_github_charmbracelet_bubbles; starting 17s ... (76 fetches)
7367:  ^[[1A^[[K
7368:  ^[[1A^[[K
7369:  ^[[1A^[[K
7370:  ^[[1A^[[K
7371:  ^[[1A^[[K
7372:  ^[[1A^[[K
7373:  ^[[1A^[[K
7374:  ^[[1A^[[K
7375:  ^[[1A^[[K
7376:  ^[[1A^[[K
7377:  ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to
7378:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

8559:  ^[[1A^[[K
8560:  ^[[1A^[[K
8561:  ^[[1A^[[K
8562:  ^[[1A^[[K
8563:  ^[[1A^[[K
8564:  ^[[1A^[[K
8565:  ^[[1A^[[K
8566:  ^[[1A^[[K
8567:  ^[[1A^[[K
8568:  ^[[1A^[[K
8569:  ^[[1A^[[K
8570:  ^[[1A^[[K
8571:  ^[[1A^[[K
8572:  ^[[1A^[[K
8573:  ^[[1A^[[K(08:36:19) ^[[32mINFO: ^[[0mFrom Executing genrule //docker/images:cnpg_postgresql_16_6_rootfs_tar:
8574:  Error: pulling layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout: parsing reference "layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout": could not parse reference: layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout
8575:  (08:36:19) ^[[32mAnalyzing:^[[0m 990 targets (1141 packages loaded, 34482 targets configu\
...

8821:  ^[[1A^[[K
8822:  ^[[1A^[[K
8823:  ^[[1A^[[K
8824:  ^[[1A^[[K
8825:  ^[[1A^[[K
8826:  ^[[1A^[[K
8827:  ^[[1A^[[K
8828:  ^[[1A^[[K
8829:  ^[[1A^[[K
8830:  ^[[1A^[[K
8831:  ^[[1A^[[K
8832:  ^[[1A^[[K
8833:  ^[[1A^[[K
8834:  ^[[1A^[[K
8835:  ^[[1A^[[K
8836:  ^[[1A^[[K(08:36:20) ^[[35mWARNING: ^[[0mDownload from https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64.tar.xz failed: class java.io.FileNotFoundException GET returned 404 Not Found
8837:  (08:36:20) ^[[32mAnalyzing:^[[0m 990 targets (1380 packages loaded, 45116 targets configu\
...

10143:  ^[[1A^[[K
10144:  ^[[1A^[[K
10145:  ^[[1A^[[K
10146:  ^[[1A^[[K
10147:  ^[[1A^[[K
10148:  ^[[1A^[[K
10149:  ^[[1A^[[K
10150:  ^[[1A^[[K
10151:  ^[[1A^[[K
10152:  ^[[1A^[[K
10153:  ^[[1A^[[K
10154:  ^[[1A^[[K
10155:  ^[[1A^[[K
10156:  ^[[1A^[[K
10157:  ^[[1A^[[K
10158:  ^[[1A^[[K(08:36:29) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1007:10: //docker/images:nginx_image_amd64 depends on @@rules_oci++oci+nginx_alpine_linux_amd64//:nginx_alpine_linux_amd64 in repository @@rules_oci++oci+nginx_alpine_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+nginx_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to
10159:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

11840:  ^[[1A^[[K
11841:  ^[[1A^[[K
11842:  ^[[1A^[[K
11843:  ^[[1A^[[K
11844:  ^[[1A^[[K
11845:  ^[[1A^[[K
11846:  ^[[1A^[[K
11847:  ^[[1A^[[K
11848:  ^[[1A^[[K
11849:  ^[[1A^[[K
11850:  ^[[1A^[[K
11851:  ^[[1A^[[K
11852:  ^[[1A^[[K
11853:  ^[[1A^[[K
11854:  ^[[1A^[[K
11855:  ^[[1A^[[K(08:36:38) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1082:10: //docker/images:web_image_base_amd64 depends on @@rules_oci++oci+node_20_alpine_linux_amd64//:node_20_alpine_linux_amd64 in repository @@rules_oci++oci+node_20_alpine_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+node_20_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to
11856:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14719:  ^[[1A^[[K
14720:  ^[[1A^[[K
14721:  ^[[1A^[[K
14722:  ^[[1A^[[K
14723:  ^[[1A^[[K
14724:  ^[[1A^[[K
14725:  ^[[1A^[[K
14726:  ^[[1A^[[K
14727:  ^[[1A^[[K
14728:  ^[[1A^[[K
14729:  ^[[1A^[[K
14730:  ^[[1A^[[K
14731:  ^[[1A^[[K
14732:  ^[[1A^[[K
14733:  ^[[1A^[[K
14734:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:839:10: //docker/images:poller_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14735:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14755:  ^[[1A^[[K
14756:  ^[[1A^[[K
14757:  ^[[1A^[[K
14758:  ^[[1A^[[K
14759:  ^[[1A^[[K
14760:  ^[[1A^[[K
14761:  ^[[1A^[[K
14762:  ^[[1A^[[K
14763:  ^[[1A^[[K
14764:  ^[[1A^[[K
14765:  ^[[1A^[[K
14766:  ^[[1A^[[K
14767:  ^[[1A^[[K
14768:  ^[[1A^[[K
14769:  ^[[1A^[[K
14770:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1282:10: //docker/images:kong_config_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14771:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14791:  ^[[1A^[[K
14792:  ^[[1A^[[K
14793:  ^[[1A^[[K
14794:  ^[[1A^[[K
14795:  ^[[1A^[[K
14796:  ^[[1A^[[K
14797:  ^[[1A^[[K
14798:  ^[[1A^[[K
14799:  ^[[1A^[[K
14800:  ^[[1A^[[K
14801:  ^[[1A^[[K
14802:  ^[[1A^[[K
14803:  ^[[1A^[[K
14804:  ^[[1A^[[K
14805:  ^[[1A^[[K
14806:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:881:10: //docker/images:sync_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14807:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14827:  ^[[1A^[[K
14828:  ^[[1A^[[K
14829:  ^[[1A^[[K
14830:  ^[[1A^[[K
14831:  ^[[1A^[[K
14832:  ^[[1A^[[K
14833:  ^[[1A^[[K
14834:  ^[[1A^[[K
14835:  ^[[1A^[[K
14836:  ^[[1A^[[K
14837:  ^[[1A^[[K
14838:  ^[[1A^[[K
14839:  ^[[1A^[[K
14840:  ^[[1A^[[K
14841:  ^[[1A^[[K
14842:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:974:10: //docker/images:config_updater_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14843:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14863:  ^[[1A^[[K
14864:  ^[[1A^[[K
14865:  ^[[1A^[[K
14866:  ^[[1A^[[K
14867:  ^[[1A^[[K
14868:  ^[[1A^[[K
14869:  ^[[1A^[[K
14870:  ^[[1A^[[K
14871:  ^[[1A^[[K
14872:  ^[[1A^[[K
14873:  ^[[1A^[[K
14874:  ^[[1A^[[K
14875:  ^[[1A^[[K
14876:  ^[[1A^[[K
14877:  ^[[1A^[[K
14878:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:455:10: //docker/images:agent_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14879:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14899:  ^[[1A^[[K
14900:  ^[[1A^[[K
14901:  ^[[1A^[[K
14902:  ^[[1A^[[K
14903:  ^[[1A^[[K
14904:  ^[[1A^[[K
14905:  ^[[1A^[[K
14906:  ^[[1A^[[K
14907:  ^[[1A^[[K
14908:  ^[[1A^[[K
14909:  ^[[1A^[[K
14910:  ^[[1A^[[K
14911:  ^[[1A^[[K
14912:  ^[[1A^[[K
14913:  ^[[1A^[[K
14914:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:746:10: //docker/images:snmp_checker_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14915:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14935:  ^[[1A^[[K
14936:  ^[[1A^[[K
14937:  ^[[1A^[[K
14938:  ^[[1A^[[K
14939:  ^[[1A^[[K
14940:  ^[[1A^[[K
14941:  ^[[1A^[[K
14942:  ^[[1A^[[K
14943:  ^[[1A^[[K
14944:  ^[[1A^[[K
14945:  ^[[1A^[[K
14946:  ^[[1A^[[K
14947:  ^[[1A^[[K
14948:  ^[[1A^[[K
14949:  ^[[1A^[[K
14950:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1401:10: //docker/images:tools_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14951:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

14971:  ^[[1A^[[K
14972:  ^[[1A^[[K
14973:  ^[[1A^[[K
14974:  ^[[1A^[[K
14975:  ^[[1A^[[K
14976:  ^[[1A^[[K
14977:  ^[[1A^[[K
14978:  ^[[1A^[[K
14979:  ^[[1A^[[K
14980:  ^[[1A^[[K
14981:  ^[[1A^[[K
14982:  ^[[1A^[[K
14983:  ^[[1A^[[K
14984:  ^[[1A^[[K
14985:  ^[[1A^[[K
14986:  ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:535:10: //docker/images:mapper_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
14987:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15038:  ^[[1A^[[K
15039:  ^[[1A^[[K
15040:  ^[[1A^[[K
15041:  ^[[1A^[[K
15042:  ^[[1A^[[K
15043:  ^[[1A^[[K
15044:  ^[[1A^[[K
15045:  ^[[1A^[[K
15046:  ^[[1A^[[K
15047:  ^[[1A^[[K
15048:  ^[[1A^[[K
15049:  ^[[1A^[[K
15050:  ^[[1A^[[K
15051:  ^[[1A^[[K
15052:  ^[[1A^[[K
15053:  ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:495:10: //docker/images:db_event_writer_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15054:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15068:  Fetching ..._tools; Extracting rust-std-1.86.0-x86_64-unknown-linux-gnu.ta\
15069:  r.xz
15070:  ^[[1A^[[K
15071:  ^[[1A^[[K
15072:  ^[[1A^[[K
15073:  ^[[1A^[[K
15074:  ^[[1A^[[K
15075:  ^[[1A^[[K
15076:  ^[[1A^[[K
15077:  ^[[1A^[[K
15078:  ^[[1A^[[K
15079:  ^[[1A^[[K
15080:  ^[[1A^[[K
15081:  ^[[1A^[[K
15082:  ^[[1A^[[K
15083:  ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:414:10: //docker/images:core_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15084:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15098:  Fetching ..._tools; Extracting rust-std-1.86.0-x86_64-unknown-linux-gnu.ta\
15099:  r.xz
15100:  ^[[1A^[[K
15101:  ^[[1A^[[K
15102:  ^[[1A^[[K
15103:  ^[[1A^[[K
15104:  ^[[1A^[[K
15105:  ^[[1A^[[K
15106:  ^[[1A^[[K
15107:  ^[[1A^[[K
15108:  ^[[1A^[[K
15109:  ^[[1A^[[K
15110:  ^[[1A^[[K
15111:  ^[[1A^[[K
15112:  ^[[1A^[[K
15113:  ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:576:10: //docker/images:datasvc_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15114:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15394:  ^[[1A^[[K(08:36:58) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 85841 targets configu\
15395:  red)
15396:  ^[[32m[7,633 / 7,652]^[[0m 33 / 34 tests;^[[0m 5 actions, 3 running^[[0m; last test: ^[[32m...e:core_test^[[0m
15397:  Executing genrule //docker/images:age_extension_layer; 0s local
15398:  Executing genrule //docker/images:timescaledb_extension_layer; 0s local
15399:  GoCompilePkg cmd/poller/poller.a; 0s remote, remote-cache
15400:  [Sched] GoCompilePkg cmd/poller/poller_lib.a
15401:  [Sched] GoCompilePkgExternal pkg/poller/poller_test_test.external.a
15402:  ^[[1A^[[K
15403:  ^[[1A^[[K
15404:  ^[[1A^[[K
15405:  ^[[1A^[[K
15406:  ^[[1A^[[K
15407:  ^[[1A^[[K
15408:  ^[[1A^[[K
15409:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:661:10: //docker/images:trapd_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15410:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15429:  ^[[1A^[[K(08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15430:  red)
15431:  ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m
15432:  Executing genrule //docker/images:age_extension_layer; 1s local
15433:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15434:  GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache
15435:  //pkg/poller:poller_test; 0s remote, remote-cache
15436:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15437:  ^[[1A^[[K
15438:  ^[[1A^[[K
15439:  ^[[1A^[[K
15440:  ^[[1A^[[K
15441:  ^[[1A^[[K
15442:  ^[[1A^[[K
15443:  ^[[1A^[[K
15444:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1249:10: //docker/images:srql_image_amd64 depends on @@rules_oci++oci+ubuntu_noble//:ubuntu_noble in repository @@rules_oci++oci+ubuntu_noble which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble//': Unable to retrieve the image manifest. This could be due to
15445:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15447:  (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15448:  red)
15449:  ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m
15450:  Executing genrule //docker/images:age_extension_layer; 1s local
15451:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15452:  GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache
15453:  //pkg/poller:poller_test; 0s remote, remote-cache
15454:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15455:  ^[[1A^[[K
15456:  ^[[1A^[[K
15457:  ^[[1A^[[K
15458:  ^[[1A^[[K
15459:  ^[[1A^[[K
15460:  ^[[1A^[[K
15461:  ^[[1A^[[K
15462:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:935:10: //docker/images:zen_image_amd64 depends on @@rules_oci++oci+ubuntu_noble_linux_amd64//:ubuntu_noble_linux_amd64 in repository @@rules_oci++oci+ubuntu_noble_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15463:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15465:  (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15466:  red)
15467:  ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m
15468:  Executing genrule //docker/images:age_extension_layer; 1s local
15469:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15470:  GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache
15471:  //pkg/poller:poller_test; 0s remote, remote-cache
15472:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15473:  ^[[1A^[[K
15474:  ^[[1A^[[K
15475:  ^[[1A^[[K
15476:  ^[[1A^[[K
15477:  ^[[1A^[[K
15478:  ^[[1A^[[K
15479:  ^[[1A^[[K
15480:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:619:10: //docker/images:flowgger_image_amd64 depends on @@rules_oci++oci+ubuntu_noble_linux_amd64//:ubuntu_noble_linux_amd64 in repository @@rules_oci++oci+ubuntu_noble_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15481:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15483:  (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15484:  red)
15485:  ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m
15486:  Executing genrule //docker/images:age_extension_layer; 1s local
15487:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15488:  GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache
15489:  //pkg/poller:poller_test; 0s remote, remote-cache
15490:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15491:  ^[[1A^[[K
15492:  ^[[1A^[[K
15493:  ^[[1A^[[K
15494:  ^[[1A^[[K
15495:  ^[[1A^[[K
15496:  ^[[1A^[[K
15497:  ^[[1A^[[K
15498:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:789:10: //docker/images:rperf_client_image_amd64 depends on @@rules_oci++oci+debian_bookworm_slim_linux_amd64//:debian_bookworm_slim_linux_amd64 in repository @@rules_oci++oci+debian_bookworm_slim_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+debian_bookworm_slim_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15499:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15501:  (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15502:  red)
15503:  ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m
15504:  Executing genrule //docker/images:age_extension_layer; 1s local
15505:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15506:  GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache
15507:  //pkg/poller:poller_test; 0s remote, remote-cache
15508:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15509:  ^[[1A^[[K
15510:  ^[[1A^[[K
15511:  ^[[1A^[[K
15512:  ^[[1A^[[K
15513:  ^[[1A^[[K
15514:  ^[[1A^[[K
15515:  ^[[1A^[[K
15516:  ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:703:10: //docker/images:otel_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to
15517:  *) Authentication problems. Check if `docker pull` command succeeds with same parameters.
...

15526:  Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting
15527:  ^[[1A^[[K
15528:  ^[[1A^[[K
15529:  ^[[1A^[[K
15530:  ^[[1A^[[K
15531:  ^[[1A^[[K
15532:  ^[[1A^[[K
15533:  ^[[1A^[[K
15534:  ^[[1A^[[K(08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\
15535:  red)
15536:  ^[[32m[8,023 / 9,481]^[[0m 33 / 36 tests;^[[0m 96 actions, 17 running^[[0m; last test: ^[[32m...core_test^[[0m
15537:  Executing genrule //docker/images:age_extension_layer; 1s local
15538:  Executing genrule //docker/images:timescaledb_extension_layer; 1s local
15539:  @@rules_rust++crate+rust_crates__rustix-1.1.2//:_bs-; 0s local
15540:  @@rules_rust++crate+rust_crates__logos-codegen-0.15.1//:_bs-; 0s local
15541:  @@rules_rust++i2+rules_rust_ctve__thiserror-1.0.69//:_bs-; 0s local
15542:  @@rules_rust++crate+rust_crates__syn-1.0.109//:_bs-; 0s local
...

15556:  ^[[1A^[[K
15557:  ^[[1A^[[K
15558:  ^[[1A^[[K
15559:  ^[[1A^[[K(08:37:00) ^[[32mINFO: ^[[0mFrom Compiling src/google/protobuf/compiler/rust/relative_path.cc:
15560:  external/protobuf+/src/google/protobuf/compiler/rust/relative_path.cc: In member function 'std::string google::protobuf::compiler::rust::RelativePath::Relative(const google::protobuf::compiler::rust::RelativePath&) const':
15561:  external/protobuf+/src/google/protobuf/compiler/rust/relative_path.cc:65:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::basic_string_view<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
15562:  65 |   for (int i = 0; i < current_segments.size(); ++i) {
15563:  |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~
15564:  (08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2262 packages loaded, 86957 targets configu\
15565:  red)
15566:  ^[[32m[8,102 / 9,665]^[[0m 33 / 37 tests;^[[0m 82 actions, 33 running^[[0m; last test: ^[[32m...core_test^[[0m
15567:  Executing genrule //docker/images:age_extension_layer; 2s local
15568:  Executing genrule //docker/images:timescaledb_extension_layer; 2s local
15569:  @@rules_rust++crate+rust_crates__nix-0.30.1//:_bs-; 0s local
15570:  @@rules_rust++crate+rust_crates__anyhow-1.0.100//:_bs-; 0s local
15571:  @@rules_rust++crate+rust_crates__thiserror-2.0.17//:_bs-; 0s local
15572:  @@rules_rust++crate+rust_crates__rustix-0.38.44//:_bs-; 0s local
15573:  @@rules_rust++crate+rust_crates__pulldown-cmark-0.13.0//:_bs-; 0s local
15574:  @@rules_rust++crate+rust_crates__thiserror-1.0.69//:_bs-; 0s local ...
15575:  ^[[1A^[[K
15576:  ^[[1A^[[K
15577:  ^[[1A^[[K
15578:  ^[[1A^[[K
15579:  ^[[1A^[[K
15580:  ^[[1A^[[K
15581:  ^[[1A^[[K
15582:  ^[[1A^[[K
15583:  ^[[1A^[[K
15584:  ^[[1A^[[K
15585:  ^[[1A^[[K(08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2262 packages loaded, 86957 targets configu\
15586:  red)
15587:  ^[[32m[8,263 / 9,945]^[[0m 33 / 40 tests;^[[0m 77 actions, 29 running^[[0m; last test: ^[[32m...core_test^[[0m
15588:  Executing genrule //docker/images:age_extension_layer; 2s local
15589:  Executing genrule //docker/images:timescaledb_extension_layer; 2s local
15590:  @@rules_rust++crate+rust_crates__thiserror-2.0.17//:_bs-; 0s local
15591:  @@rules_rust++crate+rust_crates__rustix-0.38.44//:_bs-; 0s local
15592:  @@rules_rust++crate+rust_crates__thiserror-1.0.69//:_bs-; 0s local
15593:  @@rules_rust++crate+rust_crates__protobuf-3.7.2//:_bs-; 0s local
...

15911:  [Prepa] Compiling Rust rlib proc_macro2 v1.0.93 (17 files) [for tool]
15912:  ^[[1A^[[K
15913:  ^[[1A^[[K
15914:  ^[[1A^[[K
15915:  ^[[1A^[[K
15916:  ^[[1A^[[K
15917:  ^[[1A^[[K
15918:  ^[[1A^[[K
15919:  ^[[1A^[[K
15920:  ^[[1A^[[K(08:37:02) ^[[32m[8,793 / 10,916]^[[0m 33 / 40 tests;^[[0m 6 actions, 4 running^[[0m; last test: ^[[32m//\
15921:  pkg/core:core_test^[[0m
15922:  Executing genrule //docker/images:age_extension_layer; 4s local
15923:  Executing genrule //docker/images:timescaledb_extension_layer; 4s local
15924:  GoLink cmd/poller/poller_/poller; 1s remote, remote-cache
15925:  GoLink pkg/poller/poller_test_/poller_test; 0s remote, remote-cache
15926:  ...//:thiserror_impl; 0s remote, remote-cache
15927:  [Prepa] Compiling Rust proc-macro yoke_derive v0.7.5 (3 files) [for tool]
...

16051:  ^[[1A^[[K
16052:  ^[[1A^[[K
16053:  ^[[1A^[[K
16054:  ^[[1A^[[K
16055:  ^[[1A^[[K
16056:  ^[[1A^[[K
16057:  ^[[1A^[[K
16058:  ^[[1A^[[K(08:37:04) ^[[32m[9,545 / 10,917]^[[0m 33 / 40 tests;^[[0m 97 actions, 4 running^[[0m; last test: ^[[32m/\
16059:  /pkg/core:core_test^[[0m
16060:  Executing genrule //docker/images:age_extension_layer; 6s local
16061:  Executing genrule //docker/images:timescaledb_extension_layer; 6s local
16062:  //packaging/poller:poller_data; 1s remote, remote-cache
16063:  //docker/images:poller_layer_amd64; 1s remote, remote-cache
16064:  Testing //pkg/poller:poller_test; 0s remote, remote-cache
16065:  ...//:_bs; 0s remote, remote-cache
16066:  Running Cargo build script thiserror; 0s remote, remote-cache
16067:  Running Cargo build script axum; 0s remote, remote-cache ...
...

16388:  Compiling Rust rlib srql_lib (27 files); 3s remote, remote-cache
16389:  ^[[1A^[[K
16390:  ^[[1A^[[K
16391:  ^[[1A^[[K
16392:  ^[[1A^[[K
16393:  ^[[1A^[[K(08:37:11) ^[[32m[10,904 / 10,921]^[[0m 38 / 40 tests;^[[0m 3 actions running^[[0m; last test: ^[[32m//cm\
16394:  d/consumers/zen:zen_lib_test^[[0m
16395:  Executing genrule //docker/images:age_extension_layer; 12s local
16396:  Executing genrule //docker/images:timescaledb_extension_layer; 12s local
16397:  Compiling Rust rlib srql_lib (27 files); 4s remote, remote-cache
16398:  ^[[1A^[[K
16399:  ^[[1A^[[K
16400:  ^[[1A^[[K
16401:  ^[[1A^[[K
16402:  ^[[1A^[[K(08:37:11) ^[[32mINFO: ^[[0mFrom Executing genrule //docker/images:age_extension_layer:
16403:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/age.o src/backend/age.c
16404:  (08:37:11) ^[[32m[10,904 / 10,921]^[[0m 38 / 40 tests;^[[0m 3 actions running^[[0m; last test: ^[[32m//cm\
16405:  d/consumers/zen:zen_lib_test^[[0m
16406:  Executing genrule //docker/images:age_extension_layer; 13s local
16407:  Executing genrule //docker/images:timescaledb_extension_layer; 13s local
16408:  Compiling Rust rlib srql_lib (27 files); 4s remote, remote-cache
16409:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/catalog/ag_catalog.o src/backend/catalog/ag_catalog.c
16410:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/catalog/ag_graph.o src/backend/catalog/ag_graph.c
16411:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/catalog/ag_label.o src/backend/catalog/ag_label.c
16412:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/catalog/ag_namespace.o src/backend/catalog/ag_namespace.c
16413:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/commands/graph_commands.o src/backend/commands/graph_commands.c
16414:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/commands/label_commands.o src/backend/commands/label_commands.c
16415:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/executor/cypher_create.o src/backend/executor/cypher_create.c
16416:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/executor/cypher_merge.o src/backend/executor/cypher_merge.c
16417:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/executor/cypher_set.o src/backend/executor/cypher_set.c
16418:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal  -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2   -c -o src/backend/executor/cypher_utils.o src/backend/executor/cypher_utils.c
16419:  gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/in...
Imported GitHub PR comment. Original author: @qodo-code-review[bot] Original URL: https://github.com/carverauto/serviceradar/pull/1958#issuecomment-3551439129 Original created: 2025-11-19T08:37:52Z --- ## CI Feedback 🧐 A test triggered by this PR failed. Here is an AI-generated analysis of the failure: <table><tr><td> **Action:** build</td></tr> <tr><td> **Failed stage:** [Test](https://github.com/carverauto/serviceradar/actions/runs/19494927844/job/55794718464) [❌] </td></tr> <tr><td> **Failed test name:** "" </td></tr> <tr><td> **Failure summary:** The action failed due to Bazel loading-phase errors caused by OCI base image fetch failures from <br>Docker Hub, which resulted in many docker/image targets failing to load:<br> - Multiple <code>oci_pull</code> fetches <br>hit Docker Hub rate limiting and/or unauthenticated access errors (HTTP 429 Too Many Requests) when <br>retrieving image manifests:<br> - Examples:<br> - <code>@@rules_oci++oci+nginx_alpine_linux_amd64</code> at <br><code>external/rules_oci+/oci/private/pull.bzl:155:13</code><br> - <code>@@rules_oci++oci+node_20_alpine_linux_amd64</code> at <br><code>external/rules_oci+/oci/private/pull.bzl:155:13</code><br> - <code>@@rules_oci++oci+ubuntu_jammy_linux_amd64</code> at <br><code>external/rules_oci+/oci/private/pull.bzl:155:13</code><br> - <code>@@rules_oci++oci+ubuntu_noble</code> and <br><code>@@rules_oci++oci+debian_bookworm_slim_linux_amd64</code> similarly failed<br> - Explicit warnings show 429 <br>responses from Docker Hub for <code>nginx</code>, <code>node</code>, <code>ubuntu</code>, <code>debian</code>, <code>alpine</code> image manifest URLs (e.g., lines <br>6190, 6339, 6465, 6783, 7085).<br> - Bazel then reported “no such package” for the above external <br>repositories and “errors encountered while analyzing target … it will not be built,” culminating in:<br> <br> - ERROR: command succeeded, but there were loading phase errors<br> - ERROR: Build did NOT complete <br>successfully<br> - Although all tests passed, the overall build failed because many top-level image <br>targets (under <code>//docker/images:...</code>) could not be analyzed/built due to missing image manifests.<br> <br> In short: Docker Hub rate limiting/unauthenticated pulls prevented <code>rules_oci</code> from fetching required <br>base images, causing Bazel loading-phase errors and failing the CI job.<br> </td></tr> <tr><td> <details><summary>Relevant error logs:</summary> ```yaml 1: Runner name: 'arc-runner-set-pr9x2-runner-gnjps' 2: Runner group name: 'Default' ... 123: ^[[36;1mif command -v apt-get >/dev/null 2>&1; then^[[0m 124: ^[[36;1m sudo apt-get update^[[0m 125: ^[[36;1m sudo apt-get install -y build-essential pkg-config libssl-dev protobuf-compiler cmake flex bison^[[0m 126: ^[[36;1melif command -v dnf >/dev/null 2>&1; then^[[0m 127: ^[[36;1m sudo dnf install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m 128: ^[[36;1melif command -v yum >/dev/null 2>&1; then^[[0m 129: ^[[36;1m sudo yum install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m 130: ^[[36;1melif command -v microdnf >/dev/null 2>&1; then^[[0m 131: ^[[36;1m sudo microdnf install -y gcc gcc-c++ make openssl-devel protobuf-compiler cmake flex bison^[[0m 132: ^[[36;1melse^[[0m 133: ^[[36;1m echo "Unsupported package manager; please install gcc, g++ (or clang), make, OpenSSL headers, pkg-config, and protoc manually." >&2^[[0m 134: ^[[36;1m exit 1^[[0m 135: ^[[36;1mfi^[[0m 136: ^[[36;1m^[[0m 137: ^[[36;1mensure_pkg_config^[[0m 138: ^[[36;1mprotoc --version || (echo "protoc installation failed" && exit 1)^[[0m 139: shell: /usr/bin/bash -e {0} ... 739: libprotoc 3.12.4 740: ##[group]Run bazelbuild/setup-bazelisk@v3 741: with: 742: bazelisk-version: 1.x 743: token: *** 744: env: 745: BUILDBUDDY_ORG_API_KEY: *** 746: SRQL_TEST_DATABASE_URL: *** 747: SRQL_TEST_ADMIN_URL: *** 748: ##[endgroup] 749: Attempting to download 1.x... 750: Acquiring v1.27.0 from https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64 751: Adding to the cache ... 752: Successfully cached bazelisk to /home/runner/_work/_tool/bazelisk/1.27.0/x64 753: Added bazelisk to the path 754: ##[warning]Failed to restore: Cache service responded with 400 755: Restored bazelisk cache dir @ /home/runner/.cache/bazelisk ... 777: 2025/11/19 08:34:56 Downloading https://releases.bazel.build/8.4.1/release/bazel-8.4.1-linux-x86_64... 778: Extracting Bazel installation... 779: Starting local Bazel server (8.4.1) and connecting to it... 780: (08:35:03) ^[[32mINFO: ^[[0mInvocation ID: 21e08aad-1c90-4e7f-8f27-20722dc28428 781: (08:35:03) ^[[32mINFO: ^[[0mStreaming build results to: ^[[36mhttps://carverauto.buildbuddy.io/invocation/21e08aad-1c90-4e7f-8f27-20722dc28428^[[0m 782: (08:35:03) ^[[32mINFO: ^[[0mReading 'startup' options from /home/runner/_work/serviceradar/serviceradar/.bazelrc: --max_idle_secs=60 783: (08:35:03) ^[[32mINFO: ^[[0mOptions provided by the client: 784: Inherited 'common' options: --isatty=0 --terminal_columns=80 785: (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc: 786: Inherited 'common' options: --announce_rc --experimental_convenience_symlinks=clean --color=yes --curses=yes 787: (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc.remote: 788: Inherited 'common' options: --remote_header=x-buildbuddy-api-key=*** 789: (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc: 790: Inherited 'build' options: --keep_going --jobs=auto --show_timestamps --action_env=OPENSSL_NO_PKG_CONFIG=1 --action_env=SRQL_TEST_DATABASE_URL --action_env=SRQL_TEST_ADMIN_URL --java_runtime_version=local_jdk --tool_java_runtime_version=local_jdk --@io_bazel_rules_go//go/config:pure --workspace_status_command=$(pwd)/scripts/workspace_status.sh --build_metadata=REPO_URL=git@github.com:carverauto/serviceradar.git 791: (08:35:03) ^[[32mINFO: ^[[0mReading rc options for 'test' from /home/runner/_work/serviceradar/serviceradar/.bazelrc: 792: 'test' options: --test_output=errors --action_env=OPENSSL_NO_PKG_CONFIG=1 --action_env=SRQL_TEST_DATABASE_URL --action_env=SRQL_TEST_ADMIN_URL --@io_bazel_rules_go//go/config:pure --flaky_test_attempts=2 793: (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition build:ci in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --keep_going --build_tag_filters=-manual --config=remote_base --build_metadata=ROLE=CI --bes_results_url=https://carverauto.buildbuddy.io/invocation/ --bes_backend=grpcs://carverauto.buildbuddy.io --remote_cache=grpcs://carverauto.buildbuddy.io --remote_timeout=15m --strategy=ExpandTemplate=local --strategy=NpmPackageExtract=local --strategy=CopyDirectory=local 794: (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition build:remote_base in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --remote_executor=grpcs://remote.buildbuddy.io --host_platform=//build/rbe:rbe_platform --platforms=//build/rbe:rbe_platform --crosstool_top=@buildbuddy_toolchain//:toolchain --extra_toolchains=@buildbuddy_toolchain//:cc_toolchain --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 --copt=-Wno-use-after-free --java_language_version=11 --tool_java_language_version=11 --java_runtime_version=remotejdk_11 --tool_java_runtime_version=remotejdk_11 --define=EXECUTOR=remote --incompatible_strict_action_env --remote_download_minimal --remote_upload_local_results --jobs=100 --strategy=ExpandTemplate=local --strategy=NpmPackageExtract=local --strategy=CopyDirectory=local 795: (08:35:03) ^[[32mINFO: ^[[0mFound applicable config definition test:ci in file /home/runner/_work/serviceradar/serviceradar/.bazelrc: --test_tag_filters=-manual --test_output=errors 796: (08:35:03) ^[[32mINFO: ^[[0mCurrent date is 2025-11-19 ... 6175: Fetching ...sitory @@rules_oci++oci+ubuntu_jammy_linux_amd64; starting 14s 6176: Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s 6177: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6178: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6179: Fetching ...++go_deps+com_github_rs_zerolog; starting 14s ... (72 fetches) 6180: ^[[1A^[[K 6181: ^[[1A^[[K 6182: ^[[1A^[[K 6183: ^[[1A^[[K 6184: ^[[1A^[[K 6185: ^[[1A^[[K 6186: ^[[1A^[[K 6187: ^[[1A^[[K 6188: ^[[1A^[[K 6189: ^[[1A^[[K 6190: ^[[1A^[[K(08:36:06) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/nginx/manifests/sha256:60e48a050b6408d0c5dd59b98b6e36bf0937a0bbe99304e3e9c0e63b7563443a failed: class java.io.IOException GET returned 429 Too Many Requests 6191: (08:36:06) ^[[32mAnalyzing:^[[0m 990 targets (434 packages loaded, 14139 targets configur\ ... 6245: Fetching ...sitory @@rules_oci++oci+ubuntu_jammy_linux_amd64; starting 14s 6246: Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s 6247: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6248: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6249: Fetching ...++go_deps+com_github_rs_zerolog; starting 14s ... (72 fetches) 6250: ^[[1A^[[K 6251: ^[[1A^[[K 6252: ^[[1A^[[K 6253: ^[[1A^[[K 6254: ^[[1A^[[K 6255: ^[[1A^[[K 6256: ^[[1A^[[K 6257: ^[[1A^[[K 6258: ^[[1A^[[K 6259: ^[[1A^[[K 6260: ^[[1A^[[K(08:36:06) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+nginx_alpine_linux_amd64': 6261: Traceback (most recent call last): 6262: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 6263: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 6264: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 6265: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 6266: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 6267: fail( 6268: Error in fail: Unable to retrieve the image manifest. This could be due to 6269: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6277: Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s 6278: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6279: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6280: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s 6281: Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (71 fetches) 6282: ^[[1A^[[K 6283: ^[[1A^[[K 6284: ^[[1A^[[K 6285: ^[[1A^[[K 6286: ^[[1A^[[K 6287: ^[[1A^[[K 6288: ^[[1A^[[K 6289: ^[[1A^[[K 6290: ^[[1A^[[K 6291: ^[[1A^[[K 6292: ^[[1A^[[K(08:36:06) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+nginx_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to 6293: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6324: Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s 6325: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6326: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6327: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s 6328: Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (75 fetches) 6329: ^[[1A^[[K 6330: ^[[1A^[[K 6331: ^[[1A^[[K 6332: ^[[1A^[[K 6333: ^[[1A^[[K 6334: ^[[1A^[[K 6335: ^[[1A^[[K 6336: ^[[1A^[[K 6337: ^[[1A^[[K 6338: ^[[1A^[[K 6339: ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/node/manifests/sha256:6a91081a440be0b57336fbc4ee87f3dab1a2fd6f80cdb355dcf960e13bda3b59 failed: class java.io.IOException GET returned 429 Too Many Requests 6340: (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\ ... 6394: Fetching repository @@gazelle++go_deps+org_golang_x_crypto; starting 14s 6395: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6396: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6397: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s 6398: Fetching ...deps+com_github_nats_io_nats_go; starting 14s ... (74 fetches) 6399: ^[[1A^[[K 6400: ^[[1A^[[K 6401: ^[[1A^[[K 6402: ^[[1A^[[K 6403: ^[[1A^[[K 6404: ^[[1A^[[K 6405: ^[[1A^[[K 6406: ^[[1A^[[K 6407: ^[[1A^[[K 6408: ^[[1A^[[K 6409: ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+node_20_alpine_linux_amd64': 6410: Traceback (most recent call last): 6411: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 6412: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 6413: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 6414: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 6415: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 6416: fail( 6417: Error in fail: Unable to retrieve the image manifest. This could be due to 6418: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6426: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6427: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6428: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s 6429: Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 14s 6430: Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (73 fetches) 6431: ^[[1A^[[K 6432: ^[[1A^[[K 6433: ^[[1A^[[K 6434: ^[[1A^[[K 6435: ^[[1A^[[K 6436: ^[[1A^[[K 6437: ^[[1A^[[K 6438: ^[[1A^[[K 6439: ^[[1A^[[K 6440: ^[[1A^[[K 6441: ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+node_20_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to 6442: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6450: Fetching repository @@gazelle++go_deps+org_uber_go_mock; starting 14s 6451: Fetching ...sitory @@gazelle++go_deps+org_golang_google_grpc; starting 14s 6452: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 14s 6453: Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 14s 6454: Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (74 fetches) 6455: ^[[1A^[[K 6456: ^[[1A^[[K 6457: ^[[1A^[[K 6458: ^[[1A^[[K 6459: ^[[1A^[[K 6460: ^[[1A^[[K 6461: ^[[1A^[[K 6462: ^[[1A^[[K 6463: ^[[1A^[[K 6464: ^[[1A^[[K 6465: ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/ubuntu/manifests/sha256:985be7c735afdf6f18aaa122c23f87d989c30bba4e9aa24c8278912aac339a8d failed: class java.io.IOException GET returned 429 Too Many Requests 6466: (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\ ... 6544: Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (74 fetches) 6545: ^[[1A^[[K 6546: ^[[1A^[[K 6547: ^[[1A^[[K 6548: ^[[1A^[[K 6549: ^[[1A^[[K 6550: ^[[1A^[[K 6551: ^[[1A^[[K 6552: ^[[1A^[[K 6553: ^[[1A^[[K 6554: ^[[1A^[[K 6555: ^[[1A^[[K 6556: ^[[1A^[[K 6557: ^[[1A^[[K 6558: ^[[1A^[[K 6559: ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_noble': 6560: Traceback (most recent call last): 6561: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 354, column 55, in _oci_alias_impl 6562: manifest, _, digest = downloader.download_manifest(rctx.attr.identifier, "mf.json") 6563: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 6564: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 6565: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 6566: fail( 6567: Error in fail: Unable to retrieve the image manifest. This could be due to 6568: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6584: Fetching ...m_github_charmbracelet_lipgloss; starting 14s ... (73 fetches) 6585: ^[[1A^[[K 6586: ^[[1A^[[K 6587: ^[[1A^[[K 6588: ^[[1A^[[K 6589: ^[[1A^[[K 6590: ^[[1A^[[K 6591: ^[[1A^[[K 6592: ^[[1A^[[K 6593: ^[[1A^[[K 6594: ^[[1A^[[K 6595: ^[[1A^[[K 6596: ^[[1A^[[K 6597: ^[[1A^[[K 6598: ^[[1A^[[K 6599: ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_noble//': Unable to retrieve the image manifest. This could be due to 6600: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6674: Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (77 fetches) 6675: ^[[1A^[[K 6676: ^[[1A^[[K 6677: ^[[1A^[[K 6678: ^[[1A^[[K 6679: ^[[1A^[[K 6680: ^[[1A^[[K 6681: ^[[1A^[[K 6682: ^[[1A^[[K 6683: ^[[1A^[[K 6684: ^[[1A^[[K 6685: ^[[1A^[[K 6686: ^[[1A^[[K 6687: ^[[1A^[[K 6688: ^[[1A^[[K 6689: ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/ubuntu/manifests/sha256:a1af69f6c9bc3657289d23abff8ee360d2417d6cf69719e287822443dca3dc57 failed: class java.io.IOException GET returned 429 Too Many Requests 6690: (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\ ... 6768: Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (76 fetches) 6769: ^[[1A^[[K 6770: ^[[1A^[[K 6771: ^[[1A^[[K 6772: ^[[1A^[[K 6773: ^[[1A^[[K 6774: ^[[1A^[[K 6775: ^[[1A^[[K 6776: ^[[1A^[[K 6777: ^[[1A^[[K 6778: ^[[1A^[[K 6779: ^[[1A^[[K 6780: ^[[1A^[[K 6781: ^[[1A^[[K 6782: ^[[1A^[[K 6783: ^[[1A^[[K(08:36:07) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/debian/manifests/sha256:48fa1e32d5ad897f7748b4b67d1ffb9e2ec46f4129f037afa3456a99f937203a failed: class java.io.IOException GET returned 429 Too Many Requests 6784: (08:36:07) ^[[32mAnalyzing:^[[0m 990 targets (439 packages loaded, 14182 targets configur\ ... 6798: Fetching ...m_github_charmbracelet_lipgloss; starting 15s ... (76 fetches) 6799: ^[[1A^[[K 6800: ^[[1A^[[K 6801: ^[[1A^[[K 6802: ^[[1A^[[K 6803: ^[[1A^[[K 6804: ^[[1A^[[K 6805: ^[[1A^[[K 6806: ^[[1A^[[K 6807: ^[[1A^[[K 6808: ^[[1A^[[K 6809: ^[[1A^[[K 6810: ^[[1A^[[K 6811: ^[[1A^[[K 6812: ^[[1A^[[K 6813: ^[[1A^[[K(08:36:07) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_jammy_linux_amd64': 6814: Traceback (most recent call last): 6815: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 6816: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 6817: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 6818: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 6819: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 6820: fail( 6821: Error in fail: Unable to retrieve the image manifest. This could be due to 6822: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6869: Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (76 fetches) 6870: ^[[1A^[[K 6871: ^[[1A^[[K 6872: ^[[1A^[[K 6873: ^[[1A^[[K 6874: ^[[1A^[[K 6875: ^[[1A^[[K 6876: ^[[1A^[[K 6877: ^[[1A^[[K 6878: ^[[1A^[[K 6879: ^[[1A^[[K 6880: ^[[1A^[[K 6881: ^[[1A^[[K 6882: ^[[1A^[[K 6883: ^[[1A^[[K 6884: ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to 6885: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6934: Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (78 fetches) 6935: ^[[1A^[[K 6936: ^[[1A^[[K 6937: ^[[1A^[[K 6938: ^[[1A^[[K 6939: ^[[1A^[[K 6940: ^[[1A^[[K 6941: ^[[1A^[[K 6942: ^[[1A^[[K 6943: ^[[1A^[[K 6944: ^[[1A^[[K 6945: ^[[1A^[[K 6946: ^[[1A^[[K 6947: ^[[1A^[[K 6948: ^[[1A^[[K 6949: ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+debian_bookworm_slim_linux_amd64': 6950: Traceback (most recent call last): 6951: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 6952: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 6953: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 6954: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 6955: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 6956: fail( 6957: Error in fail: Unable to retrieve the image manifest. This could be due to 6958: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 6974: Fetching ..._github_charmbracelet_bubbletea; starting 15s ... (77 fetches) 6975: ^[[1A^[[K 6976: ^[[1A^[[K 6977: ^[[1A^[[K 6978: ^[[1A^[[K 6979: ^[[1A^[[K 6980: ^[[1A^[[K 6981: ^[[1A^[[K 6982: ^[[1A^[[K 6983: ^[[1A^[[K 6984: ^[[1A^[[K 6985: ^[[1A^[[K 6986: ^[[1A^[[K 6987: ^[[1A^[[K 6988: ^[[1A^[[K 6989: ^[[1A^[[K(08:36:08) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+debian_bookworm_slim_linux_amd64//': Unable to retrieve the image manifest. This could be due to 6990: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 7070: ^[[1A^[[K 7071: ^[[1A^[[K 7072: ^[[1A^[[K 7073: ^[[1A^[[K 7074: ^[[1A^[[K 7075: ^[[1A^[[K 7076: ^[[1A^[[K 7077: ^[[1A^[[K 7078: ^[[1A^[[K 7079: ^[[1A^[[K 7080: ^[[1A^[[K 7081: ^[[1A^[[K 7082: ^[[1A^[[K 7083: ^[[1A^[[K 7084: ^[[1A^[[K 7085: ^[[1A^[[K(08:36:08) ^[[35mWARNING: ^[[0mDownload from https://index.docker.io/v2/library/alpine/manifests/sha256:f25ebd2af60b9de8e26e5100fe6f493beb81bff010f27e84f223ad19886a78f0 failed: class java.io.IOException GET returned 429 Too Many Requests 7086: (08:36:08) ^[[32mAnalyzing:^[[0m 990 targets (457 packages loaded, 14233 targets configur\ ... 7193: Fetching ..._github_charmbracelet_bubbletea; starting 16s ... (78 fetches) 7194: ^[[1A^[[K 7195: ^[[1A^[[K 7196: ^[[1A^[[K 7197: ^[[1A^[[K 7198: ^[[1A^[[K 7199: ^[[1A^[[K 7200: ^[[1A^[[K 7201: ^[[1A^[[K 7202: ^[[1A^[[K 7203: ^[[1A^[[K 7204: ^[[1A^[[K 7205: ^[[1A^[[K 7206: ^[[1A^[[K 7207: ^[[1A^[[K 7208: ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+alpine_3_20_linux_amd64': 7209: Traceback (most recent call last): 7210: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 7211: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 7212: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 7213: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 7214: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 7215: fail( 7216: Error in fail: Unable to retrieve the image manifest. This could be due to 7217: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 7231: Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 16s 7232: Fetching ...om_github_charmbracelet_bubbles; starting 16s ... (78 fetches) 7233: ^[[1A^[[K 7234: ^[[1A^[[K 7235: ^[[1A^[[K 7236: ^[[1A^[[K 7237: ^[[1A^[[K 7238: ^[[1A^[[K 7239: ^[[1A^[[K 7240: ^[[1A^[[K 7241: ^[[1A^[[K 7242: ^[[1A^[[K 7243: ^[[1A^[[K 7244: ^[[1A^[[K 7245: ^[[1A^[[K 7246: ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 7247: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 7330: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 17s 7331: Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 17s 7332: Fetching ...zelle++go_deps+com_github_charmbracelet_lipgloss; starting 17s 7333: Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 17s 7334: Fetching ...om_github_charmbracelet_bubbles; starting 17s ... (81 fetches) 7335: ^[[1A^[[K 7336: ^[[1A^[[K 7337: ^[[1A^[[K 7338: ^[[1A^[[K 7339: ^[[1A^[[K 7340: ^[[1A^[[K 7341: ^[[1A^[[K 7342: ^[[1A^[[K 7343: ^[[1A^[[K 7344: ^[[1A^[[K 7345: ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0m/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl:155:13: An error occurred during the fetch of repository 'rules_oci++oci+ubuntu_noble_linux_amd64': 7346: Traceback (most recent call last): 7347: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 206, column 58, in _oci_pull_impl 7348: manifest, size, digest = downloader.download_manifest(rctx.attr.identifier, "manifest.json") 7349: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 164, column 74, in lambda 7350: download_manifest = lambda identifier, output: _download_manifest(rctx, authn, identifier, output), 7351: File "/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/external/rules_oci+/oci/private/pull.bzl", line 155, column 13, in _download_manifest 7352: fail( 7353: Error in fail: Unable to retrieve the image manifest. This could be due to 7354: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 7362: Fetching ...ository @@gazelle++go_deps+com_github_rs_zerolog; starting 17s 7363: Fetching ...ry @@gazelle++go_deps+com_github_nats_io_nats_go; starting 17s 7364: Fetching ...zelle++go_deps+com_github_charmbracelet_lipgloss; starting 17s 7365: Fetching ...elle++go_deps+com_github_charmbracelet_bubbletea; starting 17s 7366: Fetching ...om_github_charmbracelet_bubbles; starting 17s ... (76 fetches) 7367: ^[[1A^[[K 7368: ^[[1A^[[K 7369: ^[[1A^[[K 7370: ^[[1A^[[K 7371: ^[[1A^[[K 7372: ^[[1A^[[K 7373: ^[[1A^[[K 7374: ^[[1A^[[K 7375: ^[[1A^[[K 7376: ^[[1A^[[K 7377: ^[[1A^[[K(08:36:09) ^[[31m^[[1mERROR: ^[[0mno such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to 7378: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 8559: ^[[1A^[[K 8560: ^[[1A^[[K 8561: ^[[1A^[[K 8562: ^[[1A^[[K 8563: ^[[1A^[[K 8564: ^[[1A^[[K 8565: ^[[1A^[[K 8566: ^[[1A^[[K 8567: ^[[1A^[[K 8568: ^[[1A^[[K 8569: ^[[1A^[[K 8570: ^[[1A^[[K 8571: ^[[1A^[[K 8572: ^[[1A^[[K 8573: ^[[1A^[[K(08:36:19) ^[[32mINFO: ^[[0mFrom Executing genrule //docker/images:cnpg_postgresql_16_6_rootfs_tar: 8574: Error: pulling layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout: parsing reference "layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout": could not parse reference: layout:/buildbuddy-execroot/bazel-out/k8-fastbuild/bin/external/rules_oci++oci+cloudnativepg_postgresql_16_6_linux_amd64/layout 8575: (08:36:19) ^[[32mAnalyzing:^[[0m 990 targets (1141 packages loaded, 34482 targets configu\ ... 8821: ^[[1A^[[K 8822: ^[[1A^[[K 8823: ^[[1A^[[K 8824: ^[[1A^[[K 8825: ^[[1A^[[K 8826: ^[[1A^[[K 8827: ^[[1A^[[K 8828: ^[[1A^[[K 8829: ^[[1A^[[K 8830: ^[[1A^[[K 8831: ^[[1A^[[K 8832: ^[[1A^[[K 8833: ^[[1A^[[K 8834: ^[[1A^[[K 8835: ^[[1A^[[K 8836: ^[[1A^[[K(08:36:20) ^[[35mWARNING: ^[[0mDownload from https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64.tar.xz failed: class java.io.FileNotFoundException GET returned 404 Not Found 8837: (08:36:20) ^[[32mAnalyzing:^[[0m 990 targets (1380 packages loaded, 45116 targets configu\ ... 10143: ^[[1A^[[K 10144: ^[[1A^[[K 10145: ^[[1A^[[K 10146: ^[[1A^[[K 10147: ^[[1A^[[K 10148: ^[[1A^[[K 10149: ^[[1A^[[K 10150: ^[[1A^[[K 10151: ^[[1A^[[K 10152: ^[[1A^[[K 10153: ^[[1A^[[K 10154: ^[[1A^[[K 10155: ^[[1A^[[K 10156: ^[[1A^[[K 10157: ^[[1A^[[K 10158: ^[[1A^[[K(08:36:29) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1007:10: //docker/images:nginx_image_amd64 depends on @@rules_oci++oci+nginx_alpine_linux_amd64//:nginx_alpine_linux_amd64 in repository @@rules_oci++oci+nginx_alpine_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+nginx_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to 10159: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 11840: ^[[1A^[[K 11841: ^[[1A^[[K 11842: ^[[1A^[[K 11843: ^[[1A^[[K 11844: ^[[1A^[[K 11845: ^[[1A^[[K 11846: ^[[1A^[[K 11847: ^[[1A^[[K 11848: ^[[1A^[[K 11849: ^[[1A^[[K 11850: ^[[1A^[[K 11851: ^[[1A^[[K 11852: ^[[1A^[[K 11853: ^[[1A^[[K 11854: ^[[1A^[[K 11855: ^[[1A^[[K(08:36:38) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1082:10: //docker/images:web_image_base_amd64 depends on @@rules_oci++oci+node_20_alpine_linux_amd64//:node_20_alpine_linux_amd64 in repository @@rules_oci++oci+node_20_alpine_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+node_20_alpine_linux_amd64//': Unable to retrieve the image manifest. This could be due to 11856: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14719: ^[[1A^[[K 14720: ^[[1A^[[K 14721: ^[[1A^[[K 14722: ^[[1A^[[K 14723: ^[[1A^[[K 14724: ^[[1A^[[K 14725: ^[[1A^[[K 14726: ^[[1A^[[K 14727: ^[[1A^[[K 14728: ^[[1A^[[K 14729: ^[[1A^[[K 14730: ^[[1A^[[K 14731: ^[[1A^[[K 14732: ^[[1A^[[K 14733: ^[[1A^[[K 14734: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:839:10: //docker/images:poller_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14735: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14755: ^[[1A^[[K 14756: ^[[1A^[[K 14757: ^[[1A^[[K 14758: ^[[1A^[[K 14759: ^[[1A^[[K 14760: ^[[1A^[[K 14761: ^[[1A^[[K 14762: ^[[1A^[[K 14763: ^[[1A^[[K 14764: ^[[1A^[[K 14765: ^[[1A^[[K 14766: ^[[1A^[[K 14767: ^[[1A^[[K 14768: ^[[1A^[[K 14769: ^[[1A^[[K 14770: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1282:10: //docker/images:kong_config_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14771: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14791: ^[[1A^[[K 14792: ^[[1A^[[K 14793: ^[[1A^[[K 14794: ^[[1A^[[K 14795: ^[[1A^[[K 14796: ^[[1A^[[K 14797: ^[[1A^[[K 14798: ^[[1A^[[K 14799: ^[[1A^[[K 14800: ^[[1A^[[K 14801: ^[[1A^[[K 14802: ^[[1A^[[K 14803: ^[[1A^[[K 14804: ^[[1A^[[K 14805: ^[[1A^[[K 14806: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:881:10: //docker/images:sync_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14807: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14827: ^[[1A^[[K 14828: ^[[1A^[[K 14829: ^[[1A^[[K 14830: ^[[1A^[[K 14831: ^[[1A^[[K 14832: ^[[1A^[[K 14833: ^[[1A^[[K 14834: ^[[1A^[[K 14835: ^[[1A^[[K 14836: ^[[1A^[[K 14837: ^[[1A^[[K 14838: ^[[1A^[[K 14839: ^[[1A^[[K 14840: ^[[1A^[[K 14841: ^[[1A^[[K 14842: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:974:10: //docker/images:config_updater_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14843: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14863: ^[[1A^[[K 14864: ^[[1A^[[K 14865: ^[[1A^[[K 14866: ^[[1A^[[K 14867: ^[[1A^[[K 14868: ^[[1A^[[K 14869: ^[[1A^[[K 14870: ^[[1A^[[K 14871: ^[[1A^[[K 14872: ^[[1A^[[K 14873: ^[[1A^[[K 14874: ^[[1A^[[K 14875: ^[[1A^[[K 14876: ^[[1A^[[K 14877: ^[[1A^[[K 14878: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:455:10: //docker/images:agent_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14879: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14899: ^[[1A^[[K 14900: ^[[1A^[[K 14901: ^[[1A^[[K 14902: ^[[1A^[[K 14903: ^[[1A^[[K 14904: ^[[1A^[[K 14905: ^[[1A^[[K 14906: ^[[1A^[[K 14907: ^[[1A^[[K 14908: ^[[1A^[[K 14909: ^[[1A^[[K 14910: ^[[1A^[[K 14911: ^[[1A^[[K 14912: ^[[1A^[[K 14913: ^[[1A^[[K 14914: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:746:10: //docker/images:snmp_checker_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14915: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14935: ^[[1A^[[K 14936: ^[[1A^[[K 14937: ^[[1A^[[K 14938: ^[[1A^[[K 14939: ^[[1A^[[K 14940: ^[[1A^[[K 14941: ^[[1A^[[K 14942: ^[[1A^[[K 14943: ^[[1A^[[K 14944: ^[[1A^[[K 14945: ^[[1A^[[K 14946: ^[[1A^[[K 14947: ^[[1A^[[K 14948: ^[[1A^[[K 14949: ^[[1A^[[K 14950: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1401:10: //docker/images:tools_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14951: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 14971: ^[[1A^[[K 14972: ^[[1A^[[K 14973: ^[[1A^[[K 14974: ^[[1A^[[K 14975: ^[[1A^[[K 14976: ^[[1A^[[K 14977: ^[[1A^[[K 14978: ^[[1A^[[K 14979: ^[[1A^[[K 14980: ^[[1A^[[K 14981: ^[[1A^[[K 14982: ^[[1A^[[K 14983: ^[[1A^[[K 14984: ^[[1A^[[K 14985: ^[[1A^[[K 14986: ^[[1A^[[K(08:36:55) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:535:10: //docker/images:mapper_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 14987: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15038: ^[[1A^[[K 15039: ^[[1A^[[K 15040: ^[[1A^[[K 15041: ^[[1A^[[K 15042: ^[[1A^[[K 15043: ^[[1A^[[K 15044: ^[[1A^[[K 15045: ^[[1A^[[K 15046: ^[[1A^[[K 15047: ^[[1A^[[K 15048: ^[[1A^[[K 15049: ^[[1A^[[K 15050: ^[[1A^[[K 15051: ^[[1A^[[K 15052: ^[[1A^[[K 15053: ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:495:10: //docker/images:db_event_writer_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15054: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15068: Fetching ..._tools; Extracting rust-std-1.86.0-x86_64-unknown-linux-gnu.ta\ 15069: r.xz 15070: ^[[1A^[[K 15071: ^[[1A^[[K 15072: ^[[1A^[[K 15073: ^[[1A^[[K 15074: ^[[1A^[[K 15075: ^[[1A^[[K 15076: ^[[1A^[[K 15077: ^[[1A^[[K 15078: ^[[1A^[[K 15079: ^[[1A^[[K 15080: ^[[1A^[[K 15081: ^[[1A^[[K 15082: ^[[1A^[[K 15083: ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:414:10: //docker/images:core_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15084: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15098: Fetching ..._tools; Extracting rust-std-1.86.0-x86_64-unknown-linux-gnu.ta\ 15099: r.xz 15100: ^[[1A^[[K 15101: ^[[1A^[[K 15102: ^[[1A^[[K 15103: ^[[1A^[[K 15104: ^[[1A^[[K 15105: ^[[1A^[[K 15106: ^[[1A^[[K 15107: ^[[1A^[[K 15108: ^[[1A^[[K 15109: ^[[1A^[[K 15110: ^[[1A^[[K 15111: ^[[1A^[[K 15112: ^[[1A^[[K 15113: ^[[1A^[[K(08:36:56) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:576:10: //docker/images:datasvc_image_amd64 depends on @@rules_oci++oci+alpine_3_20_linux_amd64//:alpine_3_20_linux_amd64 in repository @@rules_oci++oci+alpine_3_20_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+alpine_3_20_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15114: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15394: ^[[1A^[[K(08:36:58) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 85841 targets configu\ 15395: red) 15396: ^[[32m[7,633 / 7,652]^[[0m 33 / 34 tests;^[[0m 5 actions, 3 running^[[0m; last test: ^[[32m...e:core_test^[[0m 15397: Executing genrule //docker/images:age_extension_layer; 0s local 15398: Executing genrule //docker/images:timescaledb_extension_layer; 0s local 15399: GoCompilePkg cmd/poller/poller.a; 0s remote, remote-cache 15400: [Sched] GoCompilePkg cmd/poller/poller_lib.a 15401: [Sched] GoCompilePkgExternal pkg/poller/poller_test_test.external.a 15402: ^[[1A^[[K 15403: ^[[1A^[[K 15404: ^[[1A^[[K 15405: ^[[1A^[[K 15406: ^[[1A^[[K 15407: ^[[1A^[[K 15408: ^[[1A^[[K 15409: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:661:10: //docker/images:trapd_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15410: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15429: ^[[1A^[[K(08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15430: red) 15431: ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m 15432: Executing genrule //docker/images:age_extension_layer; 1s local 15433: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15434: GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache 15435: //pkg/poller:poller_test; 0s remote, remote-cache 15436: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15437: ^[[1A^[[K 15438: ^[[1A^[[K 15439: ^[[1A^[[K 15440: ^[[1A^[[K 15441: ^[[1A^[[K 15442: ^[[1A^[[K 15443: ^[[1A^[[K 15444: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:1249:10: //docker/images:srql_image_amd64 depends on @@rules_oci++oci+ubuntu_noble//:ubuntu_noble in repository @@rules_oci++oci+ubuntu_noble which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble//': Unable to retrieve the image manifest. This could be due to 15445: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15447: (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15448: red) 15449: ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m 15450: Executing genrule //docker/images:age_extension_layer; 1s local 15451: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15452: GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache 15453: //pkg/poller:poller_test; 0s remote, remote-cache 15454: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15455: ^[[1A^[[K 15456: ^[[1A^[[K 15457: ^[[1A^[[K 15458: ^[[1A^[[K 15459: ^[[1A^[[K 15460: ^[[1A^[[K 15461: ^[[1A^[[K 15462: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:935:10: //docker/images:zen_image_amd64 depends on @@rules_oci++oci+ubuntu_noble_linux_amd64//:ubuntu_noble_linux_amd64 in repository @@rules_oci++oci+ubuntu_noble_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15463: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15465: (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15466: red) 15467: ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m 15468: Executing genrule //docker/images:age_extension_layer; 1s local 15469: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15470: GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache 15471: //pkg/poller:poller_test; 0s remote, remote-cache 15472: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15473: ^[[1A^[[K 15474: ^[[1A^[[K 15475: ^[[1A^[[K 15476: ^[[1A^[[K 15477: ^[[1A^[[K 15478: ^[[1A^[[K 15479: ^[[1A^[[K 15480: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:619:10: //docker/images:flowgger_image_amd64 depends on @@rules_oci++oci+ubuntu_noble_linux_amd64//:ubuntu_noble_linux_amd64 in repository @@rules_oci++oci+ubuntu_noble_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_noble_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15481: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15483: (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15484: red) 15485: ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m 15486: Executing genrule //docker/images:age_extension_layer; 1s local 15487: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15488: GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache 15489: //pkg/poller:poller_test; 0s remote, remote-cache 15490: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15491: ^[[1A^[[K 15492: ^[[1A^[[K 15493: ^[[1A^[[K 15494: ^[[1A^[[K 15495: ^[[1A^[[K 15496: ^[[1A^[[K 15497: ^[[1A^[[K 15498: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:789:10: //docker/images:rperf_client_image_amd64 depends on @@rules_oci++oci+debian_bookworm_slim_linux_amd64//:debian_bookworm_slim_linux_amd64 in repository @@rules_oci++oci+debian_bookworm_slim_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+debian_bookworm_slim_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15499: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15501: (08:36:59) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15502: red) 15503: ^[[32m[7,634 / 7,652]^[[0m 33 / 34 tests;^[[0m 4 actions running^[[0m; last test: ^[[32m...core:core_test^[[0m 15504: Executing genrule //docker/images:age_extension_layer; 1s local 15505: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15506: GoCompilePkg cmd/poller/poller_lib.a; 0s remote, remote-cache 15507: //pkg/poller:poller_test; 0s remote, remote-cache 15508: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15509: ^[[1A^[[K 15510: ^[[1A^[[K 15511: ^[[1A^[[K 15512: ^[[1A^[[K 15513: ^[[1A^[[K 15514: ^[[1A^[[K 15515: ^[[1A^[[K 15516: ^[[1A^[[K(08:36:59) ^[[31m^[[1mERROR: ^[[0m/home/runner/_work/serviceradar/serviceradar/docker/images/BUILD.bazel:703:10: //docker/images:otel_image_amd64 depends on @@rules_oci++oci+ubuntu_jammy_linux_amd64//:ubuntu_jammy_linux_amd64 in repository @@rules_oci++oci+ubuntu_jammy_linux_amd64 which failed to fetch. no such package '@@rules_oci++oci+ubuntu_jammy_linux_amd64//': Unable to retrieve the image manifest. This could be due to 15517: *) Authentication problems. Check if `docker pull` command succeeds with same parameters. ... 15526: Fetching ...es_rust++crate+rust_crates_profiler__darling-0.20.11; starting 15527: ^[[1A^[[K 15528: ^[[1A^[[K 15529: ^[[1A^[[K 15530: ^[[1A^[[K 15531: ^[[1A^[[K 15532: ^[[1A^[[K 15533: ^[[1A^[[K 15534: ^[[1A^[[K(08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2261 packages loaded, 86879 targets configu\ 15535: red) 15536: ^[[32m[8,023 / 9,481]^[[0m 33 / 36 tests;^[[0m 96 actions, 17 running^[[0m; last test: ^[[32m...core_test^[[0m 15537: Executing genrule //docker/images:age_extension_layer; 1s local 15538: Executing genrule //docker/images:timescaledb_extension_layer; 1s local 15539: @@rules_rust++crate+rust_crates__rustix-1.1.2//:_bs-; 0s local 15540: @@rules_rust++crate+rust_crates__logos-codegen-0.15.1//:_bs-; 0s local 15541: @@rules_rust++i2+rules_rust_ctve__thiserror-1.0.69//:_bs-; 0s local 15542: @@rules_rust++crate+rust_crates__syn-1.0.109//:_bs-; 0s local ... 15556: ^[[1A^[[K 15557: ^[[1A^[[K 15558: ^[[1A^[[K 15559: ^[[1A^[[K(08:37:00) ^[[32mINFO: ^[[0mFrom Compiling src/google/protobuf/compiler/rust/relative_path.cc: 15560: external/protobuf+/src/google/protobuf/compiler/rust/relative_path.cc: In member function 'std::string google::protobuf::compiler::rust::RelativePath::Relative(const google::protobuf::compiler::rust::RelativePath&) const': 15561: external/protobuf+/src/google/protobuf/compiler/rust/relative_path.cc:65:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::basic_string_view<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare] 15562: 65 | for (int i = 0; i < current_segments.size(); ++i) { 15563: | ~~^~~~~~~~~~~~~~~~~~~~~~~~~ 15564: (08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2262 packages loaded, 86957 targets configu\ 15565: red) 15566: ^[[32m[8,102 / 9,665]^[[0m 33 / 37 tests;^[[0m 82 actions, 33 running^[[0m; last test: ^[[32m...core_test^[[0m 15567: Executing genrule //docker/images:age_extension_layer; 2s local 15568: Executing genrule //docker/images:timescaledb_extension_layer; 2s local 15569: @@rules_rust++crate+rust_crates__nix-0.30.1//:_bs-; 0s local 15570: @@rules_rust++crate+rust_crates__anyhow-1.0.100//:_bs-; 0s local 15571: @@rules_rust++crate+rust_crates__thiserror-2.0.17//:_bs-; 0s local 15572: @@rules_rust++crate+rust_crates__rustix-0.38.44//:_bs-; 0s local 15573: @@rules_rust++crate+rust_crates__pulldown-cmark-0.13.0//:_bs-; 0s local 15574: @@rules_rust++crate+rust_crates__thiserror-1.0.69//:_bs-; 0s local ... 15575: ^[[1A^[[K 15576: ^[[1A^[[K 15577: ^[[1A^[[K 15578: ^[[1A^[[K 15579: ^[[1A^[[K 15580: ^[[1A^[[K 15581: ^[[1A^[[K 15582: ^[[1A^[[K 15583: ^[[1A^[[K 15584: ^[[1A^[[K 15585: ^[[1A^[[K(08:37:00) ^[[32mAnalyzing:^[[0m 990 targets (2262 packages loaded, 86957 targets configu\ 15586: red) 15587: ^[[32m[8,263 / 9,945]^[[0m 33 / 40 tests;^[[0m 77 actions, 29 running^[[0m; last test: ^[[32m...core_test^[[0m 15588: Executing genrule //docker/images:age_extension_layer; 2s local 15589: Executing genrule //docker/images:timescaledb_extension_layer; 2s local 15590: @@rules_rust++crate+rust_crates__thiserror-2.0.17//:_bs-; 0s local 15591: @@rules_rust++crate+rust_crates__rustix-0.38.44//:_bs-; 0s local 15592: @@rules_rust++crate+rust_crates__thiserror-1.0.69//:_bs-; 0s local 15593: @@rules_rust++crate+rust_crates__protobuf-3.7.2//:_bs-; 0s local ... 15911: [Prepa] Compiling Rust rlib proc_macro2 v1.0.93 (17 files) [for tool] 15912: ^[[1A^[[K 15913: ^[[1A^[[K 15914: ^[[1A^[[K 15915: ^[[1A^[[K 15916: ^[[1A^[[K 15917: ^[[1A^[[K 15918: ^[[1A^[[K 15919: ^[[1A^[[K 15920: ^[[1A^[[K(08:37:02) ^[[32m[8,793 / 10,916]^[[0m 33 / 40 tests;^[[0m 6 actions, 4 running^[[0m; last test: ^[[32m//\ 15921: pkg/core:core_test^[[0m 15922: Executing genrule //docker/images:age_extension_layer; 4s local 15923: Executing genrule //docker/images:timescaledb_extension_layer; 4s local 15924: GoLink cmd/poller/poller_/poller; 1s remote, remote-cache 15925: GoLink pkg/poller/poller_test_/poller_test; 0s remote, remote-cache 15926: ...//:thiserror_impl; 0s remote, remote-cache 15927: [Prepa] Compiling Rust proc-macro yoke_derive v0.7.5 (3 files) [for tool] ... 16051: ^[[1A^[[K 16052: ^[[1A^[[K 16053: ^[[1A^[[K 16054: ^[[1A^[[K 16055: ^[[1A^[[K 16056: ^[[1A^[[K 16057: ^[[1A^[[K 16058: ^[[1A^[[K(08:37:04) ^[[32m[9,545 / 10,917]^[[0m 33 / 40 tests;^[[0m 97 actions, 4 running^[[0m; last test: ^[[32m/\ 16059: /pkg/core:core_test^[[0m 16060: Executing genrule //docker/images:age_extension_layer; 6s local 16061: Executing genrule //docker/images:timescaledb_extension_layer; 6s local 16062: //packaging/poller:poller_data; 1s remote, remote-cache 16063: //docker/images:poller_layer_amd64; 1s remote, remote-cache 16064: Testing //pkg/poller:poller_test; 0s remote, remote-cache 16065: ...//:_bs; 0s remote, remote-cache 16066: Running Cargo build script thiserror; 0s remote, remote-cache 16067: Running Cargo build script axum; 0s remote, remote-cache ... ... 16388: Compiling Rust rlib srql_lib (27 files); 3s remote, remote-cache 16389: ^[[1A^[[K 16390: ^[[1A^[[K 16391: ^[[1A^[[K 16392: ^[[1A^[[K 16393: ^[[1A^[[K(08:37:11) ^[[32m[10,904 / 10,921]^[[0m 38 / 40 tests;^[[0m 3 actions running^[[0m; last test: ^[[32m//cm\ 16394: d/consumers/zen:zen_lib_test^[[0m 16395: Executing genrule //docker/images:age_extension_layer; 12s local 16396: Executing genrule //docker/images:timescaledb_extension_layer; 12s local 16397: Compiling Rust rlib srql_lib (27 files); 4s remote, remote-cache 16398: ^[[1A^[[K 16399: ^[[1A^[[K 16400: ^[[1A^[[K 16401: ^[[1A^[[K 16402: ^[[1A^[[K(08:37:11) ^[[32mINFO: ^[[0mFrom Executing genrule //docker/images:age_extension_layer: 16403: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/age.o src/backend/age.c 16404: (08:37:11) ^[[32m[10,904 / 10,921]^[[0m 38 / 40 tests;^[[0m 3 actions running^[[0m; last test: ^[[32m//cm\ 16405: d/consumers/zen:zen_lib_test^[[0m 16406: Executing genrule //docker/images:age_extension_layer; 13s local 16407: Executing genrule //docker/images:timescaledb_extension_layer; 13s local 16408: Compiling Rust rlib srql_lib (27 files); 4s remote, remote-cache 16409: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/catalog/ag_catalog.o src/backend/catalog/ag_catalog.c 16410: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/catalog/ag_graph.o src/backend/catalog/ag_graph.c 16411: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/catalog/ag_label.o src/backend/catalog/ag_label.c 16412: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/catalog/ag_namespace.o src/backend/catalog/ag_namespace.c 16413: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/commands/graph_commands.o src/backend/commands/graph_commands.c 16414: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/commands/label_commands.o src/backend/commands/label_commands.c 16415: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/executor/cypher_create.o src/backend/executor/cypher_create.c 16416: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/executor/cypher_merge.o src/backend/executor/cypher_merge.c 16417: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/executor/cypher_set.o src/backend/executor/cypher_set.c 16418: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/16/server -I/home/runner/.cache/bazel/_bazel_runner/5267be34ed6226e5181c0e8ea3f399cd/execroot/_main/bazel-out/k8-fastbuild/bin/docker/images/rootfs_age/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/backend/executor/cypher_utils.o src/backend/executor/cypher_utils.c 16419: gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer -fPIC -fvisibility=hidden -I.//src/in...
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!2426
No description provided.