`pg-cursor` usage leads to memory leak
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
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- javascript, postgresql
Hướng nghiên cứu
Bắt đầu tại packages/pg/lib/client.js, khoảng dòng 577, và tái hiện trường hợp read-query với Cursor trong đoạn mã JavaScript được cung cấp. Kiểm tra việc dọn dẹp timeout và vòng đời của callback trong node inspector sau khi đóng cursor và hủy client. Hoàn tất khi kết quả truy vấn không còn được giữ lại sau khi dọn dẹp, với bản tái hiện xác nhận việc thu gom.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
If you will execute any read query, you can see in node inspector that GC ignores query result and doesn't cleanup it
const client = new PostgreSqlClient({...credentials, query_timeout: 15 * 60_000});
const cursor = client.query(
new Cursor(query),
unhandledErrorCallback,
);
await new Promise((resolve, reject) => {
cursor.read(100000, (error, _, result) => {
if (error) {
reject(error);
} else {
resolve(result);
}
})
})
This happens because of the callback with timeout cleanup:
https://github.com/brianc/node-postgres/blob/master/packages/pg/lib/client.js#L577
query.callback will not be called even if you closed cursor and destroyed the client
- Ngôn ngữ chính
- JavaScript
- Star
- 13.2k
- Fork
- 1.4k
- Merge trung bình
- 6 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 6
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
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 brianc/node-postgres
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
brianc/node-postgres#3770 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
brianc/node-postgres#3716 · 1 bình luận ·
-
# remove bring your own promise Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
brianc/node-postgres#3631 · 1 bình luận ·
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 62/100
brianc/node-postgres#2857 ·
-
can't view docs for old versions Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
brianc/node-postgres#2433 ·
Tất cả issue của brianc/node-postgres
Issue tương tự
-
Update HugeIcons library Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
antfu-collective/icones#398 ·
-
ECmail.com Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
wesbos/burner-email-providers#554 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
radiantearth/stac-browser#1023 ·
-
HMR stops working Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
components-web-app/docs#92 ·