Red Hat Bugzilla – Bug 1489858
s390x: Argument of wrong type is passed to fcntl() (big-endian error)
Last modified: 2018-04-11 04:32:03 EDT
While backporting the necessary kernel patches to get CRIU running on s390x (https://bugzilla.redhat.com/show_bug.cgi?id=1466682) I detected a problem in RHEL's python which is already fixed upstream: https://bugs.python.org/issue22821 It can be reproduced with: #!/usr/bin/env python2 import fcntl import tempfile import struct import errno F_OFD_SETLK = 37 try: with tempfile.TemporaryFile() as fd: flock = struct.pack('hhllhh', fcntl.F_RDLCK, 0, 0, 0, 0, 0) fcntl.fcntl(fd.fileno(), F_OFD_SETLK, flock) except IOError as e: if e.errno == errno.EINVAL: print "I/O error({0}): {1}".format(e.errno, e.strerror) print "OFD locks are not supported." exit(1) exit(0) On x86_64 I get an error (as expected) and on s390x I do not get the error, which leads to wrong results of the CRIU test suite. I am about to also test it on powerpc big-endian to see if it is reproducible on another big-endian platform.
Not reproducible on powerpc big-endian, only on s390x.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:0833
------- Comment From hannsj_uhl@de.ibm.com 2018-04-11 04:28 EDT------- .