JVM crash on large polyfills
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Trước tiên, hãy tái hiện lỗi crash với trường hợp polyfill lớn trong TestH3Core.java, sau đó so sánh với trường hợp testPolyfill.c liên quan và lời gọi h3Api.polyfill. Xác định xem lỗi nằm trong Java wrapper hay thư viện core, đồng thời xác nhận bản sửa đã hoàn tất bằng các kiểm thử hồi quy cho polygon lớn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
When the following is added to TestH3Core.java, the jvm crashes out on h3Api.polyfill before completing the tests. The polyfill works at resolution 9.
@Test
public void testPolyfillLarge() {
List<Long> hexagons = h3.polyfill(
ImmutableList.<GeoCoord>of(
new GeoCoord(41.5, -70.4),
new GeoCoord(41.5, -69.8),
new GeoCoord(42.1, -69.8),
new GeoCoord(42.1, -70.4)
), null,
10
);
assertTrue(hexagons.size() > 1000);
}
Is this an issue with the java wrapper, or is this impossible to do with the core library?
I don't know C but adding a similar test to h3 naively copying the existing styles to testPolyfill.c at level 11 still seems to work. If I increase the resolution up past 11 it eventually segfaults there too.
GeoCoord capeCodVerts[] = {
{0.7243116395776468, -1.2287117934040082}, {0.7243116395776468, -1.218239817892042},
{0.7347836150896128, -1.218239817892042}, {0.7347836150896128, -1.2287117934040082}};
Geofence capeCodGeofence;
GeoPolygon capeCodGeoPolygon;
capeCodGeofence.numVerts = 4;
capeCodGeofence.verts = capeCodVerts;
capeCodGeoPolygon.geofence = capeCodGeofence;
capeCodGeoPolygon.numHoles = 0;
TEST(polyfillLarge) {
int numHexagons = H3_EXPORT(maxPolyfillSize)(&capeCodGeoPolygon, 12);
H3Index* hexagons = calloc(numHexagons, sizeof(H3Index));
H3_EXPORT(polyfill)(&capeCodGeoPolygon, 11, hexagons);
int actualNumHexagons = 0;
for (int i = 0; i < numHexagons; i++) {
if (hexagons[i] != 0) {
actualNumHexagons++;
}
}
t_assert(actualNumHexagons > 10000, "got lots of hexagons");
free(hexagons);
}
- Ngôn ngữ chính
- Java
- Star
- 333
- Fork
- 68
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
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 uber/h3-java
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 42/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
Issue tương tự
-
certification
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Đang mởbug ecr
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Needs: Triage Type: Feature request
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
github/copilot-sdk#2760 ·