Created on 2017-07-05 12:18 by vstinner, last changed 2022-04-11 14:58 by admin. This issue is now closed.
http://buildbot.python.org/all/builders/AMD64%20Windows8%203.5/builds/323/steps/test/logs/stdio ====================================================================== ERROR: test_use (tkinter.test.test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\3.5.bolen-windows8\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 95, in test_use widget2 = self.create(use=wid) File "D:\buildarea\3.5.bolen-windows8\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 70, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\3.5.bolen-windows8\build\lib\tkinter\__init__.py", line 2191, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\3.5.bolen-windows8\build\lib\tkinter\__init__.py", line 2148, in __init__ (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: integer value too large to represent
This bug looks similar to issue25263.
The compile step mentions Tk version 8.6.4.2: "tk-8.6.4.2 already exists, skipping." http://buildbot.python.org/all/builders/AMD64%20Windows8%203.5/builds/323/steps/compile/logs/stdio
It seems like the test never fails on 3.6, while 3.6 contains the fix b9d672491d5082c541bf267eb7bb99fdc6529324. Let's try to backport this change to 3.5 and 2.7 branches.
See also bpo-16840.
Thank you for backporting the fix. Seems I just forgot about this.
Serhiy Storchaka added the comment: > Thank you for backporting the fix. Seems I just forgot about this. The bug wasn't notice before since test_tk fails once, but then pass when run again... It fails randomly. But I noticed a warning on a build, and so saw the bug. More stable buildbots should help to catch more random bugs.
New changeset c48a000c74b48586742c4b7eb42bba93f15953a9 by Victor Stinner in branch '3.5': [3.5] bpo-30855: Trying to fix test_use on Windows. (#2585) https://github.com/python/cpython/commit/c48a000c74b48586742c4b7eb42bba93f15953a9
New changeset f6d6480b93eca6f353784579108957108750c004 by Victor Stinner in branch '2.7': [2.7] bpo-30855: Trying to fix test_use on Windows. (#2586) https://github.com/python/cpython/commit/f6d6480b93eca6f353784579108957108750c004
I backported fixes to 2.7 and 3.5 branches. The test fails randomly, so I close the issue and hope that it doesn't come back. If it comes back on 3.5, we should now get the identifier which caused the failure. I will reopen the issue if the bug occurs again.
The test failed on "AMD64 Windows8.1 Refleaks 2.7" buildbot: http://buildbot.python.org/all/builders/AMD64%20Windows8.1%20Refleaks%202.7/builds/60/steps/test/logs/stdio test_padx (test_tkinter.test_widgets.ToplevelTest) ... ok test_pady (test_tkinter.test_widgets.ToplevelTest) ... ok test_relief (test_tkinter.test_widgets.ToplevelTest) ... ok test_screen (test_tkinter.test_widgets.ToplevelTest) ... skipped 'No $DISPLAY set.' test_takefocus (test_tkinter.test_widgets.ToplevelTest) ... ok test_use (test_tkinter.test_widgets.ToplevelTest) ... ERROR test_visual (test_tkinter.test_widgets.ToplevelTest) ... ok test_width (test_tkinter.test_widgets.ToplevelTest) ... test test_tk failed -- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 92, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: expected integer but got "0xffffffff92b20298L" ok ====================================================================== ERROR: test_use (test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 92, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: expected integer but got "0xffffffff92b20298L"
Oh, the test also failed on Python 3.5 (on "AMD64 Windows8.1 Refleaks 3.5" buildbot): http://buildbot.python.org/all/builders/AMD64%20Windows8.1%20Refleaks%203.5/builds/62/steps/test/logs/stdio ====================================================================== ERROR: test_use (tkinter.test.test_tkinter.test_widgets.ToplevelTest) (wid='0xffffffff87a60298') ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\3.5.ware-win81-release.refleak\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 96, in test_use widget2 = self.create(use=wid) File "D:\buildarea\3.5.ware-win81-release.refleak\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 70, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\3.5.ware-win81-release.refleak\build\lib\tkinter\__init__.py", line 2190, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\3.5.ware-win81-release.refleak\build\lib\tkinter\__init__.py", line 2147, in __init__ (widgetName, self._w) + extra + self._options(cnf)) _tkinter.TclError: integer value too large to represent
Change the Python version to 2.7 only, since Python 3.5 doesn't accept bug fixes anymore (only security fixes).
I didn't see this failure since one month on the 2.7 buildbots. While I fear that the bug still exists, I close it to clean up my list of open issues. I will reopen the issue if the bug strikes back!
Too bad, the bug is not dead: http://buildbot.python.org/all/#/builders/45/builds/14 test_use (test_tkinter.test_widgets.ToplevelTest) ... ERROR test_visual (test_tkinter.test_widgets.ToplevelTest) ... ok test test_tk failed -- Traceback (most recent call last): File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 92, in test_use widget2 = self.create(use=wid) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: expected integer but got "0x8e5c00d6L" test_width (test_tkinter.test_widgets.ToplevelTest) ... ok ====================================================================== ERROR: test_use (test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 92, in test_use widget2 = self.create(use=wid) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "d:\cygwin\home\db3l\buildarea\2.7.bolen-windows\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: expected integer but got "0x8e5c00d6L"
In Python 2 hex() adds the 'L' suffix for longs.
New changeset 7c622be4f2e86c1999baba4f64671a5987d43d73 by Serhiy Storchaka in branch '2.7': bpo-30855: Fix winfo_id related Tkinter test on Windows. (#4121) https://github.com/python/cpython/commit/7c622be4f2e86c1999baba4f64671a5987d43d73
Oh thank you Serhiy for the fix, this random bug was annoying!
Hum, test_use() still fails (commit fbdd3eeba3e526e162f2eb54d224cf36ed8cfea1) on AMD64 Windows8.1 Refleaks 2.7. I reopen the issue. http://buildbot.python.org/all/#/builders/33/builds/21 ====================================================================== ERROR: test_use (test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 93, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: integer value too large to represent
> Hum, test_use() still fails (commit fbdd3eeba3e526e162f2eb54d224cf36ed8cfea1) on AMD64 Windows8.1 Refleaks 2.7. I reopen the issue. I'm not 100% sure that this build really tested the commit fbdd3eeba3e526e162f2eb54d224cf36ed8cfea1. We had an issue on the buildbot, the 2.7 builder was disabled.
Same buildbot, same bug: AMD64 Windows8.1 Refleaks 2.7 http://buildbot.python.org/all/#/builders/33/builds/26 ====================================================================== ERROR: test_use (test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 93, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release.refleak\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: integer value too large to represent
Ah, this is Cygwin! This is a Tk bug (https://core.tcl.tk/tk/tktview?name=5ee8af61e5ef8e233158a43459624f4ecf58a6fe). It was fixed, but not completely. The fix doesn't work on Cygwin.
> Ah, this is Cygwin! Hmm, no; Cygwin isn't installed on ware-win81-release. When was the fix made? 2.7 on Windows currently uses 8.5.15, we can bump it up to latest 8.5 if that will help.
The fix was made 2015-11-09. The tag core-8-5-15 was created 2013-09-16. I'm not well experienced with fossil and thought that 8.5.15 contains this fix, but now I see that this is not true. Yes, updating Tcl/Tk can help.
If you'd like to do that update, there are some instructions at https://github.com/python/cpython-source-deps. You can get AppVeyor to use dependencies from your fork of `cpython-source-deps` by adjusting PCbuild/get_externals.bat:32 to point to your username temporarily. If you don't want to mess with it, I'll get to it sooner or later :)
New changeset be1faabeef0821f188a28dd7cc6b744b89e85e94 by Zachary Ware in branch '2.7': bpo-30855: Bump Tcl/Tk to 8.5.19 on Windows (GH-4550) https://github.com/python/cpython/commit/be1faabeef0821f188a28dd7cc6b744b89e85e94
Cool, thanks Zach!
Bad news: the problem is not gone. Fail at commit 180372c08a25332429f6175d6aa036c1ec643ca3 (the commit after Zach's commit be1faabeef0821f188a28dd7cc6b744b89e85e94 in the Python 2.7 branch): http://buildbot.python.org/all/#/builders/70/builds/28 test_use (test_tkinter.test_widgets.ToplevelTest) ... ERROR test_visual (test_tkinter.test_widgets.ToplevelTest) ... ok test test_tk failed -- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 93, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: integer value too large to represent test_width (test_tkinter.test_widgets.ToplevelTest) ... ok ====================================================================== ERROR: test_use (test_tkinter.test_widgets.ToplevelTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 93, in test_use widget2 = self.create(use=wid) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\test\test_tkinter\test_widgets.py", line 67, in create return tkinter.Toplevel(self.root, **kwargs) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\Tkinter.py", line 2138, in __init__ BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra) File "D:\buildarea\2.7.ware-win81-release\build\lib\lib-tk\Tkinter.py", line 2095, in __init__ (widgetName, self._w) + extra + self._options(cnf)) TclError: integer value too large to represent
It still uses Tcl/Tk 8.5.15.
Serhiy: "It still uses Tcl/Tk 8.5.15." pythoninfo says: --- tkinter.TCL_VERSION: 8.5 tkinter.TK_VERSION: 8.5 tkinter.info_patchlevel: 8.5.15 --- The compilation says: --- Fetching external libraries... (...) tcl-8.5.19.0 already exists, skipping. tk-8.5.19.0 already exists, skipping. tix-8.4.3.5 already exists, skipping. (...) Project "D:\buildarea\2.7.ware-win81-release\build\PCbuild\_tkinter.vcxproj" (24) is building "D:\buildarea\2.7.ware-win81-release\build\PCbuild\tcl.vcxproj" (25) on node 1 (default targets). (...) cd /D "D:\buildarea\2.7.ware-win81-release\build\externals\tcl-8.5.19.0\win" nmake -f makefile.vc MACHINE=AMD64 OPTS= INSTALLDIR="D:\buildarea\2.7.ware-win81-release\build\externals\tcltk64" INSTALL_DIR="D:\buildarea\2.7.ware-win81-release\build\externals\tcltk64" core shell dlls nmake -f makefile.vc MACHINE=AMD64 OPTS= INSTALLDIR="D:\buildarea\2.7.ware-win81-release\build\externals\tcltk64" INSTALL_DIR="D:\buildarea\2.7.ware-win81-release\build\externals\tcltk64" ---
I manually cleared `externals\tcltk64` on that bot some time ago, and it appears to be happy now.
Thank you Zachary! Can this issue be closed now?
I think so :)
Awesome, thanks!
stage: patch review -> resolved
nosy:
+ terry.reedy
messages:
+ msg304968
resolution: out of date -> (no value)
stage: resolved