Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

クローズ 初心者向け
#8,231 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

関連するプルリクエストがすでにマージされています。

  • #8311 @d-velev による — マージ済み

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
docker, java

調査の方向性

まず build/application/Dockerfile と build/application-java/Dockerfile の ENTRYPOINT 定義を確認し、それぞれのイメージが報告された 1 GiB および 768 MiB の制限下でどのように動作するかを比較します。Issue では、ヒープサイズの調整とメモリ不足時に終了するオプションが期待される変更として挙げられています。イメージがコンテナに合わせてヒープサイズを調整し、ヒープが枯渇したら終了することで、報告された publish と login のフローでコンテナが失敗状態のまま実行され続けなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

  • 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, then org.h2.mvstore.MVStoreException: java.lang.OutOfMemoryError: Java heap space in the Quartz JobStoreTX and in Hibernate, then MVStoreException: Transaction was illegally transitioned from CLOSED to COMMITTED, and Flowable acquire-jobs ERRORs on every cycle. That is 587 OutOfMemoryError lines.
  • Every basic-auth request answers 401 from then on (the controller, /services/core/version and /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 313 OutOfMemoryError lines.
  • 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.

主要言語
Java
スター
278
フォーク
97
平均マージ
15時間 33分
マージ済み PR(30日)
310

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

eclipse-dirigible/dirigible のほかの issue

eclipse-dirigible/dirigible の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。