write_to_textfile: tmp file is left behind if generator code fails
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
- 45/100
Hướng nghiên cứu
Bắt đầu trong prometheus_client/exposition.py, tại phần triển khai write_to_textfile quanh các dòng 202-203, nơi generate_latest(registry) chạy trong quá trình tạo tệp tạm thời. Theo dõi đường đi của lỗi khi mã collector phát sinh ngoại lệ và xác minh rằng hành vi hoàn tất không để lại tệp tạm thời nào, đồng thời vẫn giữ nguyên quy trình đổi tên nguyên tử.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
In the write_to_textfile function, the code to run the collector registry is in the temp file creation block: https://github.com/prometheus/client_python/blob/master/prometheus_client/exposition.py#L202-L203
In my case, I had an error in my collector code (run by generate_latest(registry)). This resulted in many tmp files left over from the errors.
I'm wondering if it would be preferable to run the code before the temp file block, e.g.:
tmppath = '%s.%s.%s' % (path, os.getpid(), threading.current_thread().ident)
out = generate_latest(registry)
with open(tmppath, 'wb') as f:
f.write(out)
# rename(2) is atomic.
os.rename(tmppath, path)
Unless leaving temp files behind is the desired/intended behavior.
- Ngôn ngữ chính
- Python
- Star
- 4.4k
- Fork
- 876
- Merge trung bình
- 8 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 1
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 prometheus/client_python
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
prometheus/client_python#1177 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
prometheus/client_python#1210 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 58/100
prometheus/client_python#1199 · 1 reaction ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
prometheus/client_python#1176 ·
-
WSL and MultiProcessCollector Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 52/100
prometheus/client_python#1126 · 2 bình luận ·
Tất cả issue của prometheus/client_python
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
stephrobert/dsoxlab#238 ·
-
Độ 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
sublimehq/package_control#1780 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
nwg-piotr/nwg-displays#145 ·