Error calling BaseHTTPRequestHandler.end_headers()
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
Bug description:
If a call is made to BaseHTTPRequestHandler.end_headers() but no headers or response have been queued, an exception is raised exposing implementation details.
class request_handler(BaseHTTPRequestHandler):
def do_GET(self):
self.end_headers()
Actual result
AttributeError("'request_handler' object has no attribute '_headers_buffer'")
Expected result:
pass
flush_headers has a guard to check if the buffer has been allocated which is missing from end_headers
if hasattr(self, '_headers_buffer'):
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-131718
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.
Hướng nghiên cứu
Bắt đầu bằng cách xác định BaseHTTPRequestHandler.end_headers() của CPython và so sánh cách xử lý của nó với flush_headers(), đặc biệt là phần bảo vệ _headers_buffer được mô tả trong báo cáo. Được xem là hoàn tất khi việc gọi end_headers() mà không có header nào đang chờ hoặc response vẫn hoàn tất mà không làm lộ ra AttributeError; hãy kiểm tra PR gh-131718 được liên kết trước khi bắt đầu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- networking
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100