Skip to content

[Bug]: CI pipelines failing on fakeredis #261

@mglbleta

Description

@mglbleta

Pre-flight checklist

  • I have searched the existing issues
  • I have read the contributing guidelines

Describe the bug

CI pipeline tests fail because Prefect’s ephemeral API server cannot start. During Prefect server startup, an import error occurs in docket/_redis.py when it tries to import FakeConnection from fakeredis.aioredis. This prevents the temporary Prefect server from starting and causes multiple ETL tests to time out waiting for the server.

Failing job: https://github.com/sustainability-software-lab/ca-biositing/actions/runs/24216580561/job/70698468981

Steps to reproduce

Checkout the repo at commit d961724.
Create the pixi environment (py312 or py313) and install dependencies:
pixi install -e py312 (or pixi install -e py313)
Run the pipeline tests:
pixi run pytest src/ca_biositing/pipeline

Expected behavior

Prefect’s ephemeral API server starts successfully during the test run, and the ETL tests complete without timing out.

Relevant log output / screenshots

ImportError: cannot import name 'FakeConnection' from 'fakeredis.aioredis'
(/home/runner/work/ca-biositing/ca-biositing/.pixi/envs/default/lib/python3.12/site-packages/fakeredis/aioredis.py).
Did you mean: '_connection'?

...
FAILED src/ca_biositing/pipeline/tests/test_fermentation_etl.py::test_fermentation_etl_full
- RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
FAILED src/ca_biositing/pipeline/tests/test_new_analysis_etl.py::test_xrf_etl_full
- RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
FAILED src/ca_biositing/pipeline/tests/test_new_analysis_etl.py::test_calorimetry_etl_full
- RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
FAILED src/ca_biositing/pipeline/tests/test_new_analysis_etl.py::test_xrd_etl_full
- RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.
FAILED src/ca_biositing/pipeline/tests/test_pretreatment_etl.py::test_pretreatment_etl_full
- RuntimeError: Timed out while attempting to connect to ephemeral Prefect API server.

Software version

unsure

Environment

Other (specify below)

Other environment details

issue specifically with GitHub Actions spun-up machine

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions