Skip to content

Internal hashtable error: illegal key supplied! (v3.4) #697

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
TonyTTTT opened this issue Jan 14, 2025 · 7 comments · Fixed by #705
Closed

Internal hashtable error: illegal key supplied! (v3.4) #697

TonyTTTT opened this issue Jan 14, 2025 · 7 comments · Fixed by #705

Comments

@TonyTTTT
Copy link

With v3.4, getting error: Internal hashtable error: illegal key supplied!
(no error with 3.3)
MacOS 15.2

@stephenkorsman
Copy link

Same here for Ubuntu 24.04.1 LTS (Noble) using rsync version 3.2.7-1ubuntu1.1. I forced a reversion back to 3.2.7-1ubuntu1 which made rsync functional again.
Screenshot from 2025-01-15 09-21-07

@Athanasius
Copy link

Likewise with Debian's 3.2.7-1+deb12u1 released yesterday.

This is blocking some of my backups system (syncing files from one host to another). The Debian bug for this ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1093052 ) points to this being related to combining -r and -H, something that is natural to do when wanting an accurate mirror of files.

@futatuki
Copy link

futatuki commented Jan 15, 2025

I also got same error on FreeBSD 14.2, like

Internal hashtable error: illegal key supplied!
rsync error: errors with program diagnostics (code 13) at hashtable.c(88) [generator=3.4.0]

It seems this is related to -H option (see also #702) and it causes if the source is a directory node without '/' and the destination is a directory, e.g:

# mkdir -p /var/tmp/rsync-test
# rsync -aAXHv --delete /etc/pam.d /var/tmp/rsync-test
Internal hashtable error: illegal key supplied!
rsync error: errors with program diagnostics (code 13) at hashtable.c(88) [generator=3.4.0]
# rsync -aAXv --delete /etc/pam.d /var/tmp/rsync-test
sending incremental file list
pam.d/
pam.d/README
pam.d/atrun
pam.d/cron
pam.d/ftp
pam.d/ftpd
pam.d/imap
pam.d/#
pam.d/other
pam.d/passwd
pam.d/pop3
pam.d/sshd
pam.d/su
pam.d/system
pam.d/telnetd
pam.d/xdm

sent 9,164 bytes  received 305 bytes  18,938.00 bytes/sec
total size is 8,130  speedup is 0.86
# rm -r  /var/tmp/rsync-test
# mkdir -p /var/tmp/rsync-test/pam.d
rsync -aAXHv --delete /etc/pam.d/. /var/tmp/rsync-test/pam.d
sending incremental file list
./
README
atrun
cron
ftpd
imap
login
other
passwd
pop3
sshd
su
system
telnetd
xdm
ftp => ftpd

sent 8,754 bytes  received 305 bytes  18,118.00 bytes/sec
total size is 8,130  speedup is 0.90
#

@chenx97
Copy link

chenx97 commented Jan 15, 2025

It looks like rsync -rH /src/folder /dst/ fails, but rsync -rH /src/folder/ /dst/folder/ doesn't.

@frukto
Copy link

frukto commented Jan 15, 2025

It looks like rsync -rH /src/folder /dst/ fails, but rsync -rH /src/folder/ /dst/folder/ doesn't.

sync -rH /src/A /src/B /dst/ /dst/folder/ works for me as well. Looks like everything is fine when multiple sources are specified.

rsync -rH /src/folder /src/folder /dst/ seems like a quick&dirty workaround.

@kpinc
Copy link

kpinc commented Jan 16, 2025

It looks like rsync -rH /src/folder /dst/ fails, but rsync -rH /src/folder/ /dst/folder/ doesn't.

rsync -rH /src/folder /src/folder /dst/ seems like a quick&dirty workaround.

It is not a quick and dirty work-around, because a trailing / on the source means something different than when the trailing / is omitted. The former copies the source directory itself whereas the latter copies the source's content.

@mach-o
Copy link

mach-o commented Jan 18, 2025

It looks like rsync -rH /src/folder /dst/ fails, but rsync -rH /src/folder/ /dst/folder/ doesn't.

Sadly I don't believe that this approach can work for those of us generating incremental backups using rsync's --link-dest option, though I admittedly haven't tried

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants