socket.fromfd() leaks the dup()'d fd when family/type/proto are invalid
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ó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/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ệ
- python
- Lĩnh vực
- operating-systems
Hướng nghiên cứu
Bắt đầu bằng cách đọc socket.fromfd() và các bài kiểm thử của nó trong mô-đun socket của CPython; issue không nêu tên tệp hay bài kiểm thử, vì vậy hãy tìm chúng bằng cách tìm kiếm fromfd. Tái hiện lỗi với các giá trị family, type hoặc proto không hợp lệ và xác nhận rằng descriptor được sao chép sẽ đóng khi quá trình khởi tạo phát sinh ngoại lệ. Công việc hoàn tất khi bài kiểm thử hồi quy bao quát các lỗi đó và descriptor không còn bị rò rỉ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Bug report
socket.fromfd() duplicates the fd, then constructs the socket object.
If construction raises (TypeError/ValueError/OverflowError), the
duplicated fd is never closed.
Repro: attached confirm.py (Linux). It lowers RLIMIT_NOFILE and calls
socket.fromfd(fd, <bad family | bad type | huge proto>) repeatedly.
Result: each failing call leaks exactly one fd (10 leaks over 10
calls). A valid-args control leaks 0. Eventually any socket() call fails
with EMFILE.
Expected: the dup()'d fd is closed before the exception propagates.
CPython versions tested on:
3.14
Operating systems tested on:
Linux
- Ngôn ngữ chính
- Python
- Star
- 77.7k
- Fork
- 38.3k
- Merge trung bình
- 12 giờ 12 phút
- Pull request đã merge (30 ngày)
- 650
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- 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 python/cpython
-
tests topic-profiling type-bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
python/cpython#160334 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
extension-modules type-bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Remove unused FVS_* macrosĐang mởinterpreter-core type-feature
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
python/cpython#160109 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
extension-modules type-bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
python/cpython#160001 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
stdlib topic-XML type-bug
Độ 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
Tất cả issue của python/cpython
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
WLAN-Pi/wlanpi-profiler#341 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Memory leak: the shared `validation_aborted_error` keeps every traceback it is raised throughCó thể đã có người làm @Fire162 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
graphql-python/graphql-core#287 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
roman-corgi/ctc-dip#160 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
render_findings.py reads and writes in the host's default encoding, so findings.html breaks on a cp1252 Windows hostCó thể đã có người làm @Aaqibhafeezkhan đã nhận hôm nay. Đang mởbug good first issue mentored python size: XS up-for-grabs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
dheerajjha/mcp-migrate#366 · 1 bình luận ·
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