[pbs-devel] [POC proxmox proxmox-backup 0/4] use custom DNS resolver for

Christian Ebner c.ebner at proxmox.com
Tue Oct 8 17:13:38 CEST 2024


On 10/8/24 16:50, Gabriel Goller wrote:
> On 28.09.2024 11:42, Christian Ebner wrote:
>> As discussed in issue #4788 [0], statically linking of the
>> `proxmox-backup-client` still suffers from possible incompatible
>> dependencies on the NSS module libraries, further described in
>> [1].
>>
>> This proof of concept drafts a possible workaround by relying on
>> `hickory-dns` [2], using the hickory-resolver for name resolution
>> instead of the default `getaddrinfo` based `GaiResolver` used by
>> the hyper http client, as suggested by Thomas.
>>
>> These patches still need some polishing, but allow already to compile
>> a static binary without the glibc issues as descibied in the issue,
>> therefore sending them for possible more widespread testing.
>>
>> Initial testing on ArchLinux with glic 2.40+r16+gaa533d58ff-2,
>> previously leading to floating point exceptions, now allows to backup
>> without issues using the patched client.
>>
>> A major downside is the required dependencies for hickory-dns`, as with
>> the feature `system-config` enabled (used to read nameservers from
>> `/etc/resolv.conf`), also the windows dependencies on `ipconfig` and
>> it's subdependencies are required.
> 
> This would be a dealbreaker for us IMO, but luckily this has already
> been fixed on the main branch!

That is great! Was afraid to have to patch this out on our side.

> The whole 'ipconfig' crate is an optional dependency and should only be
> pulled in if the target is windows. This is already implemented in the
> latest version [1], but it doesn't yet work quite right. This pull
> request (already merged) [0], solves this by removes the implicit
> features (which are created on a optional dependency automatically).

Thanks a lot for looking deeper into this! I did miss that pull request 
while looking at this.

> This means we either use the main branch for now, or wait until the next
> version is released and we can remove ipconfig, widestring, windows-sys
> and winreg!

So only the hickory crates would need to be packaged as build 
dependencies if this is the way to move forward.
> [0]: https://github.com/hickory-dns/hickory-dns/pull/2337
> [1]: 
> https://github.com/hickory-dns/hickory-dns/blob/7887002d1198ed9faaaae531e0f9815c10589f7a/crates/resolver/Cargo.toml#L104






More information about the pbs-devel mailing list