Skip to content

fix(cloudfront,logs,kinesis,s3): persist dropped fields + real promote/disassociate (1.13)#1938

Merged
vieiralucas merged 2 commits into
mainfrom
fix/med-stubs-streaming
Jun 25, 2026
Merged

fix(cloudfront,logs,kinesis,s3): persist dropped fields + real promote/disassociate (1.13)#1938
vieiralucas merged 2 commits into
mainfrom
fix/med-stubs-streaming

Conversation

@vieiralucas

@vieiralucas vieiralucas commented Jun 24, 2026

Copy link
Copy Markdown
Member

Summary

MED round-trip-drop fixes from the 2026-06-24 bug hunt (finding 1.13):

  • CloudFront UpdateDistributionWithStagingConfig only bumped the ETag; the staging config never reached the primary. Now promotes the staging distribution's config onto the primary and clears its Staging flag.
  • CloudFront ListDistributions hardcoded <Staging>false</Staging>. Now reports each distribution's real staging flag.
  • Logs DisassociateSourceFromS3TableIntegration was a no-op, so ListSourcesForS3TableIntegration kept returning a removed source. Now removes the matching source.
  • Kinesis DescribeStreamSummary omitted WarmThroughput and MaxRecordSizeInKiB, so UpdateStreamWarmThroughput/UpdateMaxRecordSize never read back. Now reported once configured.
  • S3 PutBucketVersioning dropped MfaDelete; GetBucketVersioning omitted it. New Bucket.mfa_delete field (serde-default, snapshot-compatible) persists + echoes it.

Test plan

  • update_distribution_with_staging_config_swaps_etag extended: promoted prod carries the staging config's comment + Staging=false.
  • s3_table_integration_stubs (unit) extended: ListSources returns 0 after disassociate.
  • kinesis_stream_summary_reports_warm_throughput_and_max_record_size (e2e).
  • s3_bucket_versioning_put_get extended: MfaDelete round-trips.
  • clippy + fmt clean across all five crates.

Surface

No new external API surface. Bucket.mfa_delete is #[serde(default)] in both runtime state and the persistence BucketMeta, so existing snapshots load unchanged.


Summary by cubic

Fixes round-trip drops across CloudFront, Logs, Kinesis, and S3 so configs and settings persist and read back correctly. Implements real promotion/disassociation behavior for better API parity.

  • Bug Fixes

    • CloudFront: UpdateDistributionWithStagingConfig now promotes the staging config to the primary and sets Staging=false on the promoted primary; ListDistributions returns each distribution’s real Staging flag.
    • Logs: DisassociateSourceFromS3TableIntegration now removes the source; ListSourcesForS3TableIntegration no longer returns disassociated sources.
    • Kinesis: DescribeStreamSummary now includes WarmThroughput and MaxRecordSizeInKiB once configured.
    • S3: PutBucketVersioning persists MfaDelete; GetBucketVersioning echoes it. Added Bucket.mfa_delete in persistence.
  • Migration

    • None. Bucket.mfa_delete uses serde defaulting; existing snapshots continue to load.

Written for commit 27fe6d1. Summary will update on new commits.

Review in cubic

…e/disassociate

- CloudFront UpdateDistributionWithStagingConfig now promotes the staging
  distribution's config onto the primary (was only an ETag bump);
  ListDistributions now reports each distribution's real Staging flag instead
  of a hardcoded false.
- Logs DisassociateSourceFromS3TableIntegration now removes the source from
  s3_table_sources (was a no-op, so ListSources kept returning it).
- Kinesis DescribeStreamSummary now reports WarmThroughput and
  MaxRecordSizeInKiB once configured (were omitted).
- S3 PutBucketVersioning now persists MfaDelete; GetBucketVersioning echoes it
  (new Bucket.mfa_delete field, serde-default for snapshot compat).

Bug-hunt 2026-06-24 finding 1.13 (MED round-trip drops). Unit + E2E coverage
added per fix.
@vieiralucas vieiralucas merged commit 8e16fdb into main Jun 25, 2026
94 checks passed
@vieiralucas vieiralucas deleted the fix/med-stubs-streaming branch June 25, 2026 06:40
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.

1 participant