meldestelle/docs/99_Journal/2026-04-14_DevOps_Billing-Feature-Wasm-OOM-Fix.md
Stefan Mogeritsch f961b6e771 chore(docs+tests): reactivate EntriesIsolationIntegrationTest and resolve tenant data isolation issues
- 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.
2026-04-14 12:25:27 +02:00

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

  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.