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

Reply via email to