Skip to content

Measure whether the ready hook can exceed five minutes #629

Open

Description

@laithalsaadoon

Tracker #605 carries this measurement follow-up from #598. A PT5M ready-hook failure reason may be a platform cap or a per-request timeout. Accepting a configured value above 300 seconds with a fast ready hook does not distinguish them.

Moved past 1.1.0 because resolving the platform limit requires a dedicated delayed-readiness experiment, separate from the release conformance coverage.

Acceptance: build an image whose ready hook deliberately takes more than 300 seconds with readyTimeoutInSeconds above that duration. Record the service outcome and duration, region, API version, and logs. Replace the current platform observation if the result contradicts it, and retain a named conformance check. Clean up the image, VM and service-created logs independently.

Activity

  1. added
    platformMeasured AWS Lambda MicroVMs behavior that differs from or is missing in docs/PLATFORM.md
    questionFurther information is requested
    on Oct 15, 2026
  2. bonk-ai commented on Oct 15, 2026

    @bonk-ai
    Contributor
    • The create call takes readyTimeoutInSeconds from hooks_block (crates/microvms-app/src/control/image.rs:224-228), which writes one BuildHookTimeout to both ready and validate (crates/microvms-app/src/control/mod.rs:1055-1076). BuildHookTimeout::try_new accepts 1 to 3600 (crates/microvms-domain/src/hooks.rs:82-97; ceiling at crates/microvms-domain/src/constants.rs:312-313, service model 2025-09-09 at :54), and build --build-hook-timeout-sec parses through it (crates/microvms-cli/src/cli.rs:1251-1256, :2716-2719). The client sets no bound at 300.
    • docs/PLATFORM.md:381-393 lists Ready hook invocation timed out after PT5M among observed build stateReasons and says that record lacks the configured readyTimeoutInSeconds, so it does not establish a five-minute platform limit. GetMicrovmImageVersion echoes the hooks (docs/PLATFORM.md:606-607), so the configured value can be read back beside the outcome, and docs/PLATFORM.md:596-600 records what snapshotBuild holds after a ready-hook timeout.
    • The daemon answers /ready with 200 straight away (crates/agentd/src/routes.rs:323-331) and has no workload handler for it (crates/agentd/src/hook_handlers.rs:46-47), so the delay has to come from the image. measurement_dockerfile already replaces the stanza's CMD with a probe (conformance/lanes/platform_measurements.py:42-56).
    • Confirms: a variant under ./conformance/run_rs.py --only platform_measurements --measurement-variant <name> (conformance/run_rs.py:118-136). Its isolated_image build passes no --build-hook-timeout-sec today (conformance/lanes/isolated_image.py:49-65), and ensure_image_cleanup deletes the run's VMs, images, artifact objects and service-created log groups by prefix, reading each back (conformance/lanes/ensure_image.py:221-274).
  3. laithalsaadoon commented on Oct 18, 2026

    @laithalsaadoon
    OwnerAuthor

    The second full main live run, 39088836602, did not resolve this measurement. On October 18, 2026 in us-east-1, API 2025-09-09, the request and service echo both specified a 600-second ready timeout. The image reached CREATE_FAILED (ERR_PLATFORM) after about 711.79 seconds. The report recorded 60 begin events and 30 end events, with completed delays from 310.0002 to 310.1001 seconds, but classified no conclusive service outcome.

    The completed delay is logged before the fixture forwards to the daemon, so it does not establish successful readiness. The report reduced the underlying service diagnostic to other build failure; it establishes neither a successful hook beyond five minutes nor a five-minute service cap. The named conformance check correctly failed, and #629 remains open. The current platform entry is unchanged.

    The lane's cleanup assertions passed, but the overall live suite failed. The release tracker records the separate suite failure and pending image deletion. Further live verification is stopped under the current full-run limit; a maintainer decision is required before another attempt.

  4. laithalsaadoon commented on Oct 18, 2026

    @laithalsaadoon
    OwnerAuthor

    Deferred past 1.2.0.

    Full live run 39088836602 on main didn't settle this. The image reached CREATE_FAILED with ERR_PLATFORM after about 712 seconds, with a requested and echoed ready timeout of 600 seconds, and the lane classified no conclusive outcome. A release shouldn't wait on an answer the service hasn't given yet, so #714 keeps the measurement in the live suite and records an inconclusive outcome as a skip with its full report. A conclusive outcome still passes, and the lane's cleanup checks still gate the run.

    This issue stays open, and docs/PLATFORM.md keeps its current entry until a run produces a conclusive result.

  5. laithalsaadoon commented on Oct 18, 2026

    @laithalsaadoon
    OwnerAuthor

    The v1.2.0 tag's live run (run 39113559270) measured this again and recorded it as the suite's one expected skip: region us-east-1, API 2025-09-09, requested timeout 600, echoed timeouts [600], state CREATE_FAILED, error ERR_PLATFORM, outcome inconclusive, 710 seconds of wall time, 60 begin records and 30 end records. The two service reasons were outside the lane's known categories (other build failure). This matches run 39088836602 and the local run of #714, so the question stays open past 1.2.0: the lane still can't tell a five-minute cap from an unrelated build failure.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    platformMeasured AWS Lambda MicroVMs behavior that differs from or is missing in docs/PLATFORM.mdquestionFurther information is requested

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions