New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2.7] test_ttk_guionly hangs at self.tk.call('update') on AMD64 Windows8.1 Refleaks 2.7 #75251
Comments
Builds:
Example: ... |
I interrupted the build 61 (it was running since 58 hours). ... |
The build 56 was also interrupted, it was running for 85 hours. |
The build 43 was also interrupted (it was running for 10 hours). Summary on builds 42-61, builds interrupted because of test_ttk_guionly: 43, 52, 55, 56, 61. Note: build 53 also failed, but for a different unknown reason. |
5 fails/20 builds: a failure rate of 25% (1/4) :-( |
I'm trying to reproduce the bug using the following command run in a Command Prompt: PCbuild\amd64\python_d.exe -m test -r -u all -R 3:3 -F -v --timeout=30 test_ttk_guionly Note: I'm using #3019 to get --timeout feature. Once (when I wasn't using --timeout=30), I saw test_ttk.test_widgets.TreeviewTest.test_tag_bind() stuck! But it only saw this bug twice in 1 hour of intensive tests, and so I'm not sure that it exists. Since I unable to easily reproduce the bug, it's hard to collect more information about the program state when the bug occurs. |
Ah! I captured the traceback of a first bug using the command: PCbuild\amd64\python_d.exe -m test -R 3:3 -u all -v --timeout=30 -r -F test_ttk_guionly Output: (...) # ThreadID: 2172 *** STACKTRACE - END *** |
Another bug, truncated traceback since the top was the same: (...) |
I created bpo-31135: "[2.7] test_ttk_guionly doesn't destroy all widgets on Python 2.7". |
Calling "self.tk.call('update')" runs the Tcl event loop: Interesting but very old (2001) article: "Update considered harmful" |
The Tcl event loop is recursive: http://wiki.tcl.tk/1527 |
Yesterday, I ran test_ttk_guionly during 3 hours on Windows with Python 2.7 compiled in debug mode. I saw between 4 and 7 hangs. I'm not sure about the exact number since sometimes the test unblocked when I just moved my mouse or clicked on my Command Prompt window.... At this point, I'm only sure that the following tests blocked:
bpo-31135 fixes LabeledScale.destroy(), so it may be related. |
Another hang: test_ttk\test_extensions.py:335: LabeledScaleTest.test2_variable_change(). Traceback: (...) I'm now using this batch script: :fail |
I interrupted http://buildbot.python.org/all/builders/AMD64%20Windows8.1%20Refleaks%202.7/builds/63/ which was running since 17 hours... ("running: test_ttk_guionly (32770 sec)") |
Too bad, test_resize() failed again while testing commit 56e162a :-( So this fix was not enough. |
I am not sure anymore about this statement. I had a bug in my watchdog code, that I fixed after this failure. I ran again the test during 3 hours and it didn't fail. I reverted all my local changes, I rebuild Python 2.7 in debug mode to get a fresh python_d.exe, I removed all __pycache__, and then I ran again the test during 1 hour: no fail. I ran 4 instances of the test in parallel during 1 hour: no fail. Hum, it *seems* like the bug was fixed. Since it's a race condition, it's not possible to say that it's really fixed. But my test results show that the bug is very likely to be fixed, so I close the bug. I will watch AMD64 Windows8.1 Refleaks 2.7 buildbot slave next days to check if the bug occurs again. |
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:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: