Skip to content

[coverage] Conformance findings: CLOUDFETCH-017 #894

Description

@peco-engineer-bot

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-python) is fixed, then flips green as a tripwire.

Findings

  • CLOUDFETCH-017 [sea]: kernel (SEA) retries a persistently failing CloudFetch chunk download without bound — the drain never returns (blocked past 75s after ~7 presigned-URL GETs) instead of charging each completed failure against the download attempt budget and surfacing a terminal error; same non-termination class as databricks-odbc#144
    • failing test: test_persistent_download_failure_is_terminal_and_attempt_bounded (see the coverage PR diff under tests/)

Reproduce & Expected

CLOUDFETCH-017 — A CloudFetch chunk download that fails PERSISTENTLY must become terminal: the driver charges every completed download failure against its download attempt budget, surfaces an error to the consumer, a…

Reproduce:

  • Every cloud-storage GET for the chunk fails with HTTP 500 for the whole test.
  • Execute a CloudFetch (external-links) query and drain the result. The drain
    must terminate with an error rather than hang; wrap it in a wall-clock bound
    so an unbounded-retry driver fails instead of running to the CI timeout.

Expected (per the shared spec):

  • full assertion contract:
result:
- exception_thrown: true
  description: 'The persistent download failure is propagated to the caller as an
    error.

    Message content is not asserted (drivers word cloud-download errors

    differently); the point is that the read terminates in failure, not that

    it returns partial rows or blocks.

    '
- cloud_download_count:
    min: 1
    max: 2
  description: "The failing chunk is downloaded at least once and NO MORE than the\n\
    configured download attempt budget. A driver that skips attempt\naccounting on\
    \ the stale-link path exceeds this bound (or never stops).\nA driver exposing\
    \ no attempt-budget knob asserts its own small fixed\nupper bound instead \u2014\
    \ the contract is that the count is BOUNDED, not\nthat it equals a particular\
    \ number.\n"
- elapsed_seconds_range:
    min: 0
    max: 120
    description: The failing drain terminates well inside the CI timeout.

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions