python / python/cpython

subprocess.communicate with timeout 0 and already terminated process generates TimeoutExpired on Linux

Đang mở
#73,658 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

stdlib topic-subprocess type-bug
Ngôn ngữ chính
Python
Star
77.2k
Fork
36k
Merge trung bình
1 ngày 9 giờ
Pull request đã merge (30 ngày)
558

Mô tả

BPO 29472
Nosy @Griffon26, @spoorcc
Files
  • test.py: A minimal example that shows the problem
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = None
    created_at = <Date 2017-02-07.11:57:14.624>
    labels = ['type-bug', 'library']
    title = 'subprocess.communicate with timeout 0 and already terminated process generates TimeoutExpired on Linux'
    updated_at = <Date 2017-02-07.12:36:53.465>
    user = 'https://github.com/Griffon26'
    

    bugs.python.org fields:

    activity = <Date 2017-02-07.12:36:53.465>
    actor = 'spoorcc'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Library (Lib)']
    creation = <Date 2017-02-07.11:57:14.624>
    creator = 'Griffon26'
    dependencies = []
    files = ['46557']
    hgrepos = []
    issue_num = 29472
    keywords = []
    message_count = 1.0
    messages = ['287230']
    nosy_count = 2.0
    nosy_names = ['Griffon26', 'spoorcc']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue29472'
    versions = ['Python 3.6']
    

    Hướng dẫn đóng góp

    Mở hướng dẫn đóng góp

    Bắt đầu từ đâu

    1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
    2. 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.
    3. Fork repository và làm thay đổi trên một nhánh.
    4. 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 chạy bản tái hiện tối thiểu trong test.py trên Linux và kiểm tra cách subprocess.communicate xử lý timeout=0 đối với một tiến trình đã kết thúc. Hoàn thành có nghĩa là trường hợp này không còn gây ra TimeoutExpired, đồng thời vẫn giữ nguyên hành vi timeout như mong đợi đối với các tiến trình chưa kết thúc.

    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
    operating-systems
    Loại issue
    Lỗi
    Độ khó
    3/5
    Thời gian dự kiến
    1-2 ngày
    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

    Nhận issue mới trong hộp thư của bạn

    Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.