From my tests, it doesn't seem like a problem related to ipv6, but with high load in 3B+ version. In my case its easy to reproduce if I use ipforward and connection state over 20.04 server pi image, more less from scratch, static ip, pihole, tun0 and no ipv6.
root@pin:/home/janzun# uname -a
Linux pin 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
# lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
|__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
So:
# cat /scripts/7800-authorized.sh
#!/bin/sh
# The number of Ips and lines at your convenience, increasing the -c number has no sense.
ping -c1 192.168.1.1 > /dev/null && exit 0
ping -c1 192.168.1.45 > /dev/null && exit 0
Hi all,
From my tests, it doesn't seem like a problem related to ipv6, but with high load in 3B+ version. In my case its easy to reproduce if I use ipforward and connection state over 20.04 server pi image, more less from scratch, static ip, pihole, tun0 and no ipv6.
root@pin: /home/janzun# uname -a
Linux pin 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
# sysctl -p conf.all. disable_ ipv6 = 1 conf.default. disable_ ipv6 = 1 conf.lo. disable_ ipv6 = 1
net.ipv6.
net.ipv6.
net.ipv6.
net.ipv4.ip_forward = 1|0 -> it depends
First test:
# echo 0 > /proc/sys/ net/ipv4/ ip_forward OUTPUT ACCEPT /*/10GB. bin ==> Some error in one of the attemps
# iptables -F; iptables -X; iptables -P INPUT|FORWARD|
# wget -O /dev/null https:/
Second test (forget the purpose of the rules):
# echo 1 > /proc/sys/ net/ipv4/ ip_forward /*/10GB. bin ==> Allways stopped at about 1.5GB and crash (same with -p udp).
# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# wget -O /dev/null https:/
Kernel log:
Apr 25 18:11:21 localhost kernel: [22872.242430] ------------[ cut here ]------------ sch_generic. c:447 dev_watchdog+ 0x324/0x330 0x324/0x330 0x324/0x330 0x324/0x330 fn+0x3c/ 0x178 part.0+ 0x204/0x330 softirq+ 0x40/0x78 0x168/0x384 domain_ irq+0x70/ 0xc0 arm_irqchip_ handle_ irq+0x74/ 0xe0 idle+0x3c/ 0x1c8 idle_call+ 0x24/0x48 entry+0x28/ 0x30 start_kernel+ 0x134/0x1b8
Apr 25 18:11:21 localhost kernel: [22872.242515] NETDEV WATCHDOG: eth0 (lan78xx): transmit queue 0 timed out
Apr 25 18:11:21 localhost kernel: [22872.242716] WARNING: CPU: 1 PID: 0 at net/sched/
Apr 25 18:11:21 localhost kernel: [22872.242733] Modules linked in: 8021q garp mrp stp llc xt_multiport xt_state xt_conntrack xt_tcpudp iptab
Apr 25 18:11:21 localhost kernel: [22872.242956] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G C E 5.4.0-1008-raspi #8-Ubuntu
Apr 25 18:11:21 localhost kernel: [22872.242962] Hardware name: Raspberry Pi 3 Model B Plus Rev 1.3 (DT)
Apr 25 18:11:21 localhost kernel: [22872.242972] pstate: 60400005 (nZCv daif +PAN -UAO)
Apr 25 18:11:21 localhost kernel: [22872.242985] pc : dev_watchdog+
Apr 25 18:11:21 localhost kernel: [22872.242995] lr : dev_watchdog+
Apr 25 18:11:21 localhost kernel: [22872.243000] sp : ffff80001000bd60
Apr 25 18:11:21 localhost kernel: [22872.243005] x29: ffff80001000bd60 x28: 0000000000000140
Apr 25 18:11:21 localhost kernel: [22872.243014] x27: 00000000ffffffff x26: 0000000000000000
Apr 25 18:11:21 localhost kernel: [22872.243023] x25: ffff00002f650000 x24: ffffa8d07f545018
Apr 25 18:11:21 localhost kernel: [22872.243031] x23: 0000000000000000 x22: 0000000000000001
Apr 25 18:11:21 localhost kernel: [22872.243039] x21: ffff00002f650480 x20: ffffa8d07fa07000
Apr 25 18:11:21 localhost kernel: [22872.243047] x19: 0000000000000000 x18: 0000000000000000
Apr 25 18:11:21 localhost kernel: [22872.243055] x17: ffff800010876378 x16: 0000000000000000
Apr 25 18:11:21 localhost kernel: [22872.243063] x15: ffff000039234090 x14: ffffffffffffffff
Apr 25 18:11:21 localhost kernel: [22872.243072] x13: 0000000000000000 x12: ffffa8d07fb3e000
Apr 25 18:11:21 localhost kernel: [22872.243081] x11: ffffa8d07fa2c000 x10: 0000000000000000
Apr 25 18:11:21 localhost kernel: [22872.243088] x9 : 0000000000000004 x8 : 00000000000001cb
Apr 25 18:11:21 localhost kernel: [22872.243096] x7 : 0000000000000000 x6 : 0000000000000001
Apr 25 18:11:21 localhost kernel: [22872.243103] x5 : 0000000000000000 x4 : 0000000000000002
Apr 25 18:11:21 localhost kernel: [22872.243111] x3 : ffffa8d07ee15790 x2 : 0000000000000040
Apr 25 18:11:21 localhost kernel: [22872.243119] x1 : 3cb8609474fd0d00 x0 : 0000000000000000
Apr 25 18:11:21 localhost kernel: [22872.243128] Call trace:
Apr 25 18:11:21 localhost kernel: [22872.243138] dev_watchdog+
Apr 25 18:11:21 localhost kernel: [22872.243155] call_timer_
Apr 25 18:11:21 localhost kernel: [22872.243168] __run_timers.
Apr 25 18:11:21 localhost kernel: [22872.243177] run_timer_
Apr 25 18:11:21 localhost kernel: [22872.243188] __do_softirq+
Apr 25 18:11:21 localhost kernel: [22872.243199] irq_exit+0xb0/0xe8
Apr 25 18:11:21 localhost kernel: [22872.243213] __handle_
Apr 25 18:11:21 localhost kernel: [22872.243222] bcm2836_
Apr 25 18:11:21 localhost kernel: [22872.243230] el1_irq+0x108/0x200
Apr 25 18:11:21 localhost kernel: [22872.243242] arch_cpu_
Apr 25 18:11:21 localhost kernel: [22872.243255] default_
Apr 25 18:11:21 localhost kernel: [22872.243269] do_idle+0x210/0x2a0
Apr 25 18:11:21 localhost kernel: [22872.243278] cpu_startup_
Apr 25 18:11:21 localhost kernel: [22872.243291] secondary_
Apr 25 18:11:21 localhost kernel: [22872.243297] ---[ end trace d80fb39a4340a900 ]---
Workaround 1, reboot on kernel message:
# cat /etc/rsyslog. d/60-lan7800- reboot. conf
:msg, regex, "transmit queue 0 timed" ^/usr/sbin/reboot
Workaround 2, better for me:
# crontab -e
* * * * * /scripts/ 7800-authorized .sh
Mine is version 3B+ with the following usb table:
# lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
|__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
So:
# cat /scripts/ 7800-authorized .sh
#!/bin/sh
# The number of Ips and lines at your convenience, increasing the -c number has no sense.
ping -c1 192.168.1.1 > /dev/null && exit 0
ping -c1 192.168.1.45 > /dev/null && exit 0
echo 0 > /sys/devices/ platform/ soc/3f980000. usb/usb1/ 1-1/1-1. 1/1-1.1. 1/authorized platform/ soc/3f980000. usb/usb1/ 1-1/1-1. 1/1-1.1. 1/authorized
sleep 5
echo 1 > /sys/devices/
logger [Error] Rebooting network iface due to module fail...
# eol
You cannot do a mix (rsyslog and 0/1 authorized) because kernel message happends only first time, until reboot.
Hope it helps you.