Skip to content

(feat) 4135-retry tenacity helper schema migrations#4266

Open
rudolfix wants to merge 6 commits into
develfrom
feat/4135-retry-schema-migrations
Open

(feat) 4135-retry tenacity helper schema migrations#4266
rudolfix wants to merge 6 commits into
develfrom
feat/4135-retry-schema-migrations

Conversation

@rudolfix

Copy link
Copy Markdown
Collaborator

Description

alternative fix to #4135 (see #4138 )

  1. it retries a failing schema migrations (with jitter and backoffs) via tenacity retry helper.
from tenacity import retry, stop_after_attempt, retry_if_exception, wait_random_exponential
from dlt.pipeline.helpers import retry_schema_update

if __name__ == "__main__":
    pipeline = dlt.pipeline(pipeline_name="chess_pipeline", destination="duckdb", dataset_name="games_data")

    @retry(
        stop=stop_after_attempt(5),
        # random jitter spreads retries so colliding parallel runs do not wake up and retry in lockstep
        wait=wait_random_exponential(multiplier=1, max=30),
        retry=retry_if_exception(retry_schema_update()),
        reraise=True,
    )
    def load():
        data = chess_source(["magnuscarlsen", "rpragchess"], start_month="2022/11", end_month="2022/12")
        return pipeline.run(data)

    load_info = load()
  1. does not create comments on _dlt tables on databricks to prevent non-atomic CREATE TABLE
  2. as a bonus - allows to disable comments creation (via TBLPROPS) altogether.

@rudolfix rudolfix self-assigned this Jul 21, 2026
@rudolfix rudolfix added the ci full Use to trigger CI on a PR for full load tests label Jul 21, 2026
@rudolfix rudolfix changed the title (feat) 4135-retry schema migrations (feat) 4135-retry tenacity helper schema migrations Jul 21, 2026
@blacksmith-sh

blacksmith-sh Bot commented Jul 21, 2026

Copy link
Copy Markdown

Found 71 test failures on Blacksmith runners:

Failures

Test View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-False-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-with_root_key-True-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-False-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
sql_upper-without_root_key-True-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-False-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-with_root_key-True-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-False-users__orders__items-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-products-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-products-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-products-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders-selected_load_id_idx2]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders__items-selected_load_id_idx0]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders__items-selected_load_id_idx1]
View Logs
test_relation_from_loads_query[tests.common.cases.normalizers/
title_case-without_root_key-True-users__orders__items-selected_load_id_idx2]
View Logs

Fix in Cursor

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
docs 261a93f Commit Preview URL

Branch Preview URL
Jul 21 2026, 09:25 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci full Use to trigger CI on a PR for full load tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants