[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #13 from Rui DeSousa  ---
(In reply to Rui DeSousa from comment #12)

Running truss on the --sparse option does show the error being is returned
during the write call.


[postgres@hades ~]$ truss -f -o sparse.log rsync -av --sparse
0001005E0017 arch/0001005E0017 
sending incremental file list
0001005E0017
rsync: write failed on "/usr/home/postgres/arch/0001005E0017": Disc
quota exceeded (69)
rsync error: error in file IO (code 11) at receiver.c(400) [receiver=3.1.2]
rsync: [sender] write error: Broken pipe (32)


[postgres@hades ~]$ grep 68408 sparse.log |grep ERR
68408: openat(AT_FDCWD,"0001005E0017",O_RDONLY,00) ERR#2 'No such
file or directory'
68408: write(1,"\M^W\M-P\^E\0\^A\0\0\0\0\0\^P\\^"...,1024) ERR#69 'Disc quota
exceeded'
68408: stat("/usr/share/nls/C/libc.cat",0x7fff9dd8) ERR#2 'No such file or
directory'
68408: stat("/usr/share/nls/libc/C",0x7fff9dd8) ERR#2 'No such file or
directory'
68408: stat("/usr/local/share/nls/C/libc.cat",0x7fff9dd8) ERR#2 'No such
file or directory'
68408: stat("/usr/local/share/nls/libc/C",0x7fff9dd8) ERR#2 'No such file
or directory'

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #12 from Rui DeSousa  ---
(In reply to Dave Gordon from comment #10)

The sparse option errors out :).

[postgres@hades ~]$ rsync -av --sparse 0001005E0017
arch/0001005E0017 
sending incremental file list
0001005E0017
rsync: write failed on "/usr/home/postgres/arch/0001005E0017": Disc
quota exceeded (69)
rsync error: error in file IO (code 11) at receiver.c(400) [receiver=3.1.2]
rsync: [sender] write error: Broken pipe (32)



[postgres@hades ~]$ rsync -av --preallocate 0001005E0017
arch/0001005E0017 
preallocation is not supported on this Server
rsync error: syntax or usage error (code 1) at compat.c(205) [Receiver=3.1.2]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226)
[sender=3.1.2]

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #11 from Rui DeSousa  ---
(In reply to Dave Gordon from comment #7)

This is the result of hard link on the temp file where the rename failed.

root@hades:~postgres/arch # ls -lh rsync.temp ; du -h rsync.temp 
-rw---  1 postgres  postgres   1.1M Mar  5 16:02 rsync.temp
329Krsync.temp

The file system has LZ4 compression; thus the file is actually 19MB on disk.

root@hades:~postgres # ls -lh 0001005E0017 
-rw---  1 postgres  postgres64M Mar  5 16:02 0001005E0017
root@hades:~postgres # du -h 0001005E0017 
 19M0001005E0017


Since it's using compression; I thought /dev/zero would be a bad option to test
with.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #10 from Dave Gordon  ---
BTW, have you tried *either* --sparse *or* --preallocate (but not both
together, please, as that will trigger bug 13320 -
https://bugzilla.samba.org/show_bug.cgi?id=13320)

Does you get the same problem (i.e. file corruption with no reported error)
with each of these, or an error, or some different type of misbehaviour?

.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #9 from Dave Gordon  ---
(In reply to Rui DeSousa from comment #6)

In your example:
$ rsync -av --inplace 0001005E0017 arch/0001005E0017
sending incremental file list
0001005E0017

sent 67,125,370 bytes  received 35 bytes  8,950,054.00 bytes/sec
total size is 67,108,864  speedup is 1.00
$ ls -lh  arch/0001005E0017
-rw---  1 postgres  postgres64M Mar  5 16:02
arch/0001005E0017
$ du -h  arch/0001005E0017
362Karch/0001005E0017

how much of the source file is non-sparse? 'Cos ZFS can "sparsify" a file if it
detects that you've got big chunks of zeros. For that matter, if you've got
dedup  enabled, it should be able to detect any repeated pattern that's
block-sized and -aligned. That might let you create files that go over quota,
since they're not really using very much space.

In your dd(1) example, do you get a different result if you source /dev/zero
rather than /dev/(u)random?

.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #8 from Ben RUBSON  ---
(In reply to Dave Gordon from comment #3)
> ZFS probably notices the quota problem somewhere between (b) and (c), drops 
> the excess data, and returns EDQUOT to the close(2) call.

(In reply to Dave Gordon from comment #7)
> So if ZFS did return a delayed error at that point, it would be detected and 
> cause the transfer to fail.

I confirm ZFS does not return delayed errors.
userquota are delayed, so user may store more than the userquota, however what
is stored is stored.
The other types of ZFS quotas, quota and refquota, are not delayed and ZFS
extremely takes care to the last bytes stored around the limit to return EDQUOT
after the very last allowed bytes (throughput is then here terribly slow).

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: [Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread Dan Stromberg via rsync
On Mon, Mar 5, 2018 at 3:09 PM, just subscribed for rsync-qa from
bugzilla via rsync  wrote:
> https://bugzilla.samba.org/show_bug.cgi?id=13317
>
> --- Comment #6 from Rui DeSousa  ---
> (In reply to Rui DeSousa from comment #5)
>
> It looks like no error is returned and result is a sparse file. I think a
> sync() would be required otherwise the file is truncated on close to meet the
> quota.

IINM, to create a sparse file, you have to seek past the concrete part
of a file (if any), and write something.

I'm not sure that a sync would change whether you've gone over your
quota.  At least, if I were designing a quota system, I'd make it
depend on what you've written to the buffer cache and disk, not disk
alone.

Here's an example of creating a sparse file:
$ /usr/local/pypy3-5.10.0/bin/pypy3
below cmd output started 2018 Mon Mar 05 04:01:55 PM PST
Python 3.5.3 (09f9160b643e, Dec 22 2017, 10:10:27)
[PyPy 5.10.0 with GCC 6.2.0 20160901] on linux
Type "help", "copyright", "credits" or "license" for more information.
 file_ = open('/tmp/sparse-file', 'wb')
 file_.seek(1024*1024*8)
8388608
 file_.write(b'a')
1
 file_.close()

above cmd output done2018 Mon Mar 05 04:02:14 PM PST
dstromberg@zareason2:~ x86_64-unknown-linux-gnu 4805

$ ls -l /tmp/sparse-file
below cmd output started 2018 Mon Mar 05 04:02:18 PM PST
-rw-rw-r-- 1 dstromberg dstromberg 8388609 Mar  5 16:02 /tmp/sparse-file
above cmd output done2018 Mon Mar 05 04:02:18 PM PST
dstromberg@zareason2:~ x86_64-unknown-linux-gnu 4805

$ du -sh /tmp/sparse-file
below cmd output started 2018 Mon Mar 05 04:02:22 PM PST
4.0K/tmp/sparse-file

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #7 from Dave Gordon  ---
(In reply to Rui DeSousa from comment #5)

That was a run where the rename failed. Do you know whether the temporary file
was truncated or corrupted in that scenario?

[HINT: one can stop the rsync with a signal, find the temporary file, create a
hardlink to it, and then let rsync resume; in the event of an error, the
temporary won't disappear because of the hardlink, and then one can examine it
to see what state it was in when rsync quit].

Another thing to try would be adding the options --itemize-changes and 
--debug=deltasum3,recv2,io2

BTW I checked whether the return code from close() is verified, and, while
there are many close() calls whose result is ignored, the specific one at the
end of a file transfer *is* checked. So if ZFS did return a delayed error at
that point, it would be detected and cause the transfer to fail.

.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #6 from Rui DeSousa  ---
(In reply to Rui DeSousa from comment #5)

It looks like no error is returned and result is a sparse file. I think a
sync() would be required otherwise the file is truncated on close to meet the
quota.  

[postgres@hades ~]$ df -h arch 
Filesystem  SizeUsed   Avail Capacity  Mounted on
hydra/home/postgres/arch1.0G1.0G316K   100%   
/usr/home/postgres/arch

[postgres@hades ~]$ rsync -av --inplace 0001005E0017
arch/0001005E0017
sending incremental file list
0001005E0017

sent 67,125,370 bytes  received 35 bytes  8,950,054.00 bytes/sec
total size is 67,108,864  speedup is 1.00
[postgres@hades ~]$ ls -lh  arch/0001005E0017
-rw---  1 postgres  postgres64M Mar  5 16:02
arch/0001005E0017
[postgres@hades ~]$ du -h  arch/0001005E0017
362Karch/0001005E0017


Here's example of dd exceeding the quota; however, it ends up with a truncated
file instead of it being sparse.  

[postgres@hades ~/arch]$ dd if=/dev/random of=test.dmp bs=256k
^C3080+0 records in
2+6156 records out
807403520 bytes transferred in 10.843296 secs (74461081 bytes/sec)
[postgres@hades ~/arch]$ ls -lh test.dmp 
-rw-r--r--  1 postgres  postgres   384K Mar  5 18:05 test.dmp
[postgres@hades ~/arch]$ du -h test.dmp 
393Ktest.dmp

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #5 from Rui DeSousa  ---
(In reply to Dave Gordon from comment #4)

Hi Dave,

I'm not seeing any errors on the write calls. Would an fsync() be required to
force the error?

[postgres@hades ~]$ grep ERR rsync.test.log 
52419: lstat("/usr/local/etc/libmap.d",0x7fffc728) ERR#2 'No such file or
directory'
52419: access("/lib/libiconv.so.2",F_OK) ERR#2 'No such file or directory'
52419: access("/usr/lib/libiconv.so.2",F_OK) ERR#2 'No such file or
directory'
52419: access("/usr/lib/compat/libiconv.so.2",F_OK) ERR#2 'No such file or
directory'
52419: readlink("/etc/malloc.conf",0x7fffd7e0,1024) ERR#2 'No such file or
directory'
52419: openat(AT_FDCWD,"/etc/popt",O_RDONLY,00) ERR#2 'No such file or
directory'
52419: openat(AT_FDCWD,"/usr/home/postgres/.popt",O_RDONLY,00) ERR#2 'No such
file or directory'
52881: stat("arch/0001005E0017",0x7fffca10) ERR#2 'No such file
or directory'
52881: __acl_get_file(0x455d12,0x3,0x8012ca000) ERR#22 'Invalid argument'
52881: lstat("0001005E0017",0x7fffbc60) ERR#2 'No such file or
directory'
52987: openat(AT_FDCWD,"0001005E0017",O_RDONLY,00) ERR#2 'No such
file or directory'
52987: __acl_get_file(0x455d12,0x3,0x8012ca000) ERR#22 'Invalid argument'
52987: rename(".0001005E0017.kmkocG","0001005E0017")
ERR#69 'Disc quota exceeded'
52987: stat("/usr/share/nls/C/libc.cat",0x7fff9e28) ERR#2 'No such file or
directory'
52987: stat("/usr/share/nls/libc/C",0x7fff9e28) ERR#2 'No such file or
directory'
52987: stat("/usr/local/share/nls/C/libc.cat",0x7fff9e28) ERR#2 'No such
file or directory'
52987: stat("/usr/local/share/nls/libc/C",0x7fff9e28) ERR#2 'No such file
or directory'
52987: select(1,{ 0 },{ },{ 0 },{ 60.00 }) ERR#4 'Interrupted system
call'
52881: nanosleep({ 0.02000 }) ERR#4 'Interrupted system call'
52881: wait4(-1,0x7fffc3d4,WNOHANG,0x0) ERR#10 'No child processes'
52881: sigreturn(0x7fffc400) ERR#4 'Interrupted system call'
52881: wait4(52987,0x7fffc9d4,WNOHANG,0x0) ERR#10 'No child processes'
52419: nanosleep({ 0.02000 }) ERR#4 'Interrupted system call'
52419: wait4(-1,0x7fffc4d4,WNOHANG,0x0) ERR#10 'No child processes'
52419: sigreturn(0x7fffc500) ERR#4 'Interrupted system call'
52419: wait4(52881,0x7fffcaf4,WNOHANG,0x0) ERR#10 'No child processes'
52419: wait4(52881,0x7fffcaf4,WNOHANG,0x0) ERR#10 'No child processes'

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #4 from Dave Gordon  ---
To see whether rsync is getting any errors reported by any system calls it
makes, one could run it under strace(1) on Linux, or dtrace on Solaris.
Presumably FreeBSD has at least one of these, or something similar?

Linux:
$ strace -ff -o rsync-trace -e trace=file,desc rsync ...
$ grep -w 'E[[:upper:][:digit:]]*' rsync-trace.*
access("/etc/ld.so.nohwcap", F_OK)  = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)  = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)  = -1 ENOENT (No such file or directory)
open("/usr/etc/popt", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/popt", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/etc/popt.d", 0x7ffdafe82860) = -1 ENOENT (No such file or directory)

The output is a list of all filename- or descriptor-related syscalls that
failed. If any of them show up as EDQUOT or relate to the problematic output
file, that might be a big clue :)

HTH,
.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13317] rsync returns success when target filesystem is full

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13317

--- Comment #3 from Dave Gordon  ---
(In reply to Rui DeSousa from comment #2)

Here's a snippet from Oracle's ZFS help ...
https://docs.oracle.com/cd/E19253-01/819-5461/gitfx/index.html

"Enforcement of user and group quotas might be delayed by several seconds. This
delay means that users might exceed their quota before the system notices that
they are over quota and refuses additional writes with the EDQUOT error
message."

So, rsync(1) might
(a) successfully write a bunch of data that falls just short of the quota,
(b) "successfully" (i.e. with no reported error) write some more that takes it
over quota
(c) close the file (ignoring any result)
(d) rename the file -- which may or may not work.

ZFS probably notices the quota problem somewhere between (b) and (c), drops the
excess data, and returns EDQUOT to the close(2) call.

The success of the rename depends only on whether there is sufficient free
space at that instant; any previous failure in writing the file won't affect
the rename directly. Rename may not always need any extra space anyway.

BTW: apropos your comment about "cat" in thread
https://www.postgresql.org/message-id/E6AB850C-D05E-405B-8D4E-DE18E128F402%40icloud.com
it's not the cat that makes this reliable, it's the ssh! :)

HTH,
.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13320] file contents cause rsync to fail (with certains args and dir structure)

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13320

--- Comment #3 from Dave Gordon  ---
Problem introduced by
commit f3873b3d88b61167b106e7b9227a20147f8f6197
Author: Wayne Davison 
Date:   Mon Oct 10 11:49:50 2016 -0700

Support --sparse combined with --preallocate or --inplace.

The new code tries to punch holes in the destination file using newer
Linux fallocate features. It also supports a --whole-file + --sparse +
--inplace copy on any filesystem by truncating the destination file.

Root cause is that the new variable 'sparse_past_write' is not reset
when switching files, thus leading to miscalculation of the current
seek position in do_punch_hole().

Quick fix is to reset this variable to the current seek position on
each call to write_sparse() - probably not the most efficient fix,
but it seems to work.

.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13320] file contents cause rsync to fail (with certains args and dir structure)

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13320

--- Comment #2 from Dave Gordon  ---
Created attachment 14018
  --> https://bugzilla.samba.org/attachment.cgi?id=14018=edit
Simple although probably suboptimal fix

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


[Bug 13320] file contents cause rsync to fail (with certains args and dir structure)

2018-03-05 Thread just subscribed for rsync-qa from bugzilla via rsync
https://bugzilla.samba.org/show_bug.cgi?id=13320

--- Comment #1 from Dave Gordon  ---
Bug will be triggered if:

options include both --sparse and --preallocate, AND
the second (or subsequent) file to be copied begins with one or more zero
bytes.

.Dave.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: file contents cause rsync to fail (with certains args and dir structure)

2018-03-05 Thread Dave Gordon via rsync
Problem was introduced with this commit:



commit f3873b3d88b61167b106e7b9227a20147f8f6197

Author: Wayne Davison way...@samba.org

Date:   Mon Oct 10 11:49:50 2016 -0700



Support --sparse combined with --preallocate or --inplace.

   

The new code tries to punch holes in the destination file using newer

Linux fallocate features. It also supports a --whole-file + --sparse +

--inplace copy on any filesystem by truncating the destination file.



.Dave.



Sent using Zoho Mail






 On Sun, 04 Mar 2018 23:17:23 +0100 Dave Gordon via rsync 
rsync@lists.samba.org wrote 




Quite strange at first sight that the failure should depend on the files 
containing NULs!

But I've reproduced it on both Ubuntu and OpenSUSE with d73762e "Preparing for 
release of 3.1.3".

The problem remains even if you drop the --checksum or --delay-updates options 
from the command line, but goes away if you don't use both "--sparse" and 
"--preallocate" together.

So it looks like a bad interaction of these options, probably with the sparse 
handling being affected by the NULs in the files.



HTH,

.Dave.



Sent using Zoho Mail






 On Sun, 04 Mar 2018 14:57:24 +0100 xftroxgpx via rsync 
rsync@lists.samba.org wrote 












-- 

Please use reply-all for most replies to avoid omitting the mailing list. 

To unsubscribe or change options: 
https://lists.samba.org/mailman/listinfo/rsync 

Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


script to reproduce: 



#!/bin/bash 



#tested to fail as below: ArchLinux's rsync-3.1.3-1-x86_64.pkg.tar.xz 

#tested to fail as below: ArchLinux's rsync-3.1.3pre1-1-x86_64.pkg.tar.xz 

#tested to work ok : ArchLinux's rsync-3.1.2-8-x86_64.pkg.tar.xz 



if test "$1" == "clean"; then 

rm -vrf destdir sourcedir sourcedir2 sourcedir3 

exit 0 

fi 



echo '!! test 1:' 



mkdir -p destdir 

mkdir -p sourcedir/a 

#one \0 followed by a non-\0 (so, using a space) required: 

echo -ne '\0 '  sourcedir/a/b 

#non zero size file required: 

echo -ne 'c'  sourcedir/c 

echo 'sourcedir' /tmp/filesfrom.lst.tmp 

rsync --recursive --perms --checksum --delay-updates --numeric-ids 
--preallocate --sparse --files-from=/tmp/filesfrom.lst.tmp -- ./ ./destdir/ 

#rsync: write failed on 
"/home/xftroxgpx/sandbox/rsync/nsfod_issues/try2/destdir/sourcedir/a/b": No 
such file or directory (2) 

#rsync error: error in file IO (code 11) at receiver.c(374) [receiver=3.1.3] 



# ^ this happens first and any subsequent times! 



echo '!! test 2:' 



mkdir -p sourcedir2/a 

#one \0 followed by a non-\0 (so, using an M) required: 

echo -ne '\0M'  sourcedir2/a/b 

#one \0 followed by a non-\0 (so, using an M) required: 

echo -ne '\0M'  sourcedir2/c 



#in order to see this error: (for file 'c') 



#non-zero file size required and it must be prefixed by '.' aka dot 

#echo -ne '1'  sourcedir2/.d 

#XXX: ^ (un)comment, don't forget to ./go clean afterwards, then ./go 



#otherwise, the error is for file "a/b" 



echo 'sourcedir2' /tmp/filesfrom.lst.tmp 

rsync --recursive --perms --checksum --delay-updates --numeric-ids 
--preallocate --sparse --files-from=/tmp/filesfrom.lst.tmp -- ./ ./destdir/ 

#rsync: write failed on 
"/home/xftroxgpx/sandbox/rsync/nsfod_issues/try2/destdir/sourcedir2/a/b": No 
such file or directory (2) 

#rsync error: error in file IO (code 11) at receiver.c(374) 
[receiver=3.1.3pre1] 



echo '!! test 3:' #same as 2 but an extra file '.d' exists! 



mkdir -p sourcedir3/a 

#one \0 followed by a non-\0 (so, using an M) required: 

echo -ne '\0M'  sourcedir3/a/b 

#one \0 followed by a non-\0 (so, using an M) required: 

echo -ne '\0M'  sourcedir3/c 



#non-zero file size required and it must be prefixed by '.' aka dot 

echo -ne '1'  sourcedir3/.d 

echo 'sourcedir3' /tmp/filesfrom.lst.tmp 

rsync --recursive --perms --checksum --delay-updates --numeric-ids 
--preallocate --sparse --files-from=/tmp/filesfrom.lst.tmp -- ./ ./destdir/ 

#rsync: write failed on 
"/home/xftroxgpx/sandbox/rsync/nsfod_issues/try2/destdir/sourcedir2/c": No such 
file or directory (2) 

#rsync error: error in file IO (code 11) at receiver.c(374) [receiver=3.1.3] 



A pristine copy of this script can be found here: 
https://github.com/xftroxgpx/a3/blob/37ebff3e0fe9d294aeec899a082dc2c51c486eb4/system/Z575/OSes/3archlinux/on_baremetal/filesystem_now/archlinux/home/xftroxgpx/sandbox/rsync/nsfod_issues/try2/go
 



Just run ./go to start all 3 tests. 



All 3 tests should fail with: 

ArchLinux's rsync-3.1.3-1-x86_64.pkg.tar.xz 

ArchLinux's rsync-3.1.3pre1-1-x86_64.pkg.tar.xz 



All 3 tests will succeed with ArchLinux's rsync-3.1.2-8-x86_64.pkg.tar.xz 

(aka rsync version 3.1.2 protocol version 31) 





Cheers! 



​Sent with ProtonMail Secure Email.​ 







-- 

Please use reply-all for most replies to avoid omitting the mailing list. 

To unsubscribe or change options: 
https://lists.samba.org/mailman/listinfo/rsync 

Before posting, read: