- 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.
1.5 KiB
1.5 KiB
| type | status | owner | last_update |
|---|---|---|---|
| Journal | ACTIVE | DevOps Engineer | 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
- Speichererhöhung: Die JVM-Heap-Einstellungen in
gradle.propertieswurden von 6GB auf 8GB erhöht.kotlin.daemon.jvmargswurde auf-Xmx8ggesetzt.org.gradle.jvmargswurde auf-Xmx8ggesetzt, wobei die Optionen für den Kotlin-Daemon (-Dkotlin.daemon.jvm.options) auf-Xmx6gerhöht wurden.
- Verifizierung: Die Kompilierung von
:frontend:features:billing-feature:compileProductionLibraryKotlinWasmJswurde nach einem Daemon-Restart erfolgreich durchgeführt.
Betroffene Dateien
gradle.properties: Erhöhung der Speicherlimits.frontend/features/billing-feature/build.gradle.kts: (Kurzzeitig getestet ohnematerialIconsExtended, 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-extendeddurch eine selektive Icon-Einbindung (z.B. als Ressourcen) ersetzt werden kann, um den Compiler zu entlasten.