Skip to content

Pillow and Tkinter produce Segmentation fault #7136

@eine

Description

@eine

I'm trying to test Tkinter and Pillow on MINGW64 but I get a Segmentation fault.

The following minimal example works and shows an empty window:

import tkinter
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

This one produces a segfault:

# tkinter_pillow.py

from tkinter import Tk, Frame, BOTH
from PIL import Image, ImageTk

class Example(Frame):

    def __init__(self):
        super().__init__()

        self.master.title("High Tatras")
        self.pack(fill=BOTH, expand=1)

        self.img = Image.open("test.jpg")
        self.tatras = ImageTk.PhotoImage(self.img)

root = Tk()
ex = Example()
root.mainloop()

It should show nothing, because it's incomplete, but it should not crash.

I tried the following example too: https://raw.githubusercontent.com/python-pillow/Pillow/3.0.x/Scripts/viewer.py. It also produces a Segmentation fault.

How to reproduce

I tried the following in a fresh https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.tar.xz:

# pacman -Syu
...
# pacman -S mingw-w64-x86_64-python-pip
...
# pacman -S mingw-w64-x86_64-python-pillow
...
# python3 tkinter_pillow.py
Segmentation fault

# python3 viewer.py test.jpg
Segmentation fault

# pacman -S mingw-w64-x86_64-python-pytest
...

#  git clone https://github.com/python-pillow/Pillow
...

# cd Pillow

# PYTHONPATH=$(pwd) python3 -m pytest Tests/test_imagetk.py
============================= test session starts =============================
platform win32 -- Python 3.8.6, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
pytest_report_header failed: pilinfo() got an unexpected keyword argument 'supported_formats'
rootdir: C:/Users/eine/Downloads/tkinter/Pillow, inifile: setup.cfg
collected 4 items

Tests/test_imagetk.py .Windows fatal exception: access violation

Current thread 0x00007714 (most recent call first):
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/PIL/ImageTk.py", line 203 in paste
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/PIL/ImageTk.py", line 121 in __init__
  File "C:/Users/eine/Downloads/tkinter/Pillow/Tests/test_imagetk.py", line 61 in test_photoimage
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/python.py", line 184 in pytest_pyfunc_call
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/python.py", line 1479 in runtest
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 135 in pytest_runtest_call
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 217 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 244 in from_call
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 216 in call_runtest_hook
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 186 in call_and_report
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 100 in runtestprotocol
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/runner.py", line 85 in pytest_runtest_protocol
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/main.py", line 272 in pytest_runtestloop
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/main.py", line 247 in _main
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/main.py", line 191 in wrap_session
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/main.py", line 240 in pytest_cmdline_main
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/_pytest/config/__init__.py", line 124 in main
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/site-packages/pytest/__main__.py", line 7 in <module>
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/runpy.py", line 87 in _run_code
  File "C:/Users/eine/Downloads/msys64/mingw64/lib/python3.8/runpy.py", line 194 in _run_module_as_main
Segmentation fault

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions