Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1384606
Summary: | py3 test_os.ExtendedAttributeTests fails on XFS | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Dan Horák <dan> | ||||
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | rawhide | CC: | bkabrda, cstratak, esandeen, gansalmon, ichavero, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab, mhroncok, pviktori, rkuska, tomspur, torsava | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | s390x | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | kernel-4.8.3-300.fc25 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2016-10-22 12:50:39 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: | |||||||
Bug Blocks: | 467765 | ||||||
Attachments: |
|
Description
Dan Horák
2016-10-13 16:18:59 UTC
Hmm this is weird. An upstream patch [0] from 3.5.3 was backported to python3 in rawhide in order to fix a FTBFS with the rebased OpenSSL 1.1.0. (Basically to make the ssl and hashlib python modules OpenSSL 1.1.0 compatible) Latest release is python3-3.5.2-6.fc26 though, where I made some minor fixes related to that, I tried a scratch build but it still fails with the same error: [1] In rawhide however python 3.6 will be deployed soon(ish) so I tried to build the 3.6 beta 2, which fails with a different error so I guess it would be better to debug that one [2] Will try to find some time next week for it. [0] https://bugs.python.org/issue26470 [1] http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2373048 [2] http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2373050 I run few more tests by rebuilding the python3-3.5.2-5.fc26 source rpm on a F-24 based machines (ext4 and xfs root fs) using mock -r fedora-rawhide-s390x python3-3.5.2-5.fc26.src.rpm (all that is close how the s390 koji build environment looks) and the results are - ext4 passes with kernel 4.7.3-200.fc24.s390x - xfs passes with kernel 4.6.4-301.fc24.s390x fails with kernel 4.7.3-200.fc24.s390x Is it possible to prepare a standalone test case that could the XFS filesystem devels use to analyse the issue? The problem is rather in XFS in kernel than in python. few more results s390x xfs fails with kernel 4.8.1-1.fc25.s390x fails with kernel 4.8.0-0.rc7.git3.1.fc26.s390x (local rebuild on f26) ppc64 xfs passes with kernel 4.5.5-300.fc24.ppc64 fails with kernel 4.7.4-200.fc24.ppc64 => (my conclusion) something broke in XFS extended attributes on big endians (only?) between kernel 4.6 and 4.7 the Python code reproducing the failure is many = sorted("user.test{}".format(i) for i in range(100)) for thing in many: setxattr(fn, thing, b"x", **kwargs) self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many)) Switching to kernel and asking our XFS maintainer for his view. (In reply to Dan Horák from comment #3) > few more results > s390x xfs > fails with kernel 4.8.1-1.fc25.s390x > fails with kernel 4.8.0-0.rc7.git3.1.fc26.s390x (local rebuild > on f26) > > ppc64 xfs passes with kernel 4.5.5-300.fc24.ppc64 > fails with kernel 4.7.4-200.fc24.ppc64 > > => (my conclusion) something broke in XFS extended attributes on big endians > (only?) between kernel 4.6 and 4.7 got same failure with kernel 4.7.7-200.fc24.ppc64le -> shouldn't be endian related Created attachment 1211306 [details]
standalone test case
run with "python3 test.py"
(In reply to Dan Horák from comment #3) > > the Python code reproducing the failure is > > many = sorted("user.test{}".format(i) for i in range(100)) > for thing in many: > setxattr(fn, thing, b"x", **kwargs) > self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many)) when the number in range() is lowered from 100 to 22, the test passes, starting at 23 it fails Maybe it's worth reporting the issue at python's upstream issue tracker. (In reply to Charalampos Stratakis from comment #7) > Maybe it's worth reporting the issue at python's upstream issue tracker. I believe it's a kernel issue, so likely not worth to bother Python upstream with it. when run the test with value 23 in range() - see the "selinux" attribute there [sharkcz@ibm-p8-generic-02-fedora-le tmp]$ python3 t1 removing foo Traceback (most recent call last): File "t1", line 66, in <module> EATests.test_simple() File "t1", line 57, in test_simple os.listxattr) File "t1", line 53, in _check_xattrs self._check_xattrs_str(str, *args, **kwargs) File "t1", line 48, in _check_xattrs_str self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many)) File "/usr/lib64/python3.5/unittest/case.py", line 858, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python3.5/unittest/case.py", line 1110, in assertSetEqual self.fail(self._formatMessage(msg, standardMsg)) File "/usr/lib64/python3.5/unittest/case.py", line 703, in fail raise self.failureException(msg) AssertionError: Items in the first set but not the second: 'ecurity.selinux' Items in the second set but not the first: 'user.test11' 'user.test4' 'security.selinux' 'user.test13' 'user.test9' 'user.test12' 'user.test15' 'user.test2' 'user.test10' 'user.test1' 'user.test7' 'user.test18' 'user.test16' 'user.test5' 'user.test20' 'user.test3' 'user.test6' 'user.test8' 'user.test22' 'user.test17' 'user.test21' 'user.test19' 'user.test14' 'user.test0' I think this was regressed with 2a6fba6 "xfs: only return -errno or success from attr ->put_listent" in v4.7, and fixed with 791cc43 Make __xfs_xattr_put_listen preperly report errors. which will hit 4.9. Any chance you could retest with the latest rawhide kernel (i.e. https://kojipkgs.fedoraproject.org/packages/kernel/4.9.0/0.rc1.git0.2.fc26/ ?) We probably need to get that commit sent to -stable. thanks, -Eric You are right, it's fixed :-) [root@ibm-p8-generic-02-guest02 ~]# uname -a Linux ibm-p8-generic-02-guest02 4.9.0-0.rc1.git0.2.fc26.ppc64le #1 SMP Tue Oct 18 08:51:33 UTC 2016 ppc64le ppc64le ppc64le GNU/Linux [root@ibm-p8-generic-02-guest02 ~]# python3 test.py removing foo [root@ibm-p8-generic-02-guest02 ~]# Great, thank you for testing. I'll see if we can get this to -stable. -Eric (In reply to Eric Sandeen from comment #12) > Great, thank you for testing. I'll see if we can get this to -stable. > > -Eric I've pointed that commit out to the Fedora kernel team. They'll bring it into the 4.8.y Fedora release kernels until it hits stable. kernel-4.8.3-300.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-c8a0c7eece kernel-4.8.3-300.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report. |