Bug 1701932
| Summary: | python2-matplotlib FTBFS on s390x | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> | ||||||
| Component: | python2-matplotlib | Assignee: | Mattias Ellert <mattias.ellert> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | rawhide | CC: | dan, hannsj_uhl, mattias.ellert | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | s390x | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | python2-matplotlib-2.2.4-3.fc31 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2019-06-03 15:27:26 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | 1706450 | ||||||||
| Bug Blocks: | 467765, 1700317, 1634979, 1690439, 1732841 | ||||||||
| Attachments: |
|
||||||||
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
|
Created attachment 1557161 [details] build.log from Koji python2-matplotlib doesn't pass %check on s390x. Logs attached.