Skip to content

fix(storage): defer S3 bucket verification until first access#289

Merged
wowo-zZ merged 6 commits intomainfrom
feature/s3-startup-storage-resilience
Apr 12, 2026
Merged

fix(storage): defer S3 bucket verification until first access#289
wowo-zZ merged 6 commits intomainfrom
feature/s3-startup-storage-resilience

Conversation

@wowo-zZ
Copy link
Copy Markdown
Collaborator

@wowo-zZ wowo-zZ commented Apr 12, 2026

Summary

  • stop probing S3 bucket availability during Spring startup
  • keep auto-create semantics by preparing the bucket lazily on first storage access
  • extend S3 storage tests with deferred-init coverage while preserving presigned URL expectations

Testing

  • ./mvnw -pl skillhub-storage -am -Dtest=S3StorageServiceTest,LocalFileStorageServiceTest -Dsurefire.failIfNoSpecifiedTests=false test
  • ./mvnw -pl skillhub-app -am -Dtest=HealthControllerTest,SkillPublishControllerTest -Dsurefire.failIfNoSpecifiedTests=false test

@wowo-zZ wowo-zZ force-pushed the feature/s3-startup-storage-resilience branch from 1d3d235 to 7095057 Compare April 12, 2026 07:00
wowo-zZ added 6 commits April 12, 2026 15:10
Multiple @SpringBootTest classes with different @MockBean configs
cause separate Spring contexts sharing the same H2 in-memory database.
With create-drop, one context's shutdown drops tables needed by another,
causing "Table not found (this database is empty)" errors.
CI runners are resource-constrained and async search indexing may not
complete within the previous 5-second window, causing flaky failures.
@wowo-zZ wowo-zZ force-pushed the feature/s3-startup-storage-resilience branch from fbfaccb to dbb6b5f Compare April 12, 2026 07:11
@wowo-zZ wowo-zZ merged commit 348eb4e into main Apr 12, 2026
4 checks passed
Rsweater pushed a commit to Rsweater/skillhub that referenced this pull request Apr 16, 2026
…k#289)

* fix(storage): defer S3 bucket verification until first access

* test(storage): cover deferred S3 bucket verification

* fix(runtime): widen backend container healthcheck window

* fix(runtime): widen backend container healthcheck window

* fix(test): use ddl-auto=create to prevent cross-context table drops

Multiple @SpringBootTest classes with different @MockBean configs
cause separate Spring contexts sharing the same H2 in-memory database.
With create-drop, one context's shutdown drops tables needed by another,
causing "Table not found (this database is empty)" errors.

* fix(test): widen awaitIndexedDocument timeout to 15s

CI runners are resource-constrained and async search indexing may not
complete within the previous 5-second window, causing flaky failures.
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