Skip to content

experimental/air: upload code snapshots via libs/filer instead of a synthetic bundle - #6735

Open
pietern wants to merge 1 commit into
mainfrom
air-libs-upload
Open

pietern wants to merge 1 commit into
mainfrom
air-libs-upload

Conversation

@pietern

@pietern pietern commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Changes

To upload a run's code snapshot, air run used to construct a fake in-memory bundle just so it could call the bundle library's artifact uploader. This uploads the tarball directly with libs/filer instead. A new snapshotUploadFiler picks the destination (a Volume filer for /Volumes paths, a workspace filer otherwise, both under <artifact_path>/.internal), and the upload is a plain filer.Write. The file and its function are renamed (snapshot_dabs.go to snapshot_upload.go, snapshotViaDABsUpload to uploadSnapshot) since the path no longer goes through DABs.

Why

Removes air's dependency on the bundle package internals for what is really just a file upload. Behavior is unchanged: both packaging modes, the content-addressed skip, remote_volume routing, and the Uploading ... line are preserved. Drops the direct bundle*, libs/vfs, libs/dyn, and service/jobs imports.

Tests

Build, vet, and the air acceptance suite pass; unit tests pass except the pre-existing TestSubmitWorkload failure in unrelated code.

This pull request and its description were written by Isaac.

…ynthetic bundle

To upload a run's code snapshot, air run used to construct a fake in-memory bundle just to call the bundle library's artifact uploader. This uploads the tarball directly with libs/filer instead, and renames the file and function since the path no longer goes through DABs.

Co-authored-by: Isaac <no-reply@databricks.com>
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: fc8a32d

Run: 35234523474

Env 🔄​flaky ✅​pass 🙈​skip Time
✅​ aws linux 276 15 4:18
✅​ aws windows 278 13 4:55
✅​ azure linux 275 15 4:03
✅​ azure windows 277 13 5:16
🔄​ gcp linux 2 274 15 4:34
✅​ gcp windows 278 13 3:48
Test Name gcp linux
🔄​ TestFilerWorkspaceNotebook 🔄​f
🔄​ TestFilerWorkspaceNotebook/pythonJupyterNb.ipynb 🔄​f
Top 3 slowest tests (at least 2 minutes):
duration env testname
5:12 azure windows TestAccept
4:52 aws windows TestAccept
3:45 gcp windows TestAccept

@caroline-db caroline-db left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

implementation lgtm. can you update a couple of stale comments referring to dabs upload before merging?

  • runsubmit.go - left a review comment here
  • runsubmit_test.go - quite a few stale comments here

Comment on lines 339 to 341
// Package and upload the code snapshot, if any, via DABs' artifact-upload
// plumbing; the remote code_source_path rides the ai_runtime_task. A run with no
// code_source leaves it empty. Snapshot is the only code_source type.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit - can you update this comment to reflect the new implementation?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants