Hi Samuel.
  
On Tue, Sep 28, 2021 at 08:51:59PM +0100, Samuel Henrique wrote:
> >  To build version dependency automatically script should have access
> >  to the whole history of all versions of libc6, with list of symbols
> >  and markers when each symbol become usable.
> 
> We have that, you can read about it here[0][1][2], if you're interested.

 Thank you for those references, I've got much helpful info from them.

> >  Yes, this issue may occure when libc6 vesion is outdated in normal
> >  upgrade process.
> 
> I would disagree on the definition of a normal upgrade process, one
> would never end up with a combination of incompatible rsync + libc,
> that can only happen if somebody installs a package that is not
> supported by Debian (not from the official repos) and that package
> holds libc back (thus running an unsupported version)[4].

 I had several (at least 2 distinct) live systems with this post-upgrade
 problem. They have backups, but now it too late: now those backups are
 replaced by new ones.

 However, it requires some clarification what is "normal upgrade" process.
 I do not run full-upgrade ("aptitude safe-upgrade" in my taste) if some
 new package it to be installed. I simply check dependences to be sure
 that new package does not bring risk to break functionality of important
 services on production system. The full-upgrade is performed on a schedule,
 once a week or two, and requires additional monitoring of the system's
 behaviour. For example, I have an LXC containter with libc-2.31-17,
 which was not updated at least a month (file libc.so.6 dated 23-Aug).
 Running "apt-get update ; aptitude -R install rsync" I got rsync-3.2.3-8
 without libc6 update. I consider this as a normal situation, because
 I have no obligation to do full-upgrade when I install some package.
 However, this combination (rsync-3.2.3-8 + libc6-2.31-17) is not
 functional: rsync replies "failed to set permissions [...] Function
 not implemented (38)".

> I did try to reproduce the issue on Jessie, with libc 2.28, but I was
> able to run "rsync -va /etc/ld.so.cache /tmp" with no issues.

 Did you try the last rsync binary with libc6-2.28?
 I tried and got an error (see below).

> It might be possible that the issue you're seeing only affects libc
> between 2.28 and 2.31, if that's the case, it will be very tricky for
> me to reproduce since Debian only supports 2.28, 2.31 and 2.32.

 Many versions are saved here: http://snapshot.debian.org/binary/libc6/.

 Using the previously mentioned LXC container and binary packages from
 snapshot.debian.org, I tried rsync-3.2.3-8 with libc 2.31-17, 2.30-4,
 2.29-10, 2.28-10, 2.28-1, 2.27-1, in all cases rsync fails with the same
 "not implemented" error. I did not go below 2.27-1 because it requires
 downgrading of base system packages...

> If you have an affected system at hand, I would kindly ask you to try
> to implement upstream's workaround[5] and see if it makes your issue
> go away.

 I could take me too much time to set up building environment and compile
 from sources... However, I can test binary on my setup, if you provide it
 (for arch:amd64, please). I can provide access to my LXC environment:
 just send me your ssh public key, and I'll create an entry for you.

> Just a small correction, I see you mentioned lchown, but the issue is
> related to lchmod.

 Yes, it should be read "lchown" (lchmod was mentioned by mistake).
-- 
 Eugene Berdnikov

Reply via email to