[BUG] pool.close fails when callback is provided; causing memory leak
Chưa có ai nhận issue này.
Đá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
- 58/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- javascript, node.js
Hướng nghiên cứu
Bắt đầu từ phần triển khai pool.close() và kiểm tra cách giá trị cục bộ connections và freeConnections được xử lý trước khi đường dẫn callback chạy. Cập nhật bài kiểm thử đóng pool liên quan để xác minh rằng các connections thực sự được đóng, không chỉ là freeConnections rỗng, và xác nhận rằng callback hoàn tất mà không để pool mở.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
In function pool.close(), if a callback is provided, the subsequent loop on "freeConnections" does nothing because that structure was previously zeroed out earlier in the function. The foreach should be performed on the local const "connections" which was a copy of "freeConnections" before being zeroed out.
The tests do not catch this because they validate that "freeConnections" is zero afterwards, which it is. But because of the bug, the actual connections were not closed.
The code block that runs when callback is provided
NOW
async.each(this.freeConnections, (connection, cb) => {
connection.nativeClose((error) => {
this.poolSize--;
cb(error);
});
}, error => callback(error));
SHOULD BE
async.each(connections, (connection, cb) => {
connection.nativeClose((error) => {
this.poolSize--;
cb(error);
});
}, error => callback(error));
- Ngôn ngữ chính
- JavaScript
- Star
- 159
- Fork
- 92
- Merge trung bình
- 3 phút
- Pull request đã merge (30 ngày)
- 2
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 IBM/node-odbc
-
doc: how to run the testsĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
security
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
[Bug] Sybase ASE: Encoding issue (works in msnodesqlv8, fails in node-odbc with \x1A artifacts)Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
Tất cả issue của IBM/node-odbc
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
521xueweihan/HelloGitHub#4073 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
c1overzz/dsh-bili-scroll#79 ·
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
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
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
awesome-dsh-plugin/awesome-dsh-plugin#8715 ·
Maintainer thường phản hồi trong vòng 1 ngày