> 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

Reply via email to