Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: elastic/ml-cpp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: elastic/ml-cpp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: exp/rss-probe-faithful
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 7 commits
  • 6 files changed
  • 2 contributors

Commits on Oct 2, 2026

  1. [ML] Add standalone pytorch_inference RSS probe for OOM repro (#3226)

    Reproduce the nightly QA pytorch_inference OOM without Elasticsearch: a new
    dev-tools driver drives a sustained inference load through the standalone
    process (ELSER model, no ES) while sampling RSS, collapsing the ~6h QA cycle
    into a direct memory trace in minutes.
    
    A new run_rss_probe CI action builds only the linux x86_64 distribution and
    runs the probe on the 64 GiB build agent, skipping the ES/QA suites. The
    action and RSS_PROBE_* overrides are threaded through the pytorch-builds
    trigger (pr-builds rejects direct API builds).
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    984eb91 View commit details
    Browse the repository at this point in the history
  2. [ML] RSS probe: add prebuilt-distribution mode for pinned-libtorch re…

    …pro (#3226)
    
    Add a prebuilt-distribution mode to the RSS probe so we can reproduce the
    pytorch_inference OOM against an exact, already-built ml-cpp+libtorch combo
    without any rebuild. When RSS_PROBE_DIST_BUILD is set, the pipeline skips the
    libtorch Docker image build and the ml-cpp compile, and the probe step pulls
    the linux-x86_64 distribution from that build (cross-build artifact download)
    before running the standalone load. Enables the clean single-variable test
    b0c52aa + bb63328c by reusing A/B Arm B's distribution.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    da10aaf View commit details
    Browse the repository at this point in the history
  3. [ML] RSS probe: make distribution download/unzip cwd-independent (#3226)

    The probe step resolved the downloaded distribution zip via a relative
    `find build/distributions` and unzipped it through a `../` prefix, both of
    which depended on the command's working directory matching the artifact
    download location. On the prebuilt path this left DIST_ZIP empty and the
    unzip failed with status 9. Download into an absolute dir, locate the zip
    and binary by absolute path, unzip with -d, and fail loudly if either is
    missing.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    6390ecf View commit details
    Browse the repository at this point in the history
  4. [ML] RSS probe: move probe body into committed script to survive pipe…

    …line-upload interpolation (#3226)
    
    buildkite-agent pipeline upload interpolates ${VAR} in the step command at
    upload time, which blanked out $PWD, $(find ...) and the probe knobs that are
    meant to be evaluated at runtime (the step failed with empty paths and
    mkdir ''). Move the whole probe body into dev-tools/run_rss_probe_ci.sh and
    drive it purely through the step env: block, so the YAML command is a single
    literal invocation with no shell variables for Buildkite to interpolate.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    a8f5924 View commit details
    Browse the repository at this point in the history
  5. [ML] RSS probe: variable-length requests + heavier parallel load to c…

    …hase the OOM (#3226)
    
    The fixed 512-token single-shape workload left RSS flat at ~1 GiB, far from
    the 34-40 GiB QA OOM. Add --vary-tokens to randomise each request's sequence
    length over [--min-tokens, --num-tokens], mimicking a real variable-length
    corpus (wikipedia) and exercising many distinct tensor shapes, which is what
    grows the caching allocator. Raise the CI defaults accordingly: 20000 requests,
    8 allocations, variable 1-512 token lengths.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    c66b224 View commit details
    Browse the repository at this point in the history
  6. [ML] RSS probe: add long token-length skew to mirror real ELSER corpus (

    #3226)
    
    The QA OOM runs the default .elser-2-elasticsearch endpoint (adaptive
    allocations, min 0 / max 32, threads_per_allocation 1) over wikipedia-1g,
    whose documents skew toward the 512-token cap. Add --token-skew long (Beta
    distribution biased to the maximum) so the synthetic load better matches the
    real length distribution, and thread it through the CI env passthrough.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    022b095 View commit details
    Browse the repository at this point in the history
  7. [ML] RSS probe: fix RssWatcher._stop shadowing Thread._stop (#3226)

    threading.Thread uses a private _stop() method internally; naming the watcher's
    Event attribute self._stop shadowed it, so Thread.join() -> _wait_for_tstate_lock
    -> self._stop() raised "'Event' object is not callable" at cleanup, failing the
    step and suppressing the verdict even though the probe ran fine. Rename the
    attribute to _stop_event.
    
    Co-authored-by: Cursor <cursoragent@cursor.com>
    edsavage and cursoragent committed Oct 2, 2026
    Configuration menu
    Copy the full SHA
    fc4189e View commit details
    Browse the repository at this point in the history
Loading