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 - py3 test_os.ExtendedAttributeTests fails on XFS
Summary: py3 test_os.ExtendedAttributeTests fails on XFS
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: s390x
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ZedoraTracker
TreeView+ depends on / blocked
 
Reported: 2016-10-13 16:18 UTC by Dan Horák
Modified: 2016-10-22 12:50 UTC (History)
15 users (show)

Fixed In Version: kernel-4.8.3-300.fc25
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-10-22 12:50:39 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
standalone test case (2.73 KB, text/plain)
2016-10-17 10:54 UTC, Dan Horák
no flags Details

Description Dan Horák 2016-10-13 16:18:59 UTC
test_os started to fail with the latest python3 build on s390x, the difference to previous (successful) build might be the builders are now F-24 based, the difference to primary builders is that we use XFS for root fs

from build.log
...
[223/397] test_os
test_blocking (test.test_os.BlockingTests) ... ok
test_walk_bad_dir (test.test_os.BytesWalkTests) ... ok
test_walk_bottom_up (test.test_os.BytesWalkTests) ... ok
test_walk_prune (test.test_os.BytesWalkTests) ... ok
test_walk_symlink (test.test_os.BytesWalkTests) ... ok
test_walk_topdown (test.test_os.BytesWalkTests) ... ok
test_cpu_count (test.test_os.CPUCountTests) ... ok
test_chown (test.test_os.ChownFileTests) ... skipped 'test needs more than one group'
test_chown_uid_gid_arguments_must_be_index (test.test_os.ChownFileTests) ... ok
test_chown_with_root (test.test_os.ChownFileTests) ... skipped 'test needs root privilege and more than one user'
test_chown_without_permission (test.test_os.ChownFileTests) ... ok
test_devnull (test.test_os.DevNullTests) ... ok
test_bad_fd (test.test_os.DeviceEncodingTests) ... ok
test_device_encoding (test.test_os.DeviceEncodingTests) ... skipped 'test requires a tty and either Windows or nl_langinfo(CODESET)'
test___repr__ (test.test_os.EnvironTests)
Check that the repr() of os.environ looks like environ({...}). ... ok
test_bool (test.test_os.EnvironTests) ... ok
test_constructor (test.test_os.EnvironTests) ... ok
test_environb (test.test_os.EnvironTests) ... skipped 'U+20AC character is not encodable to ascii'
test_get (test.test_os.EnvironTests) ... ok
test_get_exec_path (test.test_os.EnvironTests) ... ok
test_getitem (test.test_os.EnvironTests) ... ok
test_items (test.test_os.EnvironTests) ... ok
test_key_type (test.test_os.EnvironTests) ... ok
test_keys (test.test_os.EnvironTests) ... ok
test_keyvalue_types (test.test_os.EnvironTests) ... ok
test_len (test.test_os.EnvironTests) ... ok
test_os_popen_iter (test.test_os.EnvironTests) ... ok
test_pop (test.test_os.EnvironTests) ... ok
test_popitem (test.test_os.EnvironTests) ... ok
test_read (test.test_os.EnvironTests) ... ok
test_setdefault (test.test_os.EnvironTests) ... ok
test_unset_error (test.test_os.EnvironTests) ... ok
test_update (test.test_os.EnvironTests) ... ok
test_update2 (test.test_os.EnvironTests) ... ok
test_values (test.test_os.EnvironTests) ... ok
test_write (test.test_os.EnvironTests) ... ok
test_execvpe_with_bad_arglist (test.test_os.ExecTests) ... ok
test_execvpe_with_bad_program (test.test_os.ExecTests) ... ok
test_internal_execvpe_str (test.test_os.ExecTests) ... ok
test_os_all (test.test_os.ExportsTests) ... ok
test_fds (test.test_os.ExtendedAttributeTests) ... FAIL
test_lpath (test.test_os.ExtendedAttributeTests) ... FAIL
test_simple (test.test_os.ExtendedAttributeTests) ... FAIL
test_dup (test.test_os.FDInheritanceTests) ... ok
test_dup2 (test.test_os.FDInheritanceTests) ... ok
test_get_inheritable_cloexec (test.test_os.FDInheritanceTests) ... ok
test_get_set_inheritable (test.test_os.FDInheritanceTests) ... ok
test_open (test.test_os.FDInheritanceTests) ... ok
test_openpty (test.test_os.FDInheritanceTests) ... ok
test_pipe (test.test_os.FDInheritanceTests) ... ok
test_set_inheritable_cloexec (test.test_os.FDInheritanceTests) ... ok
test_identity (test.test_os.FSEncodingTests) ... ok
test_nop (test.test_os.FSEncodingTests) ... ok
test_access (test.test_os.FileTests) ... ok
test_closerange (test.test_os.FileTests) ... skipped "couldn't allocate two consecutive fds"
test_fdopen (test.test_os.FileTests) ... ok
test_large_read (test.test_os.FileTests) ... skipped 'not enough memory: 2.0G minimum needed'
test_open_keywords (test.test_os.FileTests) ... ok
test_read (test.test_os.FileTests) ... ok
test_rename (test.test_os.FileTests) ... ok
test_replace (test.test_os.FileTests) ... ok
test_symlink_keywords (test.test_os.FileTests) ... ok
test_write (test.test_os.FileTests) ... ok
test_write_windows_console (test.test_os.FileTests) ... skipped 'test specific to the Windows console'
test_compare_to_walk (test.test_os.FwalkTests) ... ok
test_dir_fd (test.test_os.FwalkTests) ... ok
test_fd_leak (test.test_os.FwalkTests) ... ok
test_walk_bad_dir (test.test_os.FwalkTests) ... ok
test_walk_bottom_up (test.test_os.FwalkTests) ... ok
test_walk_prune (test.test_os.FwalkTests) ... ok
test_walk_symlink (test.test_os.FwalkTests) ... ok
test_walk_topdown (test.test_os.FwalkTests) ... ok
test_yields_correct_dir_fd (test.test_os.FwalkTests) ... ok
test_link (test.test_os.LinkTests) ... ok
test_link_bytes (test.test_os.LinkTests) ... ok
test_unicode_name (test.test_os.LinkTests) ... skipped 'Unable to encode for this platform.'
test_getlogin (test.test_os.LoginTests) ... skipped 'Skip due to platform/environment differences on *NIX buildbots'
test_exist_ok_existing_directory (test.test_os.MakedirTests) ... ok
test_exist_ok_existing_regular_file (test.test_os.MakedirTests) ... ok
test_exist_ok_s_isgid_directory (test.test_os.MakedirTests) ... ok
test_makedir (test.test_os.MakedirTests) ... ok
test_directory_link_nonlocal (test.test_os.NonLocalSymlinkTests) ... ok
test_oserror_filename (test.test_os.OSErrorTests) ... ok
test_listdir (test.test_os.Pep383Tests) ... ok
test_open (test.test_os.Pep383Tests) ... ok
test_stat (test.test_os.Pep383Tests) ... ok
test_statvfs (test.test_os.Pep383Tests) ... ok
test_getppid (test.test_os.PidTests) ... ok
test_waitpid (test.test_os.PidTests) ... ok
test_setegid (test.test_os.PosixUidGidTests) ... ok
test_seteuid (test.test_os.PosixUidGidTests) ... ok
test_setgid (test.test_os.PosixUidGidTests) ... ok
test_setregid (test.test_os.PosixUidGidTests) ... ok
test_setregid_neg1 (test.test_os.PosixUidGidTests) ... ok
test_setreuid (test.test_os.PosixUidGidTests) ... ok
test_setreuid_neg1 (test.test_os.PosixUidGidTests) ... ok
test_setuid (test.test_os.PosixUidGidTests) ... ok
test_set_get_priority (test.test_os.ProgramPriorityTests) ... ok
test_remove_all (test.test_os.RemoveDirsTests) ... ok
test_remove_nothing (test.test_os.RemoveDirsTests) ... ok
test_remove_partial (test.test_os.RemoveDirsTests) ... ok
test_15261 (test.test_os.StatAttributeTests) ... skipped 'Win32 specific tests'
test_1686475 (test.test_os.StatAttributeTests) ... skipped 'Win32 specific tests'
test_file_attributes (test.test_os.StatAttributeTests) ... skipped 'st_file_attributes is Win32 specific'
test_stat_attributes (test.test_os.StatAttributeTests) ... ok
test_stat_attributes_bytes (test.test_os.StatAttributeTests) ... ok
test_stat_result_pickle (test.test_os.StatAttributeTests) ... ok
test_statvfs_attributes (test.test_os.StatAttributeTests) ... ok
test_statvfs_result_pickle (test.test_os.StatAttributeTests) ... ok
test_does_not_crash (test.test_os.TermsizeTests)
Check if get_terminal_size() returns a meaningful value. ... skipped 'failed to query terminal size'
test_stty_match (test.test_os.TermsizeTests)
Check if stty returns the same results ... stty: 'standard input': Inappropriate ioctl for device
skipped 'stty invocation failed'
test_blocking (test.test_os.TestInvalidFD) ... ok
test_closerange (test.test_os.TestInvalidFD) ... skipped 'Unable to acquire a range of invalid file descriptors'
test_dup (test.test_os.TestInvalidFD) ... ok
test_dup2 (test.test_os.TestInvalidFD) ... ok
test_fchdir (test.test_os.TestInvalidFD) ... ok
test_fchmod (test.test_os.TestInvalidFD) ... ok
test_fchown (test.test_os.TestInvalidFD) ... ok
test_fdatasync (test.test_os.TestInvalidFD) ... ok
test_fdopen (test.test_os.TestInvalidFD) ... ok
test_fpathconf (test.test_os.TestInvalidFD) ... ok
test_fstat (test.test_os.TestInvalidFD) ... ok
test_fstatvfs (test.test_os.TestInvalidFD) ... ok
test_fsync (test.test_os.TestInvalidFD) ... ok
test_ftruncate (test.test_os.TestInvalidFD) ... ok
test_inheritable (test.test_os.TestInvalidFD) ... ok
test_isatty (test.test_os.TestInvalidFD) ... ok
test_lseek (test.test_os.TestInvalidFD) ... ok
test_read (test.test_os.TestInvalidFD) ... ok
test_readv (test.test_os.TestInvalidFD) ... ok
test_tcgetpgrp (test.test_os.TestInvalidFD) ... ok
test_tcsetpgrpt (test.test_os.TestInvalidFD) ... ok
test_ttyname (test.test_os.TestInvalidFD) ... ok
test_write (test.test_os.TestInvalidFD) ... ok
test_writev (test.test_os.TestInvalidFD) ... ok
test_attributes (test.test_os.TestScandir) ... ok
test_bad_path_type (test.test_os.TestScandir) ... ok
test_broken_symlink (test.test_os.TestScandir) ... ok
test_bytes (test.test_os.TestScandir) ... ok
test_consume_iterator_twice (test.test_os.TestScandir) ... ok
test_current_directory (test.test_os.TestScandir) ... ok
test_empty_path (test.test_os.TestScandir) ... ok
test_removed_dir (test.test_os.TestScandir) ... ok
test_removed_file (test.test_os.TestScandir) ... ok
test_repr (test.test_os.TestScandir) ... ok
test_flags (test.test_os.TestSendfile) ... skipped 'requires headers and trailers support'
test_headers (test.test_os.TestSendfile) ... skipped 'requires headers and trailers support'
test_invalid_offset (test.test_os.TestSendfile) ... ok
test_keywords (test.test_os.TestSendfile) ... ok
test_offset_overflow (test.test_os.TestSendfile) ... ok
test_send_at_certain_offset (test.test_os.TestSendfile) ... ok
test_send_whole_file (test.test_os.TestSendfile) ... ok
test_trailers (test.test_os.TestSendfile) ... skipped 'requires headers and trailers support'
test_urandom_failure (test.test_os.URandomFDTests) ... skipped 'os.random() does not use a file descriptor'
test_urandom_fd_closed (test.test_os.URandomFDTests) ... skipped 'os.random() does not use a file descriptor'
test_urandom_fd_reopened (test.test_os.URandomFDTests) ... skipped 'os.random() does not use a file descriptor'
test_urandom_length (test.test_os.URandomTests) ... ok
test_urandom_subprocess (test.test_os.URandomTests) ... ok
test_urandom_value (test.test_os.URandomTests) ... ok
test_large_time (test.test_os.UtimeTests) ... skipped 'requires NTFS'
test_utime (test.test_os.UtimeTests) ... ok
test_utime_by_indexed (test.test_os.UtimeTests) ... ok
test_utime_by_times (test.test_os.UtimeTests) ... ok
test_utime_current (test.test_os.UtimeTests) ... ok
test_utime_current_old (test.test_os.UtimeTests) ... ok
test_utime_dir_fd (test.test_os.UtimeTests) ... ok
test_utime_directory (test.test_os.UtimeTests) ... ok
test_utime_fd (test.test_os.UtimeTests) ... ok
test_utime_invalid_arguments (test.test_os.UtimeTests) ... ok
test_utime_nofollow_symlinks (test.test_os.UtimeTests) ... ok
test_walk_bad_dir (test.test_os.WalkTests) ... ok
test_walk_bottom_up (test.test_os.WalkTests) ... ok
test_walk_prune (test.test_os.WalkTests) ... ok
test_walk_symlink (test.test_os.WalkTests) ... ok
test_walk_topdown (test.test_os.WalkTests) ... ok
test_deprecated (test.test_os.Win32DeprecatedBytesAPI) ... skipped 'Win32 specific tests'
test_symlink (test.test_os.Win32DeprecatedBytesAPI) ... skipped 'Win32 specific tests'
test_chdir (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_chmod (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_mkdir (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_remove (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_rename (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_utime (test.test_os.Win32ErrorTests) ... skipped 'Win32 specific tests'
test_create_junction (test.test_os.Win32JunctionTests) ... skipped 'Win32 specific tests'
test_unlink_removes_junction (test.test_os.Win32JunctionTests) ... skipped 'Win32 specific tests'
test_CTRL_BREAK_EVENT (test.test_os.Win32KillTests) ... skipped 'Win32 specific tests'
test_CTRL_C_EVENT (test.test_os.Win32KillTests) ... skipped 'Win32 specific tests'
test_kill_int (test.test_os.Win32KillTests) ... skipped 'Win32 specific tests'
test_kill_sigterm (test.test_os.Win32KillTests) ... skipped 'Win32 specific tests'
test_listdir_extended_path (test.test_os.Win32ListdirTests)
Test when the path starts with '\\?\'. ... skipped 'Win32 specific tests'
test_listdir_no_extended_path (test.test_os.Win32ListdirTests)
Test when the path is not an "extended" path. ... skipped 'Win32 specific tests'
test_12084 (test.test_os.Win32SymlinkTests) ... skipped 'Win32 specific tests'
test_directory_link (test.test_os.Win32SymlinkTests) ... skipped 'Win32 specific tests'
test_file_link (test.test_os.Win32SymlinkTests) ... skipped 'Win32 specific tests'
test_isdir_on_directory_link_to_missing_target (test.test_os.Win32SymlinkTests) ... skipped 'Win32 specific tests'
test_remove_directory_link_to_missing_target (test.test_os.Win32SymlinkTests) ... skipped 'Win32 specific tests'
test_rmdir_on_directory_link_to_missing_target (test.test_os.Win32SymlinkTests) ... test test_os failed
skipped 'Win32 specific tests'
======================================================================
FAIL: test_fds (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2533, in test_fds
    self._check_xattrs(getxattr, setxattr, removexattr, listxattr)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2508, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2503, in _check_xattrs_str
    self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many))
AssertionError: Items in the first set but not the second:
'ser.test99'
Items in the second set but not the first:
'user.test3'
'user.test20'
'user.test52'
'user.test67'
'user.test76'
'user.test41'
'user.test57'
'user.test9'
'user.test50'
'user.test93'
'user.test90'
'user.test46'
'user.test68'
'user.test71'
'user.test61'
'user.test1'
'user.test75'
'user.test69'
'user.test2'
'user.test79'
'user.test54'
'user.test21'
'user.test34'
'user.test10'
'user.test14'
'user.test44'
'user.test33'
'user.test58'
'user.test37'
'user.test18'
'user.test32'
'user.test56'
'user.test77'
'user.test98'
'user.test53'
'user.test60'
'user.test92'
'user.test38'
'user.test95'
'user.test36'
'user.test62'
'user.test91'
'user.test97'
'user.test66'
'user.test64'
'user.test72'
'user.test27'
'user.test96'
'user.test26'
'user.test39'
'user.test47'
'user.test99'
'user.test78'
'user.test42'
'user.test55'
'user.test30'
'user.test22'
'user.test7'
'user.test19'
'user.test4'
'user.test94'
'user.test8'
'user.test24'
'user.test0'
'user.test73'
'user.test65'
'user.test51'
'user.test11'
'user.test5'
'user.test43'
'user.test12'
'user.test49'
'user.test23'
'user.test40'
'user.test31'
'user.test63'
'user.test59'
'user.test48'
'user.test35'
'user.test6'
'user.test15'
'user.test70'
'user.test16'
'user.test74'
'user.test28'
'user.test29'
'user.test45'
'user.test25'
'user.test13'
'user.test17'
======================================================================
FAIL: test_lpath (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2518, in test_lpath
    os.listxattr, follow_symlinks=False)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2508, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2503, in _check_xattrs_str
    self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many))
AssertionError: Items in the first set but not the second:
'ser.test99'
Items in the second set but not the first:
'user.test3'
'user.test20'
'user.test52'
'user.test67'
'user.test76'
'user.test41'
'user.test57'
'user.test9'
'user.test50'
'user.test93'
'user.test90'
'user.test46'
'user.test68'
'user.test71'
'user.test61'
'user.test1'
'user.test75'
'user.test69'
'user.test2'
'user.test79'
'user.test54'
'user.test21'
'user.test34'
'user.test10'
'user.test14'
'user.test44'
'user.test33'
'user.test58'
'user.test37'
'user.test18'
'user.test32'
'user.test56'
'user.test77'
'user.test98'
'user.test53'
'user.test60'
'user.test92'
'user.test38'
'user.test95'
'user.test36'
'user.test62'
'user.test91'
'user.test97'
'user.test66'
'user.test64'
'user.test72'
'user.test27'
'user.test96'
'user.test26'
'user.test39'
'user.test47'
'user.test99'
'user.test78'
'user.test42'
'user.test55'
'user.test30'
'user.test22'
'user.test7'
'user.test19'
'user.test4'
'user.test94'
'user.test8'
'user.test24'
'user.test0'
'user.test73'
'user.test65'
'user.test51'
'user.test11'
'user.test5'
'user.test43'
'user.test12'
'user.test49'
'user.test23'
'user.test40'
'user.test31'
'user.test63'
'user.test59'
'user.test48'
'user.test35'
'user.test6'
'user.test15'
'user.test70'
'user.test16'
'user.test74'
'user.test28'
'user.test29'
'user.test45'
'user.test25'
'user.test13'
'user.test17'
======================================================================
FAIL: test_simple (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2514, in test_simple
    os.listxattr)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2508, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/builddir/build/BUILD/Python-3.5.2/Lib/test/test_os.py", line 2503, in _check_xattrs_str
    self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many))
AssertionError: Items in the first set but not the second:
'ser.test99'
Items in the second set but not the first:
'user.test3'
'user.test20'
'user.test52'
'user.test67'
'user.test76'
'user.test41'
'user.test57'
'user.test9'
'user.test50'
'user.test93'
'user.test90'
'user.test46'
'user.test68'
'user.test71'
'user.test61'
'user.test1'
'user.test75'
'user.test69'
'user.test2'
'user.test79'
'user.test54'
'user.test21'
'user.test34'
'user.test10'
'user.test14'
'user.test44'
'user.test33'
'user.test58'
'user.test37'
'user.test18'
'user.test32'
'user.test56'
'user.test77'
'user.test98'
'user.test53'
'user.test60'
'user.test92'
'user.test38'
'user.test95'
'user.test36'
'user.test62'
'user.test91'
'user.test97'
'user.test66'
'user.test64'
'user.test72'
'user.test27'
'user.test96'
'user.test26'
'user.test39'
'user.test47'
'user.test99'
'user.test78'
'user.test42'
'user.test55'
'user.test30'
'user.test22'
'user.test7'
'user.test19'
'user.test4'
'user.test94'
'user.test8'
'user.test24'
'user.test0'
'user.test73'
'user.test65'
'user.test51'
'user.test11'
'user.test5'
'user.test43'
'user.test12'
'user.test49'
'user.test23'
'user.test40'
'user.test31'
'user.test63'
'user.test59'
'user.test48'
'user.test35'
'user.test6'
'user.test15'
'user.test70'
'user.test16'
'user.test74'
'user.test28'
'user.test29'
'user.test45'
'user.test25'
'user.test13'
'user.test17'
----------------------------------------------------------------------
Ran 197 tests in 0.971s
FAILED (failures=3, skipped=44)

for full logs please see http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2372938

Version-Release number of selected component (if applicable):
python3-3.5.2-5.fc26

Comment 1 Charalampos Stratakis 2016-10-13 19:18:41 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

Comment 2 Dan Horák 2016-10-14 21:39:38 UTC
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.

Comment 3 Dan Horák 2016-10-17 08:43:11 UTC
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.

Comment 4 Dan Horák 2016-10-17 09:28:05 UTC
(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

Comment 5 Dan Horák 2016-10-17 10:54:12 UTC
Created attachment 1211306 [details]
standalone test case

run with "python3 test.py"

Comment 6 Dan Horák 2016-10-18 08:20:57 UTC
(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

Comment 7 Charalampos Stratakis 2016-10-18 09:00:21 UTC
Maybe it's worth reporting the issue at python's upstream issue tracker.

Comment 8 Dan Horák 2016-10-18 13:43:49 UTC
(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.

Comment 9 Dan Horák 2016-10-18 13:45:03 UTC
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'

Comment 10 Eric Sandeen 2016-10-18 13:53:30 UTC
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

Comment 11 Dan Horák 2016-10-18 14:07:53 UTC
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 ~]#

Comment 12 Eric Sandeen 2016-10-18 14:17:46 UTC
Great, thank you for testing.  I'll see if we can get this to -stable.

-Eric

Comment 13 Josh Boyer 2016-10-18 14:53:39 UTC
(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.

Comment 14 Fedora Update System 2016-10-22 03:54:21 UTC
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

Comment 15 Fedora Update System 2016-10-22 12:50:39 UTC
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.


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