On Thu 04 Jun 2026, Pontus Stenetorp wrote:
> > 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/
Minor correction, mucked the above line up when transferring from my notes and
it should be:
bar$ openrsync --rsync-path=openrsync --delete -arv
foo:/tmp/openrsynctest /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