Skip to content

Fix unstable Windows test by pre-initializing database before server launch#19266

Merged
harupy merged 2 commits intomasterfrom
copilot/fix-unstable-testing-on-windows
Dec 8, 2025
Merged

Fix unstable Windows test by pre-initializing database before server launch#19266
harupy merged 2 commits intomasterfrom
copilot/fix-unstable-testing-on-windows

Conversation

Copy link
Contributor

Copilot AI commented Dec 8, 2025

Related Issues/PRs

#xxx

What changes are proposed in this pull request?

tests/tracking/test_mlflow_artifacts.py fails intermittently on Windows due to server initialization timeout during database migration. The server process must complete 40+ Alembic migrations on startup, which exceeds the startup timeout on Windows.

Solution: Pre-initialize and migrate the database before launching the server:

# Initialize the database before launching the server process
s = SqlAlchemyStore(backend_store_uri, default_artifact_root)
s.engine.dispose()

This ensures migrations complete before server startup, eliminating the timeout.

How is this PR tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests

Does this PR require documentation update?

  • No. You can skip the rest of this section.
  • Yes. I've updated:
    • Examples
    • API references
    • Instructions

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/tracking: Tracking Service, tracking client APIs, autologging
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflows
  • area/gateway: MLflow AI Gateway client APIs, server, and third-party integrations
  • area/prompts: MLflow prompt engineering features, prompt templates, and prompt management
  • area/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionality
  • area/projects: MLproject format, project running backends
  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages

How should the PR be classified in the release notes? Choose one:

  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

Should this PR be included in the next patch release?

  • Yes (this PR will be cherry-picked and included in the next patch release)
  • No (this PR will be included in the next minor release)
Original prompt

tests/tracking/test_mlflow_artifacts.py is unstable on windows (example: https://github.com/mlflow/mlflow/actions/runs/20016197464/job/57394358125). Server initialization seems to times out while the database is being migrated. To avoid this, migrate the database before launching the server process as follows:

diff --git a/tests/tracking/test_mlflow_artifacts.py b/tests/tracking/test_mlflow_artifacts.py
index 6b1c59838c..67f3e0350e 100644
--- a/tests/tracking/test_mlflow_artifacts.py
+++ b/tests/tracking/test_mlflow_artifacts.py
@@ -12,6 +12,7 @@ import requests
 import mlflow
 from mlflow import MlflowClient
 from mlflow.artifacts import download_artifacts
+from mlflow.store.tracking.sqlalchemy_store import SqlAlchemyStore
 from mlflow.utils.os import is_windows

 from tests.helper_functions import LOCALHOST, get_safe_port
@@ -56,6 +57,9 @@ def artifacts_server():
         artifacts_destination = os.path.join(tmpdir, "mlartifacts")
         url = f"http://{LOCALHOST}:{port}"
         default_artifact_root = f"{url}/api/2.0/mlflow-artifacts/artifacts"
+        # Initialize the database before launching the server process
+        s = SqlAlchemyStore(backend_store_uri, default_artifact_root)
+        s.engine.dispose()
         process = _launch_server(
             LOCALHOST,
             port,

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@harupy harupy marked this pull request as ready for review December 8, 2025 06:47
Copilot AI review requested due to automatic review settings December 8, 2025 06:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: harupy <17039389+harupy@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix unstable tests related to MLflow server initialization Fix unstable Windows test by pre-initializing database before server launch Dec 8, 2025
Copilot AI requested a review from harupy December 8, 2025 06:53
@github-actions github-actions bot added v3.7.1 area/build Build and test infrastructure for MLflow area/tracking Tracking service, tracking client APIs, autologging rn/none List under Small Changes in Changelogs. labels Dec 8, 2025
@harupy harupy removed the v3.7.1 label Dec 8, 2025
@harupy harupy merged commit d5cbe04 into master Dec 8, 2025
58 of 62 checks passed
@harupy harupy deleted the copilot/fix-unstable-testing-on-windows branch December 8, 2025 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/build Build and test infrastructure for MLflow area/tracking Tracking service, tracking client APIs, autologging rn/none List under Small Changes in Changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants