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
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #8311 của @d-velev — đã merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- docker, java
- Lĩnh vực
- infrastructure
Hướng nghiên cứu
Bắt đầu với các định nghĩa ENTRYPOINT trong build/application/Dockerfile và build/application-java/Dockerfile, sau đó so sánh cách mỗi image hoạt động dưới các giới hạn được báo cáo là 1 GiB và 768 MiB. Issue nêu việc điều chỉnh kích thước heap và các tùy chọn thoát khi hết bộ nhớ là những thay đổi được mong đợi; công việc hoàn tất khi các image điều chỉnh heap theo container và thoát khi heap cạn, để luồng publish và login được báo cáo không còn khiến container tiếp tục chạy trong trạng thái lỗi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
- 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.
- Ngôn ngữ chính
- Java
- Star
- 278
- Fork
- 97
- Merge trung bình
- 15 giờ 33 phút
- Pull request đã merge (30 ngày)
- 310
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của eclipse-dirigible/dirigible
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
eclipse-dirigible/dirigible#8354 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
eclipse-dirigible/dirigible#8291 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
eclipse-dirigible/dirigible#8240 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
eclipse-dirigible/dirigible#8238 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
eclipse-dirigible/dirigible#8232 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của eclipse-dirigible/dirigible
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
quarkusio/quarkus-agent-mcp#302 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
build
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
MetricsHub/metricshub-community#1472 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
IdentityArrayObjectSet iterator remove may throw ArrayIndexOutOfBoundsExceptionCó thể đã có người làm @jiteshkhatri11 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
javapathfinder/jpf-core#660 · 1 bình luận ·