Skip to content

fix(migtd/spdm): reject success status on error paths - #1097

Merged
jyao1 merged 1 commit into
intel:mainfrom
haitaohuang:fix/spdm-error-path-status
Nov 2, 2026
Merged

jyao1 merged 1 commit into
intel:mainfrom
haitaohuang:fix/spdm-error-path-status

Conversation

@haitaohuang

Copy link
Copy Markdown
Contributor

Summary

  • centralize decoding of SPDM application status values received on error paths
  • reject status zero instead of translating it to MigrationResult::Success
  • map unknown error-path values to SecureSessionError
  • cover direct decoding and both SPDM conversion paths

Testing

Previously validated during branch preparation:

  • cargo fmt --check
  • cargo xtask lib-test --crates migtd
  • TLS and SPDM skip-RA EMU smoke tests

@haitaohuang
haitaohuang force-pushed the fix/spdm-error-path-status branch 2 times, most recently from bd9b6e7 to a5ee5f4 Compare October 27, 2026 20:13
@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status note: the current failed checks are infrastructure failures, not patch failures.

  • Format: hosted runner lost communication before any workflow step completed.
  • Build (vmcall-vsock / v2 / spdm / release): runner disconnected during Checkout sources.
  • Build (vmcall-raw / v1 / tls / release): runner disconnected during Checkout sources.

No formatting, compilation, or test command ran in these failed jobs. The remaining checks are still progressing.

@haitaohuang
haitaohuang force-pushed the fix/spdm-error-path-status branch from a5ee5f4 to 9cbb1a6 Compare October 28, 2026 02:52
@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update for the fresh run: Build Library Crates exceeded its 30-minute job limit while still in Checkout sources. No library build or test command ran, so this is another infrastructure failure.

@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: two additional fresh-run jobs lost hosted-runner communication during Checkout sources:

  • Build and Test (Skip RA)
  • Build (virtio-serial / v1 / tls / debug)

Neither reached build or test execution; both are infrastructure failures.

@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: Build (virtio-serial / v1 / tls / release) also lost hosted-runner communication during Checkout sources. It did not reach compilation, so this is another infrastructure failure.

@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: the final failed job, Build (vmcall-raw / v2 / spdm / release), lost hosted-runner communication during Checkout sources. This attempt completed 58 checks successfully; none of the five non-success jobs reached compilation or tests.

@haitaohuang
haitaohuang force-pushed the fix/spdm-error-path-status branch from 9cbb1a6 to e6eb8a8 Compare October 28, 2026 07:54
@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: Build (vmcall-vsock / v1 / spdm / debug) failed after one hour in Checkout sources. The build step never ran, so this is an infrastructure failure. One matrix job remains in progress.

@haitaohuang
haitaohuang force-pushed the fix/spdm-error-path-status branch from e6eb8a8 to eeae764 Compare October 28, 2026 11:35
@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: the final job, Build (vmcall-vsock / v2 / tls / release), also failed after one hour in Checkout sources; compilation never started. Because both failures in the completed attempt were infrastructure-only, I retriggered CI with an unchanged-tree commit metadata refresh.

@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: SPDM Policy v2 Key Rotation (Mock Report) failed during Checkout sources while fetching the nested OpenSSL submodule (GnuTLS recv error, early EOF, and unpack-objects failed). The integration test never ran, so this is an infrastructure/network failure. Thirty-five checks remain active.

@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: Rebind Prepare (Mock Report) exceeded one hour in Checkout sources. The rebind test never ran, so this is another infrastructure failure. Eighteen checks remain active.

SPDM vendor-defined error responses carry an application status byte, but value zero maps to MigrationResult::Success. Decoding that value on an error path can therefore report a failed migration or rebind operation as successful.

Centralize error-path decoding so Success and unknown values map to SecureSessionError, and cover direct decoding plus both SPDM conversion paths with zero application-status tests.

Signed-off-by: Haitao Huang <haitaohuang@microsoft.com>
Assisted-by: GitHub Copilot CLI:GPT-5.6 Sol
@haitaohuang
haitaohuang force-pushed the fix/spdm-error-path-status branch from eeae764 to fd82e1f Compare October 28, 2026 15:29
@haitaohuang

Copy link
Copy Markdown
Contributor Author

CI status update: the final two jobs also failed during Checkout sources, before compilation or tests:

  • Build (virtio-vsock / v2 / spdm / release)
  • Policy v2 All Three Chains Rotation (Mock Report)

The completed attempt had 59 successful checks and four infrastructure-only non-success jobs, so I retriggered CI with an unchanged-tree commit metadata refresh.

@jyao1
jyao1 merged commit 36a735e into intel:main Nov 2, 2026
107 of 112 checks passed
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