Bug 1702273 - python-matplotlib FTBFS on s390x
Summary: python-matplotlib FTBFS on s390x
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-matplotlib
Version: rawhide
Hardware: s390x
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Thomas Spura
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1706450
Blocks: ZedoraTracker PYTHON38 F31FTBFS 1699123 1732841
TreeView+ depends on / blocked
 
Reported: 2019-04-23 11:51 UTC by Miro Hrončok
Modified: 2019-07-31 22:40 UTC (History)
10 users (show)

Fixed In Version: python-matplotlib-3.0.3-1.fc31
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-06-03 15:27:20 UTC


Attachments (Terms of Use)
build.log from Koji (2.39 MB, text/plain)
2019-04-23 11:51 UTC, Miro Hrončok
no flags Details
root.log from Koji (130.13 KB, text/plain)
2019-04-23 11:53 UTC, Miro Hrončok
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Bugzilla 1701932 None CLOSED python2-matplotlib FTBFS on s390x 2019-06-03 21:58:57 UTC

Internal Links: 1701932

Description Miro Hrončok 2019-04-23 11:51:46 UTC
Created attachment 1557589 [details]
build.log from Koji

python2-matplotlib doesn't pass %check on s390x.

Logs attached.

Comment 1 Miro Hrončok 2019-04-23 11:52:09 UTC
_______________ test_save_animation_smoketest[pillow-movie.gif] ________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
tmpdir = local('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_save_animation_smoketest_3')
writer = 'pillow', output = 'movie.gif'
    @pytest.mark.parametrize('writer, output', WRITER_OUTPUT)
    def test_save_animation_smoketest(tmpdir, writer, output):
        if writer == 'pillow':
            pytest.importorskip("PIL")
        try:
            # for ImageMagick the rcparams must be patched to account for
            # 'convert' being a built in MS tool, not the imagemagick
            # tool.
            writer._init_from_registry()
        except AttributeError:
            pass
        if not animation.writers.is_available(writer):
            pytest.skip("writer '%s' not available on this system" % writer)
        fig, ax = plt.subplots()
        line, = ax.plot([], [])
    
        ax.set_xlim(0, 10)
        ax.set_ylim(-1, 1)
    
        dpi = None
        codec = None
        if writer == 'ffmpeg':
            # Issue #8253
            fig.set_size_inches((10.85, 9.21))
            dpi = 100.
            codec = 'h264'
    
        def init():
            line.set_data([], [])
            return line,
    
        def animate(i):
            x = np.linspace(0, 10, 100)
            y = np.sin(x + i)
            line.set_data(x, y)
            return line,
    
        # Use temporary directory for the file-based writers, which produce a file
        # per frame with known names.
        with tmpdir.as_cwd():
            anim = animation.FuncAnimation(fig, animate, init_func=init, frames=5)
            try:
                anim.save(output, fps=30, writer=writer, bitrate=500, dpi=dpi,
>                         codec=codec)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_animation.py:177: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:1174: in save
    writer.grab_frame(**savefig_kwargs)
/usr/lib64/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:232: in saving
    self.finish()
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:583: in finish
    duration=int(1000 / self.fps))
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
    save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:490: in _save_all
    _save(im, fp, filename, save_all=True)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:501: in _save
    if not save_all or not _write_multiple_frames(im, fp, palette):
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:485: in _write_multiple_frames
    _write_frame_data(fp, im_frame, offset, frame_data['encoderinfo'])
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:774: in _write_frame_data
    RAWMODE[im_frame.mode])])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
im = <PIL.Image.Image image mode=P size=640x480 at 0x3FFABEE2518>
fp = <_io.BufferedRandom name='movie.gif'>
tile = [('gif', (0, 0, 640, 480), 0, 'P')], bufsize = 65536
    def _save(im, fp, tile, bufsize=0):
        """Helper to save image based on tile list
    
        :param im: Image object.
        :param fp: File object.
        :param tile: Tile list.
        :param bufsize: Optional buffer size
        """
    
        im.load()
        if not hasattr(im, "encoderconfig"):
            im.encoderconfig = ()
        tile.sort(key=_tilesort)
        # FIXME: make MAXBLOCK a configuration parameter
        # It would be great if we could have the encoder specify what it needs
        # But, it would need at least the image size in most cases. RawEncode is
        # a tricky case.
        bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4)  # see RawEncode.c
        if fp == sys.stdout:
            fp.flush()
            return
        try:
            fh = fp.fileno()
            fp.flush()
        except (AttributeError, io.UnsupportedOperation):
            # compress to Python file-compatible object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
                e.setimage(im.im, b)
                if e.pushes_fd:
                    e.setfd(fp)
                    l, s = e.encode_to_pyfd()
                else:
                    while True:
                        l, s, d = e.encode(bufsize)
                        fp.write(d)
                        if s:
                            break
                if s < 0:
                    raise IOError("encoder error %d when writing image file" % s)
                e.cleanup()
        else:
            # slight speedup: compress to real file object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
>               e.setimage(im.im, b)
E               SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:515: SystemError
________________________________ test_jpeg_dpi _________________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
    @pytest.mark.backend('Agg')
    def test_jpeg_dpi():
        Image = pytest.importorskip("PIL.Image")
        # Check that dpi is set correctly in jpg files.
        plt.plot([0, 1, 2], [0, 1, 0])
        buf = io.BytesIO()
>       plt.savefig(buf, format="jpg", dpi=200)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_agg.py:239: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:689: in savefig
    res = fig.savefig(*args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/figure.py:2094: in savefig
    self.canvas.print_figure(fname, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backend_bases.py:2075: in print_figure
    **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backends/backend_agg.py:578: in print_jpg
    return background.save(filename_or_obj, format='jpeg', **options)
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
    save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/JpegImagePlugin.py:765: in _save
    ImageFile._save(im, fp, [("jpeg", (0, 0)+im.size, 0, rawmode)], bufsize)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
im = <PIL.Image.Image image mode=RGB size=1600x1200 at 0x3FFA017EAC8>
fp = <_io.BytesIO object at 0x3ff9c0d4c50>
tile = [('jpeg', (0, 0, 1600, 1200), 0, 'RGB')], bufsize = 65536
    def _save(im, fp, tile, bufsize=0):
        """Helper to save image based on tile list
    
        :param im: Image object.
        :param fp: File object.
        :param tile: Tile list.
        :param bufsize: Optional buffer size
        """
    
        im.load()
        if not hasattr(im, "encoderconfig"):
            im.encoderconfig = ()
        tile.sort(key=_tilesort)
        # FIXME: make MAXBLOCK a configuration parameter
        # It would be great if we could have the encoder specify what it needs
        # But, it would need at least the image size in most cases. RawEncode is
        # a tricky case.
        bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4)  # see RawEncode.c
        if fp == sys.stdout:
            fp.flush()
            return
        try:
            fh = fp.fileno()
            fp.flush()
        except (AttributeError, io.UnsupportedOperation):
            # compress to Python file-compatible object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
>               e.setimage(im.im, b)
E               SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:496: SystemError
________________ test_save_animation_smoketest[pillow-output15] ________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
tmpdir = local('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_save_animation_smoketest_7')
writer = 'pillow', output = PosixPath('movie.gif')
    @pytest.mark.parametrize('writer, output', WRITER_OUTPUT)
    def test_save_animation_smoketest(tmpdir, writer, output):
        if writer == 'pillow':
            pytest.importorskip("PIL")
        try:
            # for ImageMagick the rcparams must be patched to account for
            # 'convert' being a built in MS tool, not the imagemagick
            # tool.
            writer._init_from_registry()
        except AttributeError:
            pass
        if not animation.writers.is_available(writer):
            pytest.skip("writer '%s' not available on this system" % writer)
        fig, ax = plt.subplots()
        line, = ax.plot([], [])
    
        ax.set_xlim(0, 10)
        ax.set_ylim(-1, 1)
    
        dpi = None
        codec = None
        if writer == 'ffmpeg':
            # Issue #8253
            fig.set_size_inches((10.85, 9.21))
            dpi = 100.
            codec = 'h264'
    
        def init():
            line.set_data([], [])
            return line,
    
        def animate(i):
            x = np.linspace(0, 10, 100)
            y = np.sin(x + i)
            line.set_data(x, y)
            return line,
    
        # Use temporary directory for the file-based writers, which produce a file
        # per frame with known names.
        with tmpdir.as_cwd():
            anim = animation.FuncAnimation(fig, animate, init_func=init, frames=5)
            try:
                anim.save(output, fps=30, writer=writer, bitrate=500, dpi=dpi,
>                         codec=codec)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_animation.py:177: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:1174: in save
    writer.grab_frame(**savefig_kwargs)
/usr/lib64/python3.7/contextlib.py:119: in __exit__
    next(self.gen)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:232: in saving
    self.finish()
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/animation.py:583: in finish
    duration=int(1000 / self.fps))
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
    save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:490: in _save_all
    _save(im, fp, filename, save_all=True)
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:501: in _save
    if not save_all or not _write_multiple_frames(im, fp, palette):
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:485: in _write_multiple_frames
    _write_frame_data(fp, im_frame, offset, frame_data['encoderinfo'])
/usr/lib64/python3.7/site-packages/PIL/GifImagePlugin.py:774: in _write_frame_data
    RAWMODE[im_frame.mode])])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
im = <PIL.Image.Image image mode=P size=640x480 at 0x3FF94AFF828>
fp = <_io.BufferedRandom name='movie.gif'>
tile = [('gif', (0, 0, 640, 480), 0, 'P')], bufsize = 65536
    def _save(im, fp, tile, bufsize=0):
        """Helper to save image based on tile list
    
        :param im: Image object.
        :param fp: File object.
        :param tile: Tile list.
        :param bufsize: Optional buffer size
        """
    
        im.load()
        if not hasattr(im, "encoderconfig"):
            im.encoderconfig = ()
        tile.sort(key=_tilesort)
        # FIXME: make MAXBLOCK a configuration parameter
        # It would be great if we could have the encoder specify what it needs
        # But, it would need at least the image size in most cases. RawEncode is
        # a tricky case.
        bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4)  # see RawEncode.c
        if fp == sys.stdout:
            fp.flush()
            return
        try:
            fh = fp.fileno()
            fp.flush()
        except (AttributeError, io.UnsupportedOperation):
            # compress to Python file-compatible object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
                e.setimage(im.im, b)
                if e.pushes_fd:
                    e.setfd(fp)
                    l, s = e.encode_to_pyfd()
                else:
                    while True:
                        l, s, d = e.encode(bufsize)
                        fp.write(d)
                        if s:
                            break
                if s < 0:
                    raise IOError("encoder error %d when writing image file" % s)
                e.cleanup()
        else:
            # slight speedup: compress to real file object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
>               e.setimage(im.im, b)
E               SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:515: SystemError
_____________________________ test_imshow_pil[pdf] _____________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
ext = 'pdf'
    @pytest.mark.parametrize("ext", extensions)
    def wrapper(ext):
        fig_test = plt.figure("test")
        fig_ref = plt.figure("reference")
>       func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
    'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
    return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
    return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
    raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FFAB781F98>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ffabb01a48>, bufsize = 65536, data = []
    def tobytes(self, encoder_name="raw", *args):
        """
        Return image as a bytes object.
    
        .. warning::
    
            This method returns the raw image data from the internal
            storage.  For compressed image data (e.g. PNG, JPEG) use
            :meth:`~.save`, with a BytesIO parameter for in-memory
            data.
    
        :param encoder_name: What encoder to use.  The default is to
                             use the standard "raw" encoder.
        :param args: Extra arguments to the encoder.
        :rtype: A bytes object.
        """
    
        # may pass tuple instead of argument list
        if len(args) == 1 and isinstance(args[0], tuple):
            args = args[0]
    
        if encoder_name == "raw" and args == ():
            args = self.mode
    
        self.load()
    
        # unpack data
        e = _getencoder(self.mode, encoder_name, args)
        e.setimage(self.im)
    
        bufsize = max(65536, self.size[0] * 4)  # see RawEncode.c
    
        data = []
        while True:
>           l, s, d = e.encode(bufsize)
E           MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
____________________________ test_imread_pil_uint16 ____________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
    def test_imread_pil_uint16():
        pytest.importorskip("PIL")
        img = plt.imread(os.path.join(os.path.dirname(__file__),
>                        'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
    return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
    return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
    raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FFAB4DFB70>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ffabb019c0>, bufsize = 65536, data = []
    def tobytes(self, encoder_name="raw", *args):
        """
        Return image as a bytes object.
    
        .. warning::
    
            This method returns the raw image data from the internal
            storage.  For compressed image data (e.g. PNG, JPEG) use
            :meth:`~.save`, with a BytesIO parameter for in-memory
            data.
    
        :param encoder_name: What encoder to use.  The default is to
                             use the standard "raw" encoder.
        :param args: Extra arguments to the encoder.
        :rtype: A bytes object.
        """
    
        # may pass tuple instead of argument list
        if len(args) == 1 and isinstance(args[0], tuple):
            args = args[0]
    
        if encoder_name == "raw" and args == ():
            args = self.mode
    
        self.load()
    
        # unpack data
        e = _getencoder(self.mode, encoder_name, args)
        e.setimage(self.im)
    
        bufsize = max(65536, self.size[0] * 4)  # see RawEncode.c
    
        data = []
        while True:
>           l, s, d = e.encode(bufsize)
E           MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_____________________________ test_imshow_pil[png] _____________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
ext = 'png'
    @pytest.mark.parametrize("ext", extensions)
    def wrapper(ext):
        fig_test = plt.figure("test")
        fig_ref = plt.figure("reference")
>       func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
    'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
    return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
    return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
    raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF949DDA20>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff94d3b690>, bufsize = 65536, data = []
    def tobytes(self, encoder_name="raw", *args):
        """
        Return image as a bytes object.
    
        .. warning::
    
            This method returns the raw image data from the internal
            storage.  For compressed image data (e.g. PNG, JPEG) use
            :meth:`~.save`, with a BytesIO parameter for in-memory
            data.
    
        :param encoder_name: What encoder to use.  The default is to
                             use the standard "raw" encoder.
        :param args: Extra arguments to the encoder.
        :rtype: A bytes object.
        """
    
        # may pass tuple instead of argument list
        if len(args) == 1 and isinstance(args[0], tuple):
            args = args[0]
    
        if encoder_name == "raw" and args == ():
            args = self.mode
    
        self.load()
    
        # unpack data
        e = _getencoder(self.mode, encoder_name, args)
        e.setimage(self.im)
    
        bufsize = max(65536, self.size[0] * 4)  # see RawEncode.c
    
        data = []
        while True:
>           l, s, d = e.encode(bufsize)
E           MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_______________________________ test_jpeg_alpha ________________________________
[gw0] linux -- Python 3.7.3 /usr/bin/python3
    def test_jpeg_alpha():
        Image = pytest.importorskip('PIL.Image')
    
        plt.figure(figsize=(1, 1), dpi=300)
        # Create an image that is all black, with a gradient from 0-1 in
        # the alpha channel from left to right.
        im = np.zeros((300, 300, 4), dtype=float)
        im[..., 3] = np.linspace(0.0, 1.0, 300)
    
        plt.figimage(im)
    
        buff = io.BytesIO()
        with rc_context({'savefig.facecolor': 'red'}):
>           plt.savefig(buff, transparent=True, format='jpg', dpi=300)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:528: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:689: in savefig
    res = fig.savefig(*args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/figure.py:2094: in savefig
    self.canvas.print_figure(fname, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backend_bases.py:2075: in print_figure
    **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/backends/backend_agg.py:578: in print_jpg
    return background.save(filename_or_obj, format='jpeg', **options)
/usr/lib64/python3.7/site-packages/PIL/Image.py:2007: in save
    save_handler(self, fp, filename)
/usr/lib64/python3.7/site-packages/PIL/JpegImagePlugin.py:765: in _save
    ImageFile._save(im, fp, [("jpeg", (0, 0)+im.size, 0, rawmode)], bufsize)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
im = <PIL.Image.Image image mode=RGB size=300x300 at 0x3FFAAF10710>
fp = <_io.BytesIO object at 0x3ffabba8f68>
tile = [('jpeg', (0, 0, 300, 300), 0, 'RGB')], bufsize = 65536
    def _save(im, fp, tile, bufsize=0):
        """Helper to save image based on tile list
    
        :param im: Image object.
        :param fp: File object.
        :param tile: Tile list.
        :param bufsize: Optional buffer size
        """
    
        im.load()
        if not hasattr(im, "encoderconfig"):
            im.encoderconfig = ()
        tile.sort(key=_tilesort)
        # FIXME: make MAXBLOCK a configuration parameter
        # It would be great if we could have the encoder specify what it needs
        # But, it would need at least the image size in most cases. RawEncode is
        # a tricky case.
        bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4)  # see RawEncode.c
        if fp == sys.stdout:
            fp.flush()
            return
        try:
            fh = fp.fileno()
            fp.flush()
        except (AttributeError, io.UnsupportedOperation):
            # compress to Python file-compatible object
            for e, b, o, a in tile:
                e = Image._getencoder(im.mode, e, a, im.encoderconfig)
                if o > 0:
                    fp.seek(o)
>               e.setimage(im.im, b)
E               SystemError: tile cannot extend outside image
/usr/lib64/python3.7/site-packages/PIL/ImageFile.py:496: SystemError
_____________________________ test_imshow_pil[svg] _____________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
ext = 'svg'
    @pytest.mark.parametrize("ext", extensions)
    def wrapper(ext):
        fig_test = plt.figure("test")
        fig_ref = plt.figure("reference")
>       func(fig_test, fig_ref)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/testing/decorators.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:111: in test_imshow_pil
    'baseline_images', 'test_image', 'uint16.tif'))
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
    return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
    return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
    raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF9AE3D7F0>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff9afd8a48>, bufsize = 65536, data = []
    def tobytes(self, encoder_name="raw", *args):
        """
        Return image as a bytes object.
    
        .. warning::
    
            This method returns the raw image data from the internal
            storage.  For compressed image data (e.g. PNG, JPEG) use
            :meth:`~.save`, with a BytesIO parameter for in-memory
            data.
    
        :param encoder_name: What encoder to use.  The default is to
                             use the standard "raw" encoder.
        :param args: Extra arguments to the encoder.
        :rtype: A bytes object.
        """
    
        # may pass tuple instead of argument list
        if len(args) == 1 and isinstance(args[0], tuple):
            args = args[0]
    
        if encoder_name == "raw" and args == ():
            args = self.mode
    
        self.load()
    
        # unpack data
        e = _getencoder(self.mode, encoder_name, args)
        e.setimage(self.im)
    
        bufsize = max(65536, self.size[0] * 4)  # see RawEncode.c
    
        data = []
        while True:
>           l, s, d = e.encode(bufsize)
E           MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
______________________________ test_imread_fspath ______________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
    @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires Python 3.6+")
    def test_imread_fspath():
        pytest.importorskip("PIL")
        from pathlib import Path
        img = plt.imread(
>           Path(__file__).parent / 'baseline_images/test_image/uint16.tif')
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:129: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/pyplot.py:2152: in imread
    return matplotlib.image.imread(fname, format)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1352: in imread
    return pil_to_array(image)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:1450: in pil_to_array
    raw = pilImage.tobytes('raw', pilImage.mode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF9ADD7080>
encoder_name = 'raw', args = ('I;16',)
e = <ImagingEncoder object at 0x3ff9afd8c68>, bufsize = 65536, data = []
    def tobytes(self, encoder_name="raw", *args):
        """
        Return image as a bytes object.
    
        .. warning::
    
            This method returns the raw image data from the internal
            storage.  For compressed image data (e.g. PNG, JPEG) use
            :meth:`~.save`, with a BytesIO parameter for in-memory
            data.
    
        :param encoder_name: What encoder to use.  The default is to
                             use the standard "raw" encoder.
        :param args: Extra arguments to the encoder.
        :rtype: A bytes object.
        """
    
        # may pass tuple instead of argument list
        if len(args) == 1 and isinstance(args[0], tuple):
            args = args[0]
    
        if encoder_name == "raw" and args == ():
            args = self.mode
    
        self.load()
    
        # unpack data
        e = _getencoder(self.mode, encoder_name, args)
        e.setimage(self.im)
    
        bufsize = max(65536, self.size[0] * 4)  # see RawEncode.c
    
        data = []
        while True:
>           l, s, d = e.encode(bufsize)
E           MemoryError
/usr/lib64/python3.7/site-packages/PIL/Image.py:756: MemoryError
_________________________________ test_jpeg_2d _________________________________
[gw1] linux -- Python 3.7.3 /usr/bin/python3
    def test_jpeg_2d():
        Image = pytest.importorskip('PIL.Image')
        # smoke test that mode-L pillow images work.
        imd = np.ones((10, 10), dtype='uint8')
        for i in range(10):
            imd[i, :] = np.linspace(0.0, 1.0, 10) * 255
        im = Image.new('L', (10, 10))
        im.putdata(imd.flatten())
        fig, ax = plt.subplots()
>       ax.imshow(im)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/tests/test_image.py:512: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/__init__.py:1798: in inner
    return func(ax, *args, **kwargs)
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/axes/_axes.py:5494: in imshow
    im.set_data(X)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <matplotlib.image.AxesImage object at 0x3ff94e81cf8>
A = <PIL.Image.Image image mode=L size=10x10 at 0x3FFA02640B8>
    def set_data(self, A):
        """
        Set the image array.
    
        Note that this function does *not* update the normalization used.
    
        Parameters
        ----------
        A : array-like
        """
        self._A = cbook.safe_masked_invalid(A, copy=True)
    
        if (self._A.dtype != np.uint8 and
                not np.can_cast(self._A.dtype, float, "same_kind")):
>           raise TypeError("Image data cannot be converted to float")
E           TypeError: Image data cannot be converted to float
../../BUILDROOT/python-matplotlib-3.0.3-1.fc31.s390x/usr/lib64/python3.7/site-packages/matplotlib/image.py:634: TypeError

Comment 2 Miro Hrončok 2019-04-23 11:53:27 UTC
Created attachment 1557590 [details]
root.log from Koji

Comment 3 Miro Hrončok 2019-04-23 11:54:13 UTC
Note: This is after https://src.fedoraproject.org/rpms/python-matplotlib/pull-request/17 is applied to make the test run.

Comment 4 Miro Hrončok 2019-05-30 16:59:00 UTC
Will skip the tests on s390x when the Python 3.8 rebuild happens if bz1706450 is not fixed yet.


Note You need to log in before you can comment on or make changes to this bug.