> Synopsis: openrsync(1) leaves dangling processes after aborted transfer
> Category: Userland
> Environment:
System : OpenBSD 7.8
Details : OpenBSD 7.8 (GENERIC.MP) #54: Sun Oct 12 12:58:11 MDT 2025
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
Architecture: OpenBSD.amd64
Machine : amd64
> Description:
About two months ago, I transferred two large directories ("foo" and
"bar") off the above-mentioned machine to another box using openrsync(1) on
both ends of the transfer. I had connection issues at the time, in that the
Internet connection would cut out intermittently and I had to re-initiate the
connection through a captive portal. In addition, a few times I used a USB WiFi
adapter whose driver would end up in an odd state and require unplugging it and
plugging it back in again. After a large number of restarts over a number of
days over both Ethernet and WiFi from a number of different locations, I
managed to get the data transferred.
The other day, I glanced at top and spotted a large number of
openrsync(1) processes holding memory and waiting on kqread. On a closer
inspection, all these processes dated back to these failed transfers. I am
unsure what the correct behaviour should be (a timeout?), but I am pretty sure
processes should not hang around waiting for months.
While I have only tested this on 7.8 (my 7.9 upgrades are pending some
free time), I do not see any changes in usr.bin/rsync since ~7.7 that should
have addressed this.
> How-To-Repeat:
foo$ mkdir /tmp/openrsynctest
foo$ for i in $(seq 5); do dd if=/dev/random
of=/tmp/openrsynctest/$i.dd bs=1M count=128; done
bar$ openrsync --rsync-path=openrsync --delete -arv /tmp/openrsynctest
foo:/tmp/
^C
> Fix:
None that I can provide at this time.
Below are the current dangling processes from ps(1). Do tell if I can provide
some additional useful information.
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME
COMMAND
pontus 65430 0.0 0.0 1248 804 ?? Ip 26Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 31997 0.0 0.3 4996 42608 ?? Ip 26Feb26 0:01.02
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 28449 0.0 0.0 1248 816 ?? Ip 26Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 90324 0.0 2.2 321840 348188 ?? Ip 26Feb26 18:55.44
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 58480 0.0 0.0 1248 788 ?? Ip 27Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 47979 0.0 0.2 9752 30128 ?? Ip 27Feb26 0:01.18
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 29425 0.0 0.0 1248 784 ?? Ip 28Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 77852 0.0 0.6 9748 92364 ?? Ip 28Feb26 0:04.78
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 73705 0.0 0.0 1248 804 ?? Ip 28Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 53864 0.0 0.3 9736 44808 ?? Ip 28Feb26 0:07.93
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 5045 0.0 0.0 1248 800 ?? Ip 28Feb26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 60731 0.0 0.2 9508 31944 ?? Ip 28Feb26 1:25.05
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 82239 0.0 0.0 1248 792 ?? Ip 1Mar26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 69096 0.0 0.4 9480 68844 ?? Ip 1Mar26 0:09.05
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . bar
pontus 69237 0.0 0.0 1248 804 ?? Ip 2Mar26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 62348 0.0 0.3 6068 45960 ?? Ip 2Mar26 18:49.17
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 64299 0.0 0.0 1248 800 ?? Ip 8Mar26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 40278 0.0 1.3 5884 204380 ?? Ip 8Mar26 0:59.18
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 1344 0.0 0.0 1248 800 ?? Ip 9Mar26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 15305 0.0 0.1 5880 19516 ?? Ip 9Mar26 1:59.83
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 44519 0.0 0.0 1248 812 ?? Ip 10Mar26 0:00.00
ksh -c openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo
pontus 9634 0.0 0.3 5876 41528 ?? Ip 10Mar26 0:56.44
openrsync --server --sender --delete -g -l -o -p -D -r -t -v . foo