Hello Eugene,

> > 1) Do you know how is it possible that you were running Debian testing
> > with libc6 2.30-4? Even Debian stable has a newer version, I believe
> > you could have missed running apt full-upgrade at some point.
>
>  I have several hosts with old kernels (like 4.17) and their headers,
>  and gcc-7, which are tied to libc6-2.30 by their dependences.
>  On "aptitude install libc6" first resolver's proposal was to remove
>  these packages. I agreed with this choice to install libc6-2.32.

Interesting, so I will assume the system is in a consistent state.

>  I have a copy of one such system on backup, it may be studied for
>  more details if need... However, it looks pointless, because support
>  for lchown() is definitely a new feature, so the right way, IMHO,
>  is to correct dependences for rsync package: "libc6 (>= 2.31)".

I don't think it's as simple as that, I understand your issue now, but
I wouldn't just bump the dependency requirement without understanding
it better.
As it stands now, the version requirement is automatically set by
debhelper, based on the symbols rsync uses.
The bug we are facing comes from libc6, as we can see in the upstream
bug report, and rsync is trying to workaround that issue (the patch I
introduced on 3.2.3-7).

> > 2) Is your system under a chroot and/or without /proc mounted?
>
>  No, fault happens with physical hosts (not VMs or containers),
>  where /proc is mounted. However, they are all running SysV init.

Cool, I think SysV init won't take a role in this, but good to know the details.

> > > Upgrade libc6 to 2.32-4 solves the problem.
> > That's the current version available in testing and unstable, so
> > anybody running those will be fine.
>
>  Right. I also have some similar hosts with libc-2.32, probably they were
>  upgraded to last version due to absence of old kernels, old gcc, etc.
>  Rsync runs fine on them.

Good to know.

> > If anything, 3.2.3-7 is fixing the very same issue you reported, which
> > should have been happening in rsync 3.2.3 + libc6 2.32 (but you
> > mention you had an older libc6).
> >
> > Overall I believe there might be something wrong in your system,
> > related to libc6.
>
>  Every system with periodic updates might have outdated packages,
>  generally it's not a problem (and should not be a problem) if binary API
>  is compatible and all package dependences are correct.

Having outdated packages is not a problem, but having only a subset of
them is an indicator of something wrong. Rsync 3.2.3-7 migrated to
testing after libc6 2.32, so this issue will not happen unless the
person purposely holds libc back. I thought your system was running
like that by accident.
I'm not judging here, I just meant to explain that the trigger to the
issue will not affect every Debian user.

My current guess is that rsync's workaround accidentally moved the
regression from libc 2.32 to libc < 2.32. I've added a comment to
rsync's issue, you can follow the discussion there as well:
https://github.com/WayneD/rsync/issues/109

To be clear, I agree that as it stands right now, rsync should depend
on libc >= 2.32, but I don't wanna make this change before confirming
with upstream that this is not being caused by a regression from the
workaround.
Being able to keep the current version requirement will be important
in the long term as I want to be able to upload new releases to
backports. I also think that there's a chance rsync's upstream solves
the new regression soon (if confirmed), which would deem the version
bump unneeded.

What do you think?

Thank you,

-- 
Samuel Henrique <samueloph>

Reply via email to