Receiving with current rsync 3.2.7 on current macOS 13.3 fails: error in rsync protocol data stream (code 12) · Issue #129732 · Homebrew/homebrew-core

  • 5,000
  • Tác giả: admin
  • Ngày đăng:
  • Lượt xem: 5
  • Tình trạng: Còn hàng

brew gist-logs links OR brew config AND brew doctor output

$ brew gist-logs rsync
Error: No logs.

$ brew config         
HOMEBREW_VERSION: 4.0.15
ORIGIN: https:///Homebrew/brew
HEAD: 763c41f006ab9b44261e313b0aaa24a047431b06
Last commit: 5 days ago
Core tap origin: https:///Homebrew/homebrew-core
Core tap HEAD: b68775761423d91b6ce740787f66511fa3ae0d47
Core tap last commit: 9 weeks ago
Core tap branch: master
Core tap JSON: 29 Apr 15:38 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.mIZBIMVnNp/org.macosforge.xquartz:0
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.10 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 14.0.3 build 1403
Git: 2.39.2 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.87.0 => /usr/bin/curl
macOS: 13.3.1-arm64
CLT: 14.3.0.0.1.1679647830
Xcode: 14.3
Rosetta 2: false

$ brew doctor
Your system is ready vĩ đại brew.

Verification

  • My "brew doctor output" says Your system is ready vĩ đại brew. and am still able vĩ đại reproduce my issue.
  • I ran brew update and am still able vĩ đại reproduce my issue.
  • I have resolved all warnings from brew doctor and that did not fix my problem.
  • I searched for recent similar issues at https:///Homebrew/homebrew-core/issues?q=is%3Aissue and found no duplicates.

What were you trying vĩ đại tự (and why)?

Trying vĩ đại copy a directory locally: RsyncProject/rsync#462

After the problem appeared when rsyncing from a remote host, I tried vĩ đại narrow down the problem by doing a local rsync only. The problem still persists, pointing towards a problem with the local homebrew rsync installation (/opt/homebrew/bin/rsync) on current macOS 13.3.
The native rsync shipped with macOS works (/usr/bin/rsync), as well as the same homebrew rsync on macOS 11.3.1.

What happened (include all command output)?

$ /opt/homebrew/bin/rsync -av dir1 dir2 
sending incremental tệp tin list
rsync: connection unexpectedly closed (77 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (5 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]
$ /opt/homebrew/bin/rsync --version    
rsync  version 3.2.7  protocol version 31
[...]
$ /usr/bin/rsync -av dir1 dir2
building tệp tin list ... done
dir1/random.bin

sent 1048841 bytes  received 42 bytes  2097766.00 bytes/sec
total size is 1048576  speedup is 1.00
$ /usr/bin/rsync --version    
rsync  version 2.6.9  protocol version 29
[...]
$ sw_vers 
ProductName:		macOS
ProductVersion:		13.3
BuildVersion:		22E252

Further details (comparison with macOS 11.3.1): RsyncProject/rsync#462

What did you expect vĩ đại happen?

A full clone of directory dir1 vĩ đại dir2.

Step-by-step reproduction instructions (by running brew commands)

[On macOS 13.3:]
brew install rsync
/opt/homebrew/bin/rsync -av dir1 dir2

wq9578 added the bug

Reproducible Homebrew/homebrew-core bug

label

Apr 29, 2023

The only patch we're applying is fileflags.diff
We configure with the following flags:

      --disable-debug
      --prefix=#{prefix}
      --with-rsyncd-conf=#{etc}/rsyncd.conf
      --with-included-popt=no
      --with-included-zlib=no
      --enable-ipv6

then lập cập make && make install. I don't see anything specific that could trigger this.

The native rsync shipped with macOS works

But it is a much older version: rsync version 2.6.9 protocol version 29

Well, I cannot reproduce the bug you're showing locally, on macOS 13.3.1 with ARM processor.

I also use an Apple M1 chip with macOS 13.3.1 (22E261).

But the problem remains:

$ /opt/homebrew/bin/rsync -av dir1 dir2
sending incremental tệp tin list
dir1/
rsync: connection unexpectedly closed (51 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (8 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

Interestingly, the command creates a directory dir2 containing an empty directory dir1:

$ find dir*   
dir1
dir1/x
dir1/y
dir2
dir2/dir1

I noticed you specified the fully-qualified path vĩ đại Homebrew rsync in your invocation. That, the protocol errors and your lack of issues on different platforms, all suggest that rsync is invoking a different copy of itself on your current platform vĩ đại handle the destination directory kết thúc of operations.

What's the output of:

echo $PATH
which -a rsync
PATH=/opt/homebrew/bin:$PATH rsync -av dir1 dir2

?

@wq9578 can you update, reinstall and retry? We have built a new version of the binaries.

I noticed you specified the fully-qualified path vĩ đại Homebrew rsync in your invocation. That, the protocol errors and your lack of issues on different platforms, all suggest that rsync is invoking a different copy of itself on your current platform vĩ đại handle the destination directory kết thúc of operations.

What's the output of:

echo $PATH
which -a rsync
PATH=/opt/homebrew/bin:$PATH rsync -av dir1 dir2

?

$ which -a rsync
/opt/homebrew/bin/rsync
/usr/bin/rsync

$ PATH=/opt/homebrew/bin:$PATH rsync -av dir1 dir2
sending incremental tệp tin list
dir1/x
dir1/y
rsync: connection unexpectedly closed (91 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (43 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

I skipped echo $PATH which discloses too much private information.
Please let bu know if you need vĩ đại know something specific.
But the infos [generator=3.2.7] and [sender=3.2.7] seem vĩ đại point vĩ đại the homebrew edition in both cases.

@wq9578 can you update, reinstall and retry? We have built a new version of the binaries.

Still doesn't work:

$ brew uninstall rsync
Uninstalling /opt/homebrew/Cellar/rsync/3.2.7... (11 files, 1MB)
$ brew install rsync 
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> New Casks
ddpm

==> Fetching rsync
==> Downloading https://ghcr.io/v2/homebrew/core/rsync/manifests/3.2.7_1
#################################################################################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/rsync/blobs/sha256:071de5ab73fa5f455d1861ac33b5f618f7672f53442ccb50a8c3af55312f58e0
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:071de5ab73fa5f455d1861ac33b5f618f7672f53442ccb50a8c3af
#################################################################################################################################### 100.0%
==> Pouring rsync--3.2.7_1.arm64_ventura.bottle.tar.gz
🍺  /opt/homebrew/Cellar/rsync/3.2.7_1: 11 files, 1MB
==> Running `brew cleanup rsync`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
$ rsync -av dir1 dir2 
sending incremental tệp tin list
created directory dir2
dir1/
dir1/x
dir1/y
rsync: connection unexpectedly closed (91 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(848) [sender=3.2.7]
$ which rsync
/opt/homebrew/bin/rsync
$ rsync --version
rsync  version 3.2.7  protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    xattrs, optional secluded-args, iconv, no prealloc, stop-at, crtimes,
    file-flags
Optimizations:
    no SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 sha1 none
Compress list:
    zstd lz4 zlibx zlib none
Daemon auth list:
    sha512 sha256 sha1 md5 md4

rsync comes with ABSOLUTELY NO WARRANTY.  This is không tính tiền software, and you
are welcome vĩ đại redistribute it under certain conditions.  See the GNU
General Public Licence for details.

I have the exact same macOS version, exact same rsync build, and I cannot reproduce:

meau /tmp $ rsync -av dir1 dir2       
sending incremental tệp tin list
created directory dir2
dir1/
dir1/x
dir1/y

sent 185 bytes  received 85 bytes  540.00 bytes/sec
total size is 0  speedup is 0.00
meau /tmp $ rsync --version    
rsync  version 3.2.7  protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    xattrs, optional secluded-args, iconv, no prealloc, stop-at, crtimes,
    file-flags
Optimizations:
    no SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 sha1 none
Compress list:
    zstd lz4 zlibx zlib none
Daemon auth list:
    sha512 sha256 sha1 md5 md4

rsync comes with ABSOLUTELY NO WARRANTY.  This is không tính tiền software, and you
are welcome vĩ đại redistribute it under certain conditions.  See the GNU
General Public Licence for details.

Can you lập cập brew test -v rsync, and does it work?

At this stage, either it is something specific vĩ đại your configuration, or vĩ đại the files you are transferring, but I cannot reproduce.

Can you lập cập brew test -v rsync, and does it work?

The last line says Error: Testing requires the latest version of rsync although I had re-installed rsync just a few minutes ago (see above: #129732 (comment)).

$ brew test -v rsync
Warning: test is a developer command, sánh Homebrew's
developer mode has been automatically turned on.
To turn developer mode off, run:
  brew developer off

==> Installing 'bundler' gem
Fetching bundler-2.3.26.gem
/opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/bin/bundle install
Fetching gem metadata from https://rubygems.org/.......
Fetching minitest 5.18.0
Fetching public_suffix 5.0.1
Fetching concurrent-ruby 1.2.2
Fetching zeitwerk 2.6.7
Installing zeitwerk 2.6.7
Installing public_suffix 5.0.1
Installing minitest 5.18.0
Fetching ast 2.4.2
Installing concurrent-ruby 1.2.2
Fetching bindata 2.4.15
Fetching msgpack 1.7.0
Installing ast 2.4.2
Using bundler 2.3.26
Fetching byebug 11.1.3
Installing bindata 2.4.15
Installing msgpack 1.7.0 with native extensions
Installing byebug 11.1.3 with native extensions
Fetching coderay 1.1.3
Fetching connection_pool 2.4.0
Installing coderay 1.1.3
Installing connection_pool 2.4.0
Fetching did_you_mean 1.6.3
Fetching diff-lcs 1.5.0
Installing did_you_mean 1.6.3
Fetching docile 1.4.0
Installing diff-lcs 1.5.0
Fetching unf_ext 0.0.8.2
Installing docile 1.4.0
Fetching regexp_parser 2.8.0
Installing regexp_parser 2.8.0
Installing unf_ext 0.0.8.2 with native extensions
Fetching hana 1.3.7
Installing hana 1.3.7
Fetching hpricot 0.8.6
Installing hpricot 0.8.6 with native extensions
Fetching json 2.6.3
Installing json 2.6.3 with native extensions
Fetching uri_template 0.7.0
Installing uri_template 0.7.0
Fetching mime-types-data 3.2023.0218.1
Installing mime-types-data 3.2023.0218.1
Fetching net-http-digest_auth 1.4.1
Installing net-http-digest_auth 1.4.1
Fetching racc 1.6.2
Installing racc 1.6.2 with native extensions
Fetching rubyntlm 0.6.3
Installing rubyntlm 0.6.3
Fetching webrick 1.8.1
Installing webrick 1.8.1
Fetching webrobots 0.1.2
Installing webrobots 0.1.2
Fetching method_source 1.0.0
Installing method_source 1.0.0
Fetching mustache 1.1.1
Installing mustache 1.1.1
Fetching parallel 1.23.0
Installing parallel 1.23.0
Fetching plist 3.7.0
Installing plist 3.7.0
Fetching rack 3.0.7
Installing rack 3.0.7
Fetching rainbow 3.1.1
Installing rainbow 3.1.1
Fetching rdiscount 2.2.7
Installing rdiscount 2.2.7 with native extensions
Fetching rexml 3.2.5
Installing rexml 3.2.5
Fetching rspec-support 3.12.0
Installing rspec-support 3.12.0
Fetching sorbet-runtime 0.5.10461
Installing sorbet-runtime 0.5.10461
Fetching ruby-progressbar 1.13.0
Installing ruby-progressbar 1.13.0
Fetching unicode-display_width 2.4.2
Installing unicode-display_width 2.4.2
Fetching ruby-macho 3.0.0
Installing ruby-macho 3.0.0
Fetching simplecov-html 0.12.3
Installing simplecov-html 0.12.3
Fetching simplecov_json_formatter 0.1.4
Installing simplecov_json_formatter 0.1.4
Fetching warning 1.3.0
Installing warning 1.3.0
Fetching addressable 2.8.4
Installing addressable 2.8.4
Fetching parser 3.2.2.0
Installing parser 3.2.2.0
Fetching elftools 1.2.0
Installing elftools 1.2.0
Fetching i18n 1.12.0
Installing i18n 1.12.0
Fetching tzinfo 2.0.6
Installing tzinfo 2.0.6
Fetching net-http-persistent 4.0.2
Installing net-http-persistent 4.0.2
Fetching ecma-re-validator 0.4.0
Installing ecma-re-validator 0.4.0
Fetching bootsnap 1.16.0
Installing bootsnap 1.16.0 with native extensions
Fetching mime-types 3.4.1
Installing mime-types 3.4.1
Fetching unf 0.1.4
Installing unf 0.1.4
Fetching pry 0.14.2
Installing pry 0.14.2
Fetching parallel_tests 3.13.0
Installing parallel_tests 3.13.0
Fetching nokogiri 1.13.10 (arm64-darwin)
Installing nokogiri 1.13.10 (arm64-darwin)
Fetching rspec-core 3.12.2
Installing rspec-core 3.12.2
Fetching rspec-expectations 3.12.3
Installing rspec-expectations 3.12.3
Fetching rspec-mocks 3.12.5
Installing rspec-mocks 3.12.5
Fetching rspec-sorbet 1.9.2
Installing rspec-sorbet 1.9.2
Fetching simplecov 0.22.0
Installing simplecov 0.22.0
Fetching rubocop-ast 1.28.0
Installing rubocop-ast 1.28.0
Fetching patchelf 1.4.0
Installing patchelf 1.4.0
Fetching activesupport 6.1.7.3
Installing activesupport 6.1.7.3
Fetching json_schemer 0.2.24
Installing json_schemer 0.2.24
Fetching domain_name 0.5.20190701
Installing domain_name 0.5.20190701
Fetching rspec-github 2.4.0
Installing rspec-github 2.4.0
Fetching rspec-retry 0.6.2
Installing rspec-retry 0.6.2
Fetching rspec_junit_formatter 0.6.0
Installing rspec_junit_formatter 0.6.0
Fetching rspec-its 1.3.0
Installing rspec-its 1.3.0
Fetching rspec 3.12.0
Installing rspec 3.12.0
Fetching simplecov-cobertura 2.1.0
Installing simplecov-cobertura 2.1.0
Fetching http-cookie 1.0.5
Installing http-cookie 1.0.5
Fetching mechanize 2.9.1
Fetching ronn 0.7.3
Installing mechanize 2.9.1
Installing ronn 0.7.3
Fetching rubocop 1.50.2
Installing rubocop 1.50.2
Fetching rubocop-capybara 2.18.0
Fetching rubocop-rails 2.19.1
Fetching rubocop-performance 1.17.1
Fetching rubocop-sorbet 0.7.0
Installing rubocop-capybara 2.18.0
Fetching rubocop-rspec 2.20.0
Installing rubocop-rails 2.19.1
Installing rubocop-sorbet 0.7.0
Installing rubocop-performance 1.17.1
Installing rubocop-rspec 2.20.0
Bundle complete! 37 Gemfile dependencies, 80 gems now installed.
Bundled gems are installed into `../../../opt/homebrew/Library/Homebrew/vendor/bundle`
Error: Testing requires the latest version of rsync

At this stage, either it is something specific vĩ đại your configuration, or vĩ đại the files you are transferring, but I cannot reproduce.

My configuration is regular (chip Apple M1, macOS 13.3.1 (22E261)) as well as the files:

$ mkdir dir1; touch dir1/x; ls -al > dir1/y; rsync -av dir1 dir2
sending incremental tệp tin list
created directory dir2
dir1/
dir1/x
dir1/y
rsync: connection unexpectedly closed (83 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (73 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

Well, I definitely cannot reproduce that, and the tests pass on our servers. I have no idea what your config is, or network settings, or where the issue comes from.

This is a local clone, hence network settings seem vĩ đại be irrelevant.
Besides that, network transfer with the other rsync version works perfectly.

Maybe I should try vĩ đại compile rsync manually vĩ đại see whether the problem is introduced by homebrew or stems from the rsync source itself.

In the minimal variant (configure --disable-md2man --disable-openssl --disable-xxhash --disable-zstd --disable-lz4) the current rsync version works.

After downloading and unpacking rsync-master.zip from https:///WayneD/rsync:

$ ./configure --disable-md2man --disable-openssl --disable-xxhash --disable-zstd --disable-lz4
$ make
[...]
$ mkdir dir1; touch dir1/x; ls -al > dir1/y; ./rsync -av dir1 dir2

sending incremental tệp tin list
created directory dir2
dir1/
dir1/x
dir1/y

sent 10.338 bytes  received 85 bytes  trăng tròn.846,00 bytes/sec
total size is 10.154  speedup is 0,97
$ ./rsync --version
rsync  version 3.3.0pre1  protocol version 31
Copyright (C) 1996-2023 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    xattrs, optional secluded-args, iconv, no prealloc, stop-at, crtimes
Optimizations:
    no SIMD-roll, no asm-roll, no openssl-crypto, no asm-MD5
Checksum list:
    md5 md4 none
Compress list:
    zlibx zlib none
Daemon auth list:
    md5 md4

rsync comes with ABSOLUTELY NO WARRANTY.  This is không tính tiền software, and you
are welcome vĩ đại redistribute it under certain conditions.  See the GNU
General Public Licence for details.

I disabled the additional features because in the first lập cập configure complained although I had installed the required packages via homebrew as instructed at the links below:

Configure found the following issues:

- You need python3 and either the cmarkgfm OR commonmark python3 lib in order
  vĩ đại build manpages based on the git source (manpages are included in the
  official release tar files).
- Failed vĩ đại find openssl/md4.h and openssl/md5.h for openssl crypto lib tư vấn.
- Failed vĩ đại find xxhash.h for xxhash checksum tư vấn.
- Failed vĩ đại find zstd.h for zstd compression tư vấn.
- Failed vĩ đại find lz4.h for lz4 compression tư vấn.

See the INSTALL tệp tin for hints on how vĩ đại install the missing libraries and/or
how vĩ đại generate (or fetch) manpages:
    https:///WayneD/rsync/blob/master/INSTALL.md

To disable one or more features, the relevant configure options are:
    --disable-md2man
    --disable-openssl
    --disable-xxhash
    --disable-zstd
    --disable-lz4

configure.sh: error: Aborting configure run
make: *** No targets specified and no makefile found.  Stop.

What's the output of

ls -la "$(brew --prefix)/etc"
cat "$(brew --prefix)/etc"/rsyncd*

?

$ ls -la "$(brew --prefix)/etc"
cat "$(brew --prefix)/etc"/rsyncd*
total 184
drwxrwx---  38 user  admin   1216 29 Apr 17:10 .
drwxr-xr-x  34 user  admin   1088 30 Apr 17:39 ..
[Nothing related vĩ đại rsync ...]
zsh: no matches found: /opt/homebrew/etc/rsyncd*

Can you try applying this patch vĩ đại rsync.rb?

diff --git a/Formula/rsync.rb b/Formula/rsync.rb
index c50cd26a25a..858ec51b14b 100644
--- a/Formula/rsync.rb
+++ b/Formula/rsync.rb
  -33,15 +33,6   class Rsync < Formula
 
   uses_from_macos "zlib"
 
-  # hfs-compression.diff has been marked by upstream as broken since 3.1.3
-  # and has not been reported fixed as of 3.2.7
-  patch do
-    url "https://download.samba.org/pub/rsync/src/rsync-patches-3.2.7.tar.gz"
-    mirror "https://www.mirrorservice.org/sites/rsync.samba.org/rsync-patches-3.2.7.tar.gz"
-    sha256 "e7e5e9ea0b6dd7639c7a5c6f49a1d06be20d449d59f60ba59b238e1aa79b13f0"
-    apply "patches/fileflags.diff"
-  end
-
   def install
     args = %W[
       --with-rsyncd-conf=#{etc}/rsyncd.conf

You'll need vĩ đại do

export HOMEBREW_NO_INSTALL_FROM_API=1
brew update

before trying vĩ đại applying the patch, and then after applying the patch,

brew reinstall --build-from-source rsync

To apply the patch, you can copy the diff above and tự something like

cd "$(brew --repository homebrew/core)"
pbpaste | patch -p1

Still the same problem after patching /opt/homebrew/Cellar/rsync/3.2.7_1/.brew/rsync.rb according vĩ đại your instructions:

$ mkdir dir1; touch dir1/x; ls -al > dir1/y; rsync -av dir1/ dir2; ls dir2
sending incremental tệp tin list
created directory dir2
./
x
y
rsync: connection unexpectedly closed (69 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (72 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

Still the same problem after patching /opt/homebrew/Cellar/rsync/3.2.7_1/.brew/rsync.rb according vĩ đại your instructions

That is definitely not the tệp tin I asked you vĩ đại patch. The tệp tin you need vĩ đại patch should be in "$(brew --repository homebrew/core)/Formula".

To be clear, you must lập cập all of the following steps, after copying the diff in my earlier comment:

export HOMEBREW_NO_INSTALL_FROM_API=1
brew update
cd "$(brew --repository homebrew/core)"
pbpaste | patch -p1
brew reinstall --build-from-source rsync

Sorry, the tin nhắn I received seems vĩ đại be based on the first edit of your comment.

I now patched /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/rsync.rb, but still the same:

$ mkdir dir1; touch dir1/x; ls -al > dir1/y; rsync -av dir1/ dir2; ls dir2
sending incremental tệp tin list
created directory dir2
./
x
y
rsync: connection unexpectedly closed (69 bytes received sánh far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [generator=3.2.7]
rsync: connection unexpectedly closed (72 bytes received sánh far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]

So the issue does not come from the patch, and we cannot reproduce it on our own machines (the test passes on all CI machines, and your example passes on mine). There is definitely something occurring that is specific vĩ đại your machine, but it's hard vĩ đại know what. I would recommend asking rsync authors for directions vĩ đại debug it.

Yup, can't reproduce this either:

❯ l -T
Permissions Size User     Date Modified Name
drwx------     - carlocab  1 May 21:40  .
drwxr-xr-x     - carlocab  1 May 21:40  ├── dir1
.rw-r--r--     0 carlocab  1 May 21:40  │  └── foo
drwxr-xr-x     - carlocab  1 May 21:40  └── dir2

❯ which -a rsync
/opt/homebrew/bin/rsync
/usr/bin/rsync

❯ rsync -av dir1 dir2
building tệp tin list ... done
dir1/
dir1/foo

sent 141 bytes  received 48 bytes  378.00 bytes/sec
total size is 0  speedup is 0.0

❯ l -T
Permissions Size User     Date Modified Name
drwx------     - carlocab  1 May 21:43  .
drwxr-xr-x     - carlocab  1 May 21:40  ├── dir1
.rw-r--r--     0 carlocab  1 May 21:40  │  └── foo
drwxr-xr-x     - carlocab  1 May 21:44  └── dir2
drwxr-xr-x     - carlocab  1 May 21:40     └── dir1
.rw-r--r--     0 carlocab  1 May 21:40        └── foo

Closing this out since this doesn't seem vĩ đại be reproducible, which means that there isn't much we can tự about this here.

@wq9578 - is there any sort of firewall (e.g. Little Snitch), antivirus, endpoint security/DLP, or enterprise management software (e.g. Jamf) running on the machine where this is happening?

Not a definitive lead, but wondering if that could be affecting the operation.

@wq9578 - is there any sort of firewall (e.g. Little Snitch), antivirus, endpoint security/DLP, or enterprise management software (e.g. Jamf) running on the machine where this is happening?

Nothing at all except the native macOS firewall.
Just as a reminder: the clone is made locally (not via network), and the other rsync version shipped with macOS (which I am currently resorting to) works well via the network.

Just asking due vĩ đại the presence of the specific text connection unexpectedly closed in the error. In that case I also don't have any ideas.

github-actions bot locked as resolved and limited conversation vĩ đại collaborators

Jun 2, 2023

Sign up for free to subscribe vĩ đại this conversation on GitHub. Already have an account? Sign in.