python / python/cpython

Race conditions in Tkinter with non-threaded Tcl

Open
#77,438 34 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

3.7 (EOL) 3.8 (EOL) topic-tkinter type-crash
Dominant language
Python
Stars
77.2k
Forks
36k
PR merge metrics
PR metrics pending

Description

BPO 33257
Nosy @terryjreedy, @roseman, @serhiy-storchaka, @native-api
PRs
  • python/cpython#6444
  • python/cpython#6972
  • python/cpython#6990
  • Files
  • TkinterCrash2-2.py: Py2 version, crashing
  • TkinterCrash3-2-2.py: Py3 version, working
  • TkinterHanders.py
  • TkinterHanders3.py
  • 0001-Build-non-threaded-debug-Tcl.zip: For testing only! Build master (win64) with nonthreaded debug Tcl
  • 0001-build-2.7-with-threaded-Tcl.patch: For testing only! Build 2.7 (win64) with threaded Tcl
  • test_threads_tk.py: reproduce hang when creating multiple Tk's
  • 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 2018-04-10.16:41:09.432>
    labels = ['3.8', '3.7', 'expert-tkinter', 'type-crash']
    title = 'Race conditions in Tkinter with non-threaded Tcl'
    updated_at = <Date 2018-10-27.23:10:44.251>
    user = 'https://github.com/native-api'
    

    bugs.python.org fields:

    activity = <Date 2018-10-27.23:10:44.251>
    actor = 'terry.reedy'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Tkinter']
    creation = <Date 2018-04-10.16:41:09.432>
    creator = 'Ivan.Pozdeev'
    dependencies = []
    files = ['47529', '47530', '47536', '47561', '47565', '47566', '47620']
    hgrepos = []
    issue_num = 33257
    keywords = ['patch']
    message_count = 29.0
    messages = ['315172', '315271', '315283', '315285', '315286', '315304', '315878', '315899', '316087', '316089', '316092', '316093', '316095', '316096', '316097', '316098', '316099', '316100', '316103', '316105', '316106', '316241', '316265', '316418', '316451', '316689', '316921', '317875', '328662']
    nosy_count = 5.0
    nosy_names = ['terry.reedy', 'markroseman', 'PythonInTheGrass', 'serhiy.storchaka', 'Ivan.Pozdeev']
    pr_nums = ['6444', '6972', '6990']
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = 'crash'
    url = 'https://bugs.python.org/issue33257'
    versions = ['Python 2.7', 'Python 3.6', 'Python 3.7', 'Python 3.8']
    

    Contributor guide

    Open the contributing guide

    First steps

    1. Read the whole issue, then the project's contributing guide.
    2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
    3. Fork the repository and make your change on a branch.
    4. Open a pull request that references the issue number.

    Research direction

    Start with the supplied reproducers TkinterCrash2-2.py, TkinterCrash3-2-2.py, and test_threads_tk.py, then read TkinterHanders.py and TkinterHanders3.py. Review existing pull requests 6444, 6972, and 6990 before making changes. The issue is in patch review, so completion requires resolving the reported races and validating the reproduction cases.

    Written by the indexing model from the issue text.

    Assessment

    Tech stack
    python
    Domain
    desktop
    Issue type
    Bug
    Difficulty
    5/5
    Estimated time
    Over a week
    Activity status
    Stale
    Clarity
    Needs clarification
    Newbie friendliness
    20/100

    Get new issues in your inbox

    A short digest of beginner-friendly GitHub issues.