ZenEngine Crashes when very big number passed in context parameter
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- node.js, rust, typescript
- Lĩnh vực
- backend
Hướng nghiên cứu
Reproduce the crash with the sample enterprise_value JSON and ZenEngine 0.23.0, then inspect core\expression\src\isolate.rs at line 62 where the panic occurs. Trace how the context value is handled during decision.evaluate; done means this input no longer crashes the application.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description: When passing a large integer (bigint) as a value in JSON data into ZenEngine version 0.23.0, the application crashes with the following error:
thread 'tokio-runtime-worker' panicked at core\expression\src\isolate.rs:62:55:
calledResult::unwrap()on anErrvalue: ()
stack backtrace:
0: 0x7ffd15de48da - napi_register_module_v1
1: 0x7ffd15cfe60b -
2: 0x7ffd15ddbdc1 - napi_register_module_v1
3: 0x7ffd15de6296 - napi_register_module_v1
4: 0x7ffd15de5c1f - napi_register_module_v1
5: 0x7ffd15de6a2a - napi_register_module_v1
6: 0x7ffd15de6509 - napi_register_module_v1
7: 0x7ffd15de6449 - napi_register_module_v1
8: 0x7ffd15de6436 - napi_register_module_v1
9: 0x7ffd15f04c37 - napi_register_module_v1
10: 0x7ffd15f05093 - napi_register_module_v1
11: 0x7ffd15e1c7cd - napi_register_module_v1
12: 0x7ffd15c0a4e8 -
13: 0x7ffd15c1bca0 -
14: 0x7ffd15ca2b27 -
15: 0x7ffd15c5a8a2 -
16: 0x7ffd15dedf67 - napi_register_module_v1
17: 0x7ffd15dfb349 - napi_register_module_v1
18: 0x7ffd15df35be - napi_register_module_v1
19: 0x7ffd15df2ff1 - napi_register_module_v1
20: 0x7ffd15de458c - napi_register_module_v1
22: 0x7ffdac8026b1 - RtlUserThreadStart
The stack trace is provided in the issue report.
This issue was reproduced using the following sample JSON data:
{
"enterprise_value": 150945677535289400
}
Code
export async function executeGrader(graderJsonPath: string, data: object, params: object): Promise<any> {
const content = await fs.readFileSync(graderJsonPath);
const engine = new ZenEngine();
const decision = engine.createDecision(content);
const result = await decision.evaluate({ ...params, ...data });
if (result?.result?.grade) {
return result.result.grade;
}
engine.dispose();
return null;
}
Environment:
Node.js version: 18.17.1
ZenEngine version: 0.23.0
- Ngôn ngữ chính
- Rust
- Star
- 2k
- Fork
- 219
- Merge trung bình
- 5 giờ 40 phút
- Pull request đã merge (30 ngày)
- 23
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 gorules/zen
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Checked division by defaultĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
gorules/zen#324 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
DayuanJiang/PecoFence#139 ·
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 62/100
nearai/compose-manager#73 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
akitaonrails/ai-memory#1664 ·
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 76/100
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
Maintainer thường phản hồi trong vòng 1 ngày