Re: openrsync(1): Dangling kqread processes after aborted transfer
Pontus Stenetorp <[email protected]> Thu, 4 Jun 2026 16:13:56 +0900
| Newsgroups | gmane.os.openbsd.bugs |
|---|---|
| Message-ID | <aiEltGCOspgFqNO9@localhost> |
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