Hi,
I can reproduce your error.
Today I updated my RPI4 from a build of Oct 23 to Dec 6. And I can reproduce
the problem.
After about 2 hours scp exits with:
client_loop: send disconnect: Broken pipe
scp: Connection closed
Working:
FreeBSD rpi4 15.0-CURRENT FreeBSD 15.0-CURRENT #4 main-d2e7bb630b8-dirty: Wed
Oct 23 00:55:12 CEST 2024
ronald@rpi4:/data/ronald/freebsd/obj/data/ronald/freebsd/src/main/arm64.aarch64/sys/GENERIC-NODEBUG
arm64
Broken:
FreeBSD rpi4 15.0-CURRENT FreeBSD 15.0-CURRENT #5 main-839fb85336a-dirty: Sat
Dec 7 22:33:27 CET 2024
ronald@rpi4:/data/ronald/freebsd/obj/data/ronald/freebsd/src/main/arm64.aarch64/sys/GENERIC-NODEBUG
arm64
A cronjob which does a scp to another server didn't work anymore. When I go
back to the previous BE it works fine again.
Ipfw disable firewall also makes the scp work.
Scp also seems to work fine if I replace the statefull firewall rules with stateless
"pass all from any to any".
Regards,
Ronald.
Op 06-12-2024 om 21:09 schreef FreeBSD User:
Am Fri, 6 Dec 2024 19:40:02 +0100 (CET)
Ronald Klop <ronald-li...@klop.ws> schrieb:
Might be useful to share your ipfw config.
Sorry, my posting must have been disturbing (having in mind a "deny any rule
and then
disabling the FW ...).
Well, the IPFW setup itself is explained quickly - I use almost the vanilla
rc.conf-issued
IPFW (settings: firewall_type="workstation", firewall_logif="YES",
firewall_myservices="22/tcp", firewall_allowservices="any"). The hosts in
question have the
following kernel configuration, I provide the option tags that might be of
interest or, if
not, just for the record, as they are not part of GENERIC, see below.
Also, I'll provide some sysctl setting performed via /etc/sysctl.conf.local,
see below.
The configuration and settings have been mostly unchanged over a couple of
months for now and
did not induce trouble so far.
As it deemed fit regarding time and my limited skills, I disabled and enabled
piece by piece
of the MAC_ and NETGRAPH_ options - without any success so far - my
"measurement" is fetching
emails via claws-mail (all TLS). claws-mail reports "corrupted/broken stream",
does have
authetication issues and is de facto unusable - it doesn't refresh IMAP based
email fetches
and doesn't even quit without a hard kill.
Another "indicator" is the time taken to "git pull" of ZFS filesystems: cloning
and pulling
takes unusual long (/usr/src is UFS/FFS, /usr/ports on a ZFS pool and since the
problem
occured, it makes a mutual difference).
While git pull or clone mutually stuck and claws-mail is endlessly
fetching/authenticating
emails and never responding back in a usable manner, performing
"ipfw disable firewall"
makes all of a sudden the system work again as usual and expected.
As reported - the problem spreads across all of my CURRENT hosts as I'm going
to update them
towards a recent CURRENT (they all share similar static kernel configs as
described here). Most
of the boxes do not show the weird reluctant behaviour when pulling via git,
but weren't
capable of cloning, bailing out with the timeout reported earlier.
I use one CURRENT box as my personal desktop, so no other (server) CURRENT show
the Email
problem in detail as described.
And, for the record: I haven't commented out the "options IPFIREWALL" yet
in the kernel
config ...
Kind regards
oh
[ KERNEL config different from vanilla GENERIC ]
options RATELIMIT
options ZFS
options TCPHPTS
options MROUTING
options IPSEC
options SCTP
options MAC_BSDEXTENDED
options MAC_PORTACL
options MAC_IPACL
options MAC_NTPD
#options MAC_DO
options NETGRAPH
options NETGRAPH_IPFW
options NETGRAPH_ETHER
options NETGRAPH_EIFACE
options NETGRAPH_VLAN
#options NETGRAPH_NAT
options NETGRAPH_DEVICE
#options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_KSOCKET
options NETGRAPH_NETFLOW
#options NETGRAPH_CAR
# IPFW firewall
options IPFIREWALL
options IPFIREWALL_VERBOSE
options DUMMYNET # traffic shaper
options BPF_JITTER # adds support for BPF just-in-time compiler.
# Pseudo devices not in GENERIC.
device enc # IPsec device
device stf # 6to4 IPv6 over IPv4 encapsulation
device carp # Common address redundancy protocol
device lagg # Link aggregation
device gre # GRE Tunnel
device epair # A pair of virtual back-to-back connected Ethernet
interfaces
device if_bridge # bridge device
device vxlan # Virtual eXtensible LAN interface
For the MAC_ Modules: the appropriate OIDs (sysctl) are disabled as far as the
MAC module
influence the initial behaviour if unconfigured, for instance
(/etc/sysctl.conf.local)
[ /etc/sysctl.conf.local ]
security.mac.bsdextended.enabled=0
security.mac.mls.enabled=0
security.mac.portacl.enabled=0
security.mac.do.enabled=0
security.mac.ipacl.ipv6=0
security.mac.ipacl.ipv4=0
#
net.bpf.optimize_writers=1
#
net.inet.ip.fw.verbose=1
#net.inet.ip.fw.verbose_limit=10
net.inet.ip.fw.dyn_keep_states=1
Van: FreeBSD User <free...@walstatt-de.de>
Datum: 6 december 2024 03:47
Aan: freebsd-current@freebsd.org, freebsd-i...@freebsd.org
Onderwerp: Re: HELP! fetch: stuck forever OR error: RPC failed: curl 56 recv
failure:
Operation timed out
Am Thu, 5 Dec 2024 17:33:54 +0100
FreeBSD User schrieb:
I found the culprit!
Disabling IPFW ("ipfw disable firewall") turns system back to normal!
For the record: on recent CURRENT, since approx. Nov. 30 and/or December 1st
CURRENT seems
to corrupt network connections.
IPFW is compiled statically into the kernel.
The problem sketched below can be reproduced in a more or less obvious manner
on recent
CURRENT: git pull/git clone of a regular FreeBSD source repo or ports via
git+https takes
either a couple of time (up to several mintes to initiate the pull) - or, in
some worse
cases here, the box runs into
error: RPC failed; curl 56 Recv failure: Operation timed out
claws-mail complains about "corrupted/broken stream", fetching emails takes
Aeons -
forever, the client does not come back even after several hours.
On Thu, 5 Dec 2024 16:55:00 +0100
Daniel Tameling wrote:
On Thu, Dec 05, 2024 at 11:51:03AM +0100, FreeBSD User wrote:
On Wed, 04 Dec 2024 17:20:39 +0000
"Dave Cottlehuber" wrote:
Thank you very much for responding!
On Tue, 3 Dec 2024, at 19:46, FreeBSD User wrote:
On most recent CURRENT (on some boxes of ours, not all) fetch/git seem
to be stuck
forever fetching tarballs from ports, fetching Emails via claws-mail
(TLS), opening
websites via librewolf and firefox or pulling repositories via git.
CURRENT: FreeBSD 15.0-CURRENT #1 main-n273978-b5a8abe9502e: Mon Dec 2
23:11:07 CET 2024
amd64
When performing "git pull" und /usr/ports, I received after roughly 5-7 minutes:
error: RPC failed: curl 56 recv failure: Operation timed out
Generally it would be worth seeing if the HTTP(S) layers are doing the right
thing
or not, and then working down from there, to tcpdump / wireshark and then if
necessary into kernel itself.
My skills are limited, according to packet analysis utilizing tcpdum/wireshark
(and
theory,of course). I tried due to "a feeling" my used older Intel based NIC
could
have some checksum issues like in the past (I saw e1000 driver updates recently
flowing into FreeBSD CURRENT).
If fetch fails reliably in ports distfile fetching, then isolate a suitable
tarball, and try it again in curl, with tcpdump already prepared to capture
traffic to the remote host.
tcpdump -w /tmp/curl.pcap -i ... host ...
env SSLKEYLOGFILE=/tmp/ssl.keys curl -vsSLo /dev/null --trace
/tmp/curl.log https://what.ev/er
I would guess that between the two something useful should pop up.
I like opening the pcap in wireshark, it often has angry red and black
highlighted
lines already giving me a hint.
The SSLKEYLOGFILE can be imported into wireshark, and allows decrypting the TLS
traffic as well in case there are issues further in. Very handy,
see https://everything.curl.dev/usingcurl/tls/sslkeylogfile.html for how to do
that.
If your issues only occur with git pull, its also curl inside and supports
similar
debugging. Ferreting
through
https://stackoverflow.com/questions/6178401/how-can-i-debug-git-git-shell-related-problems/56094711#56094711
should get you similar info.
A+
Dave
Thanks for the hints and precious tips! I'll digg deeper into the matter.
In the meanwhile, I updated some other machines running CURRENT since approx.
two
weeks with an older CURRENT to the most recent one - and face similar but not
identical problems!
Updating exiting FreeBSD repositories, like src.git and ports.git, show no
problems
except they take longer to accomplish than expected.
Cloning a repo is impossible, after 10 or 15 minutes I receive a timeout.
On aCURRENT recently updated and worked flawlessly before (CURRENT now: FreeBSD
15.0-CURRENT #5 main-n274014-b2bde8a6d39: Wed Dec 4 22:22:22 CET 2024 amd64),
cloning attempts for 14.2-RELENG ends up in this mess:
# git clone --branch releng/14.2 https://git.freebsd.org/src.git
14.2-RELENG/src/
Cloning into '14.2-RELENG/src'...
error: RPC failed; curl 56 Recv failure: Operation timed out
fatal: expected 'packfile'
This is nasty. The host now in question has an i350 based dual-port NIC - the
host's
kernel is very similar to the box I reported the issue first time, both do have
customized kernels (in most cases, I compile several modules like ZFS and
several NETGRAPH modules statically into the kernel - a habit inherited from a
small
FBSD project I configured (I wouldn't say developed) which does not allow
loadable
kernel modules due to regulations.
I hoped others would stumble over this tripwire in recent CURRENT sources,
since the
phenomena and its distribution over a bunch of CURRENT boxes with different OS
states
seemingly show different behviour.
And for the record: I also build my ports via poudriere and mostly via make. I
also
rebuilt in a two day's marathon all packages via "make -f" - for librewolf,
curl and
so on to ensure having latest sources/packages.
(I repeat myself here again, sorry, its for the record).
Will report in on further development and "investigations"
Kind regards and thanks,
oh
This is a shot into the dark but is this a virtual machine? VirtualBox 7.1.0
had some
networking issues that got fixed later.
No, pure Hardware and FreeBSD ...
Otherwise I would start with ping and traceroute to figure out if they show
this issue
and where it occurs.
--
O. Hartmann