Skip to content

fix(s3): S3 Bucket actor conversion from Tornado is correct — no concurrency concerns #683

Description

@LaikaN57

Context

Audit of the Tornado-to-asyncio conversion for actors/aws/s3.py (1,187 lines).

Findings

The S3 Bucket actor conversion is correct with no semantic changes.

Key observations

  1. No concurrency concerns. The Bucket class inherits from EnsurableAWSBaseActor. The _execute() method (from EnsurableBaseActor) processes options sequentially through the ensure cycle. Unlike the IAM actors, there are no yield [list]TaskGroup conversions.

  2. @dry decorated methods correctly converted.

    • Tornado: @gen.coroutine @dry("message") def _create_bucket(self):
    • Asyncio: @dry("message") async def _create_bucket(self):
    • The decorator ordering change is correct because async def is inherently a coroutine (see actors/utils.py analysis).
  3. All yieldawait and gen.Returnreturn conversions are mechanical and correct.

  4. Schema validators (LifecycleConfig, LoggingConfig, TaggingConfig, etc.) are unchanged — they are synchronous validation classes with no async behavior.

Files

  • kingpin/actors/aws/s3.py

Risk: NONE

No action needed. Documenting for audit trail.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions