- Fixed schema isolation handling in Exposed by switching table creation to JDBC and explicitly setting `search_path` in PostgreSQL. - Removed redundant `runBlocking` calls, unused variables, and IDE warnings in the test. - Added `JwtDecoder` mock in `@TestConfiguration` to prevent application context loading errors. - Verified that writes in one tenant schema are no longer visible in another. chore(config): add `application-test.yaml` for better test environment setup - Configured H2 as an in-memory database for tests. - Disabled Flyway and Consul to avoid unnecessary dependencies during testing.
27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
---
|
|
type: Journal
|
|
status: ACTIVE
|
|
owner: DevOps Engineer
|
|
last_update: 2026-04-14
|
|
---
|
|
|
|
# Session Log: Fix Kotlin Wasm JS Compilation OOM
|
|
|
|
## Problem
|
|
Die Kompilierung des Moduls `:frontend:features:billing-feature` für `wasmJs` schlug mit einem `java.lang.OutOfMemoryError: GC overhead limit exceeded` fehl.
|
|
|
|
Ursache war die Verwendung von `material-icons-extended` in Kombination mit den bisherigen JVM-Speichereinstellungen (6GB). Da `material-icons-extended` tausende generierte Icon-Dateien enthält, stößt der Kotlin/Wasm-Compiler bei der IR-Lowering-Phase an seine Grenzen.
|
|
|
|
## Lösung
|
|
1. **Speichererhöhung:** Die JVM-Heap-Einstellungen in `gradle.properties` wurden von 6GB auf 8GB erhöht.
|
|
- `kotlin.daemon.jvmargs` wurde auf `-Xmx8g` gesetzt.
|
|
- `org.gradle.jvmargs` wurde auf `-Xmx8g` gesetzt, wobei die Optionen für den Kotlin-Daemon (`-Dkotlin.daemon.jvm.options`) auf `-Xmx6g` erhöht wurden.
|
|
2. **Verifizierung:** Die Kompilierung von `:frontend:features:billing-feature:compileProductionLibraryKotlinWasmJs` wurde nach einem Daemon-Restart erfolgreich durchgeführt.
|
|
|
|
## Betroffene Dateien
|
|
- `gradle.properties`: Erhöhung der Speicherlimits.
|
|
- `frontend/features/billing-feature/build.gradle.kts`: (Kurzzeitig getestet ohne `materialIconsExtended`, aber wieder aktiviert, da Icons daraus benötigt werden).
|
|
|
|
## Handover
|
|
- Zukünftig sollte bei weiteren OOM-Problemen im Wasm-Bereich geprüft werden, ob `material-icons-extended` durch eine selektive Icon-Einbindung (z.B. als Ressourcen) ersetzt werden kann, um den Compiler zu entlasten.
|