Created attachment 1557161 [details] build.log from Koji python2-matplotlib doesn't pass %check on s390x. Logs attached.
Created attachment 1557162 [details] root.log from Koji
5 test failures: =================================== FAILURES =================================== _______________ test_save_animation_smoketest[pillow-movie.gif] ________________ [gw0] linux2 -- Python 2.7.16 /usr/bin/python2 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): 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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/tests/test_animation.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/animation.py:1200: in save writer.grab_frame(**savefig_kwargs) /usr/lib64/python2.7/contextlib.py:24: in __exit__ self.gen.next() ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/animation.py:241: in saving self.finish() ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/animation.py:612: in finish duration=int(1000 / self.fps)) /usr/lib64/python2.7/site-packages/PIL/Image.py:2007: in save save_handler(self, fp, filename) /usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.py:490: in _save_all _save(im, fp, filename, save_all=True) /usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.py:501: in _save if not save_all or not _write_multiple_frames(im, fp, palette): /usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.py:485: in _write_multiple_frames _write_frame_data(fp, im_frame, offset, frame_data['encoderinfo']) /usr/lib64/python2.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 0x3FF8FFF0320> fp = <closed file 'movie.gif', mode 'w+b' at 0x3ff8e011300> 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/python2.7/site-packages/PIL/ImageFile.py:515: SystemError ________________________________ test_jpeg_dpi _________________________________ [gw1] linux2 -- Python 2.7.16 /usr/bin/python2 @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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/tests/test_agg.py:241: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py:695: in savefig res = fig.savefig(*args, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/figure.py:2062: in savefig self.canvas.print_figure(fname, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/backend_bases.py:2263: in print_figure **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py:588: in print_jpg return background.save(filename_or_obj, format='jpeg', **options) /usr/lib64/python2.7/site-packages/PIL/Image.py:2007: in save save_handler(self, fp, filename) /usr/lib64/python2.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 0x3FF6FE77EB8> fp = <_io.BytesIO object at 0x3ff6f9d6fc0> 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/python2.7/site-packages/PIL/ImageFile.py:496: SystemError _________________________________ test_jpeg_2d _________________________________ [gw1] linux2 -- Python 2.7.16 /usr/bin/python2 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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/tests/test_image.py:501: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/__init__.py:1869: in inner return func(ax, *args, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/axes/_axes.py:5501: in imshow im.set_data(X) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <matplotlib.image.AxesImage object at 0x3ff6f7536a0> A = <PIL.Image.Image image mode=L size=10x10 at 0x3FF6FE427B8> def set_data(self, A): """ Set the image array. ACCEPTS: numpy/PIL Image A Note that this function does *not* update the normalization used. """ 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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/image.py:642: TypeError ____________________________ test_imread_pil_uint16 ____________________________ [gw0] linux2 -- Python 2.7.16 /usr/bin/python2 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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/tests/test_image.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py:2373: in imread return _imread(*args, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/image.py:1349: in imread im = pilread(fname) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/image.py:1328: in pilread return pil_to_array(image) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/image.py:1440: in pil_to_array raw = pilImage.tobytes('raw', pilImage.mode) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=64x64 at 0x3FF8F3737F0> encoder_name = 'raw', args = ('I;16',) e = <ImagingEncoder object at 0x3ff8fa52608>, 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/python2.7/site-packages/PIL/Image.py:756: MemoryError _______________________________ test_jpeg_alpha ________________________________ [gw0] linux2 -- Python 2.7.16 /usr/bin/python2 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/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/tests/test_image.py:517: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py:695: in savefig res = fig.savefig(*args, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/figure.py:2062: in savefig self.canvas.print_figure(fname, **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/backend_bases.py:2263: in print_figure **kwargs) ../../BUILDROOT/python2-matplotlib-2.2.4-2.fc31.s390x/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py:588: in print_jpg return background.save(filename_or_obj, format='jpeg', **options) /usr/lib64/python2.7/site-packages/PIL/Image.py:2007: in save save_handler(self, fp, filename) /usr/lib64/python2.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 0x3FF8DA8AE48> fp = <_io.BytesIO object at 0x3ff8f39b938> 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/python2.7/site-packages/PIL/ImageFile.py:496: SystemError