Bug 10357 - make check fails for xattr tests
Summary: make check fails for xattr tests
Status: RESOLVED FIXED
Alias: None
Product: rsync
Classification: Unclassified
Component: core (show other bugs)
Version: 3.0.9
Hardware: All All
: P5 normal (vote)
Target Milestone: ---
Assignee: Wayne Davison
QA Contact: Rsync QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-02 12:21 UTC by Pavel Šimerda (pavlix)
Modified: 2020-07-27 22:40 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Šimerda (pavlix) 2014-01-02 12:21:41 UTC
make check fails:

Running: "/home/pavlix/rhel/rsync/rsync-3.0.9/rsync  -aiX -H --fake-super --link-dest=../chk . ../to"
cd........x ./
cf........x file0
cf........x file1
cf........x file2
cf........x file4
cd........x foo/
cf........x foo/file3
cd........x foo/bar/
cf........x foo/bar/file5
hf+++++++++ foo/bar/file6 => foo/bar/file5
[receiver] could not find xattr #1 for file0
rsync error: protocol incompatibility (code 2) at xattrs.c(636) [receiver=3.0.9]
rsync: connection unexpectedly closed (73 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
----- xattrs-hlink log ends
FAIL    xattrs-hlink

Running: "/home/pavlix/rhel/rsync/rsync-3.0.9/rsync  -aiX  --fake-super --link-dest=../chk . ../to"
cd........x ./
cf........x file0
cf........x file1
cf........x file2
cf........x file4
cd........x foo/
cf........x foo/file3
cd........x foo/bar/
cf........x foo/bar/file5
[receiver] could not find xattr #1 for file0
rsync error: protocol incompatibility (code 2) at xattrs.c(636) [receiver=3.0.9]
rsync: connection unexpectedly closed (55 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
----- xattrs log ends
FAIL    xattrs

$ getenforce
Permissive
Comment 1 Pavel Šimerda (pavlix) 2014-01-02 12:22:55 UTC
Downstream bug report:

https://bugzilla.redhat.com/show_bug.cgi?id=1032637
Comment 2 Wayne Davison 2014-01-02 18:00:53 UTC
The latest rsync is 3.1.0.  I have run "make check" of 3.0.9 on REL6 without issue, so perhaps you have patches that have broken something?
Comment 3 Pavel Šimerda (pavlix) 2014-01-03 11:18:52 UTC
(In reply to comment #2)
> The latest rsync is 3.1.0.  I have run "make check" of 3.0.9 on REL6 without
> issue, so perhaps you have patches that have broken something?

I was trying to remove offensive patches before filing the bugreport. Now I tried to build pristine 3.0.9 and 3.1.0 and both fail the exact same way. If they work for you, it means those tests depend on something in the system I don't have.

We probably need to find what those tests require and check for it so that anyone running the test knows what to do, or modify them or make them conditional. Do you have any tips on what it could be? Just to remind, selinux is in permissive mode.

FYI, my current system is Fedora 18 but I can test on other systems as well.
Comment 4 Pavel Šimerda (pavlix) 2014-01-30 11:39:03 UTC
Any progress or new information?
Comment 5 Wayne Davison 2014-01-30 17:23:06 UTC
Nothing fails here, so any progress would have to come from you.
Comment 6 Wayne Davison 2014-01-30 17:26:40 UTC
I would also suggest trying rsync 3.1.1pre1, since the re-ordering of the chown & xattr args may affect the test.
Comment 7 Pavel Šimerda (pavlix) 2014-02-02 12:38:15 UTC
(In reply to comment #5)
> Nothing fails here, so any progress would have to come from you.

I supplied the relevant information in comment #3. I would be happy if you could provide information about the system where the tests succeed or better specific requirements for the system if available.

(In reply to comment #6)
> I would also suggest trying rsync 3.1.1pre1, since the re-ordering of the chown
> & xattr args may affect the test.

Testing on a Gentoo notebook I use for travelling...

SKIP    chown (Can't chown (probably need root))
SKIP    devices (Rsync needs root/fakeroot for device tests)

The skips are good as root isn't available and the overall check now succeeds. I don't know whether it's because of 3.1.1pre1 or because of the environment, though.

With 'fakeroot' package installed, all tests with 3.1.1pre1 on the gentoo box Gentoo pass. Please keep the bug open until I verify it on on other systems as well. I'll supply the information ASAP and will close the bug if it works for me.
Comment 8 Pavel Šimerda (pavlix) 2014-02-04 21:45:23 UTC
(In reply to comment #7)
> With 'fakeroot' package installed, all tests with 3.1.1pre1 on the gentoo box
> Gentoo pass. Please keep the bug open until I verify it on on other systems as
> well. I'll supply the information ASAP and will close the bug if it works for
> me.

So, I unfortunately confirmed the bug on a RHEL7 machine with vanilla 3.1.1pre1 as well. Therefore it seems the difference is somewhere in the system environment and not in the version.
Comment 9 sluvubar 2016-01-10 03:22:11 UTC
Over a year since this bug was opened, I'm running into it for the first time on rsync 3.1.2. In my case, the tests "xattr" and "xattr-hlink" both fail with "Missing hard links on" followed by a directory listing (exit code and diff seems okay on both).

On a guess, I tried upgrading acl to 2.2.52 and attr 2.4.47, cleared my ld.so.cache, and rsync still fails the two xattr tests. config.log shows that xattr.h is found, usable, etc, nothing out of the ordinary AFAICT. There are a few xattr-/acl-related config.log tests that result in "undefined reference", but none of them cause the build to fail. 

If it helps, I'm using Arch, here's the PKGBUILD with ./configure line: https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/rsync

I'm building on another machine, and config.log and the test long aren't handy but I can provide it if necessary. Is there anything I can do to further identify the problem?
Comment 10 SATOH Fumiyasu 2016-01-16 10:56:26 UTC
Can you try the following patch in Bug 6590?
https://bugzilla.samba.org/show_bug.cgi?id=6590#attach_11780
Comment 11 Michal Ruprich 2017-12-12 12:00:48 UTC
I ran into a different problem with xattrs tests. It seems that the --fake-super option sets not only all the xattr like user.short, user.long etc. that are set in the test, but also it adds 

user.rsync.security.selinux="unconfined_u:object_r:user_home_t:s0"

So when a diff is being run on the getfattr on original files and on the destination files, the xattrs are not the same and for each file there is a similar output in xattrs.txt produced by the diff:

# file: foo/bar
 user.dir4="another dir test"
 user.dir5="one last one"
+user.rsync.security.selinux="unconfined_u:object_r:user_home_t:s0"

This makes both xattrs tests to fail.
Comment 12 Dave Gordon 2018-02-28 20:56:57 UTC
(In reply to Michal Ruprich from comment #11)

This latter issue is resolved in 3.1.3; please see my comment on your separate bug for this issue at https://bugzilla.samba.org/show_bug.cgi?id=13241#c1
Comment 13 Wayne Davison 2020-07-27 22:40:25 UTC
There's a couple more xattr fixes in 3.2.3 that might help out with this failure.