Under a 1 GiB container limit the default image exhausts its 256 MB heap on the first publish, poisons its H2 store and keeps running while answering 401 to every login
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- docker, java
- Ambito
- infrastructure
Direzione di ricerca
Inizia dalle definizioni ENTRYPOINT in build/application/Dockerfile e build/application-java/Dockerfile, quindi confronta il comportamento di ciascuna immagine con i limiti segnalati di 1 GiB e 768 MiB. L’issue indica il dimensionamento dell’heap e le opzioni per terminare in caso di memoria esaurita come modifiche previste; il lavoro è completato quando le immagini dimensionano l’heap in base al container e terminano quando l’heap si esaurisce, così che il flusso di pubblicazione e accesso segnalato non lasci più il container in esecuzione in uno stato di errore.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
- Image:
dirigiblelabs/dirigible:15.1.0-java(sha256:dac354be94f21f222e88b81fd7fc6e68d9616ee7b4e12bcb1e9eef0465bd213f) - Reference:
dirigiblelabs/dirigible:15.1.0(sha256:449b8c948738a2bd7a4294a7bec1000a08bc1da1cd20f312f0e54383a7af325d)
The default image fails. The Java edition holds the same sequence only because it is lighter: both Dockerfiles share the same ENTRYPOINT.
Steps
docker run -d --name m1 -p 8080:8080 --memory=1g dirigiblelabs/dirigible:15.1.0
# ready after 79 s; JVM ergonomics: MaxHeapSize 268435456 (25% of the limit), the Dockerfile sets no -Xmx / MaxRAMPercentage
POST /services/ide/workspaces/QA-m -> 201
POST /services/ide/transport/project/QA-m (sample-intent-money zip, the IntentSliceSampleIT project) -> 200
POST /services/ide/publisher/QA-m/sample-intent-money -> 200
GET /services/java/sample-intent-money/gen/money/api/invoiceline/InvoiceLineController?$limit=1 (admin:admin)
Observed
- The log shows
Exception in thread "Lucene Merge Thread #0" java.lang.OutOfMemoryError: Java heap space, thenorg.h2.mvstore.MVStoreException: java.lang.OutOfMemoryError: Java heap spacein the Quartz JobStoreTX and in Hibernate, thenMVStoreException: Transaction was illegally transitioned from CLOSED to COMMITTED, and Flowable acquire-jobs ERRORs on every cycle. That is 587OutOfMemoryErrorlines. - Every basic-auth request answers 401 from then on (the controller,
/services/core/versionand/actuator/health): the admin user can no longer be loaded. - The JVM keeps running and the container stays
Up(OOMKilled=false), so nothing restarts it. --memory=768m: 15.1.0 is ready after 226 s, the publish answers 200, and the controller answers 401 for 90 s, with 313OutOfMemoryErrorlines.- The same steps on
15.1.0-java: 1 GiB gives controller 200 after 15 s, no OOM, RSS 754 MiB. 768 MiB gives ready after 144 s, controller 200, no OOM.
Expected
A 1 GiB container is a common size. The image should size the heap for its container (-XX:MaxRAMPercentage=... in the ENTRYPOINT, as the default 25% leaves ~750 MB unused). It should also exit on heap exhaustion (-XX:+ExitOnOutOfMemoryError), so the orchestrator restarts it instead of serving 401s from a poisoned H2 store.
Where
build/application/Dockerfile and build/application-java/Dockerfile: ENTRYPOINT ["java", ... "-jar", "/dirigible.jar"] without heap sizing or an OOM exit flag.
- Lingua principale
- Java
- Stelle
- 278
- Fork
- 97
- Merge medio
- 15h 42m
- PR unite (30g)
- 299
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di eclipse-dirigible/dirigible
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
eclipse-dirigible/dirigible#8291 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
eclipse-dirigible/dirigible#8240 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
eclipse-dirigible/dirigible#8238 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
eclipse-dirigible/dirigible#8232 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
eclipse-dirigible/dirigible#8226 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di eclipse-dirigible/dirigible
Issue simili
-
priority: p2 type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
googleapis/java-genai#1372 ·
I maintainer di solito rispondono entro 1 giorno
-
GeoSeries scale and skew tests fail with pytest 9.2.0Forse già presa @jiayuasu l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
priority: medium Review effort [1-5]: 3 status: needs-triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
carlos-emr/carlos#5431 ·
I maintainer di solito rispondono entro 1 giorno
-
Integration tests: jetty:run fails with WELD-001408 for CountryJpaServiceForse già presa @viniciusmachak l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
primefaces/primefaces#15431 ·
I maintainer di solito rispondono entro 1 giorno
-
test(multi-tenancy): assert cross-tenant vulnerability reads are refused in the CWE isolation testAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenAEV-Platform/openaev#8792 ·
I maintainer di solito rispondono entro 2 giorni