[Cerowrt-devel] cerowrt issues (3.10.24-8)

Sebastian Moeller moeller0 at gmx.de
Wed Jan 29 07:45:50 EST 2014


Hi Dave,

quick question, how does one turn of logging for babeld? It seems that if daemonized it defaults to logging to /var/log/babeld.log (or similar). Is setting the log file to /dev/null really the answer?
	(Since I have no the IPv6 issue not yet resolved, I assume babeld is unhappy) I resorted to stopping babeld completely, but that feels like a crutch…

Best
	Sebastian



On Jan 27, 2014, at 22:14 , Dave Taht <dave.taht at gmail.com> wrote:

> certainly turn off the babeld log! I will leave it off in the next release.
> 
> On Mon, Jan 27, 2014 at 4:10 PM, Steve Jenson <stevej at fruitless.org> wrote:
>> Looking more, the buffer errors are showing up in syslog well before tmpfs
>> fills up. Is the memtester openwrt package available for cerowrt? I don't
>> see it under `Available packages`.
>> 
>> Thanks,
>> Steve
>> 
>> 
>> On Mon, Jan 27, 2014 at 1:06 PM, Steve Jenson <stevej at fruitless.org> wrote:
>>> 
>>> On Fri, Jan 24, 2014 at 3:23 PM, Dave Taht <dave.taht at gmail.com> wrote:
>>>> 
>>>> On Fri, Jan 24, 2014 at 6:08 PM, Steve Jenson <stevej at fruitless.org>
>>>> wrote:
>>>>> Hi everybody,
>>>>> 
>>>>> I've been using cerowrt as a secondary wifi network (just a single AP
>>>>> for
>>>>> now) for a few weeks now. Recently, my wndr3800 got stuck in a bad
>>>>> state and
>>>>> eventually rebooted. I've had this happen a few times now and am
>>>>> looking for
>>>>> ways to debug the issue. I'm new to cerowrt and openwrt so any advice
>>>>> is
>>>>> appreciated.
>>>>> 
>>>>> Since I use it as a secondary network, this is no way critical.
>>>> 
>>>> Yea! I appreciate caution before putting alpha software on your gw.
>>>> 
>>>>> I'm not
>>>>> looking for free tech support but I couldn't find anything on the wiki
>>>>> about
>>>>> troubleshooting. I'd love to start a page and write some shell scripts
>>>>> to
>>>>> diagnose and report issues. I know that a cerowrt router is meant to be
>>>>> a
>>>>> research project rather a consumer device but these things seem helpful
>>>>> regardless.
>>>> 
>>>> Sure, let me know your wiki account. I have been lax about granting
>>>> access of late as the signup process is overrun by spammers.
>>> 
>>> 
>>> My username is stevej on the wiki. Thanks!
>>> 
>>> 
>>>> 
>>>>> Please let me know if you'd prefer I not email the list with these
>>>>> issues or
>>>>> if you'd rather I used trac or a different forum.
>>>>> 
>>>> 
>>>> The list is where most stuff happens. Also in the irc channel.
>>>> 
>>>> If it gets to where it needs to be tracked we have a bugtracker at
>>>> 
>>>> http://www.bufferbloat.net/projects/cerowrt/issues
>>>> 
>>>> The first question I have is: Are you on comcast? Cerowrt
>>>> had a dhcpv6-pd implementation that "just worked" from feburary through
>>>> december. Regrettably they changed the RA announcement interval
>>>> to a really low number around then... and this triggers a firewall reload
>>>> every minute on everything prior to the release I point to below.
>>>> 
>>>> If there is a memory leak somewhere that would have triggered it.
>>> 
>>> 
>>> I am on AT&T ADSL2+ with a Motorola NVG510 modem.
>>> 
>>> 
>>>> 
>>>>> In this state, I can connect to the cerowrt base station via wifi but
>>>>> am
>>>>> unable to route packets to the internet. I can connect to :81 and see
>>>>> the
>>>>> login page but logging in results in a lua error at `/cgi-bin/luci`
>>>>> 
>>>>> 
>>>>>  /usr/lib/lua/luci/dispatcher.lua:448: Failed to execute function
>>>>> dispatcher target for entry '/'.
>>>>>  The called action terminated with an exception:
>>>>>  /usr/lib/lua/luci/sauth.lua:87: Session data invalid!
>>>>>  stack traceback:
>>>>>  [C]: in function 'assert'
>>>>>  /usr/lib/lua/luci/dispatcher.lua:448: in function 'dispatch'
>>>>>  /usr/lib/lua/luci/dispatcher.lua:195: in function
>>>>> </usr/lib/lua/luci/dispatcher.lua:194>
>>>>> 
>>>>> I can ssh into the device and cat various log files until the router
>>>>> hangs
>>>>> and reboots. here's a few relevant lines from my terminal history
>>>>> before the
>>>>> device rebooted (I'm assuming a watchdog kicked in and rebooted it).
>>>>> 
>>>>> root at buffy2-1:~# ping google.com
>>>>> ping: bad address 'google.com'
>>>>> root at buffy2-1:~# free
>>>>>             total         used         free       shared      buffers
>>>>> Mem:        126336       110332        16004            0         5616
>>>>> -/+ buffers:             104716        21620
>>>>> Swap:            0            0            0
>>>>> root at buffy2-1:~# uptime
>>>>> 02:08:54 up 2 days,  1:26,  load average: 0.10, 0.21, 0.17
>>>>> root at buffy2-1:~# dmesg
>>>>> [    0.000000] Linux version 3.10.24 (cero2 at snapon) (gcc version 4.6.4
>>>>> (OpenWrt/Linaro GCC 4.6-2013.05 r38226) ) #1 Tue Dec 24
>>>>> 10:50:15 PST 2013
>>>>> [skipping some lines]
>>>>> 
>>>>> [   13.156250] Error: Driver 'gpio-keys-polled' is already registered,
>>>>> aborting...
>>>>> [   19.414062] IPv6: ADDRCONF(NETDEV_UP): ge00: link is not ready
>>>>> [   19.421875] ar71xx: pll_reg 0xb8050010: 0x11110000
>>>>> [   19.429687] se00: link up (1000Mbps/Full duplex)
>>>>> [   22.140625] IPv6: ADDRCONF(NETDEV_UP): sw00: link is not ready
>>>>> [   23.351562] IPv6: ADDRCONF(NETDEV_CHANGE): sw00: link becomes ready
>>>>> [   23.757812] ar71xx: pll_reg 0xb8050014: 0x11110000
>>>>> [   23.757812] ge00: link up (1000Mbps/Full duplex)
>>>>> [   23.773437] IPv6: ADDRCONF(NETDEV_CHANGE): ge00: link becomes ready
>>>>> 
>>>>> root at buffy2-1:~# ifconfig
>>>>> ge00      Link encap:Ethernet  HWaddr 2C:B0:5D:A0:C5:B1
>>>>>          inet addr:192.168.1.138  Bcast:192.168.1.255
>>>>> Mask:255.255.255.0
>>>>>          inet6 addr: fe80::2eb0:5dff:fea0:c5b1/64 Scope:Link
>>>>>          inet6 addr: 2602:30a:2cdb:330:2eb0:5dff:fea0:c5b1/64
>>>>> Scope:Global
>>>>>          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>>>>          RX packets:1469670 errors:0 dropped:8 overruns:0 frame:0
>>>>>          TX packets:547733 errors:0 dropped:0 overruns:0 carrier:0
>>>>>          collisions:0 txqueuelen:1000
>>>>>          RX bytes:229243410 (218.6 MiB)  TX bytes:57304808 (54.6 MiB)
>>>>>          Interrupt:5
>>>>> 
>>>>> lo        Link encap:Local Loopback
>>>>>          inet addr:127.0.0.1  Mask:255.0.0.0
>>>>>          inet6 addr: ::1/128 Scope:Host
>>>>>          UP LOOPBACK RUNNING  MTU:65536  Metric:1
>>>>>          RX packets:23689 errors:0 dropped:0 overruns:0 frame:0
>>>>>          TX packets:23689 errors:0 dropped:0 overruns:0 carrier:0
>>>>>          collisions:0 txqueuelen:0
>>>>>          RX bytes:2612713 (2.4 MiB)  TX bytes:2612713 (2.4 MiB)
>>>>> 
>>>>> pimreg    Link encap:UNSPEC  HWaddr
>>>>> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
>>>>>          UP RUNNING NOARP  MTU:1472  Metric:1
>>>>>          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>>>>          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>>>>          collisions:0 txqueuelen:0
>>>>>          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>>>> 
>>>>> se00      Link encap:Ethernet  HWaddr 2E:B0:5D:A0:C5:B0
>>>>>          inet addr:172.30.42.1  Bcast:172.30.42.31
>>>>> Mask:255.255.255.224
>>>>>          inet6 addr: 2602:30a:2cdb:330:2eb0:5dff:fea0:c5b1/64
>>>>> Scope:Global
>>>> 
>>>> How are you assigning your ipv6 addresses?
>>> 
>>> 
>>> It's been a while since I messed with this but I think IPv6 is assigned
>>> thanks to 6relayd? My modem has IPv6 enabled but no DHCPv6 options that I
>>> can find. Here's how cerowrt is configured.
>>> 
>>> root at buffy2-1:/overlay/etc/config# cat 6relayd
>>> config server 'default'
>>>  option fallback_relay 'rd dhcpv6 ndp'
>>>  list network 'ge00'
>>>  list network 'ge01'
>>>  list network 'gw00'
>>>  list network 'gw01'
>>>  list network 'gw10'
>>>  list network 'gw11'
>>>  list network 'se00'
>>>  list network 'sw00'
>>>  list network 'sw10'
>>>  option rd 'relay'
>>>  option dhcpv6 'relay'
>>>  option ndp 'relay'
>>>  option master 'ge00'
>>> 
>>>> 
>>>>>          inet6 addr: fe80::2cb0:5dff:fea0:c5b0/64 Scope:Link
>>>>>          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>>>>          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>>>>          TX packets:191740 errors:0 dropped:0 overruns:0 carrier:0
>>>>>          collisions:0 txqueuelen:1000
>>>>>          RX bytes:0 (0.0 B)  TX bytes:42184988 (40.2 MiB)
>>>>>          Interrupt:4
>>>>> 
>>>>> sw00      Link encap:Ethernet  HWaddr 2C:B0:5D:A0:C5:B0
>>>>>          inet addr:172.30.42.65  Bcast:172.30.42.95
>>>>> Mask:255.255.255.224
>>>>>          inet6 addr: 2602:30a:2cdb:330:2eb0:5dff:fea0:c5b1/64
>>>>> Scope:Global
>>>>>          inet6 addr: fe80::2eb0:5dff:fea0:c5b0/64 Scope:Link
>>>>>          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>>>>          RX packets:70239 errors:0 dropped:0 overruns:0 frame:0
>>>>>          TX packets:286967 errors:0 dropped:0 overruns:0 carrier:0
>>>>>          collisions:0 txqueuelen:1000
>>>>>          RX bytes:15590189 (14.8 MiB)  TX bytes:127357293 (121.4 MiB)
>>>>> 
>>>>> root at buffy2-1:~# less /var/log/babeld.log
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> send: Cannot assign requested address
>>>>> send: Cannot assign requested address
>>>>> send: Cannot assign requested address
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> netlink_read: recvmsg(): No buffer space available
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>>> Couldn't determine channel of interface sw00: Invalid argument.
>>>> 
>>>> This is a problem in babel detecting the channel on a "normal"
>>>> rather than a mesh interface. It's bugged me a long while, but
>>>> haven't got around to finding what triggers it. Might "fix" it by
>>>> acquiring the channel at babel start time from /etc/config/wireless.
>>>> 
>>>> It messes up the diversity routing calculation, grump.
>>>> 
>>>> There is a possibility a logfile got really big, but this one
>>>> generally doesn't, but I should turn off logging in some
>>>> future release...
>>> 
>>> 
>>> I believe I've tracked down part of what's going on. It looks like my
>>> tmpfs is filling up 100% and then the device enters a bad state:
>>> 
>>> After 24 hours, with tmpfs at 50%, babeld.log is the largest file by far
>>> in tmpfs and the only file that appears to be growing (based on `du`). It
>>> takes about 48 hours from reboot to fill up tmpfs on my device.
>>> 
>>> #  sort babeld.log | uniq -c |sort -rn |head
>>> 
>>> 503236 Couldn't determine channel of interface sw00: Invalid argument.
>>> 
>>>   1376 netlink_read: recvmsg(): No buffer space available
>>> 
>>>      3 send: Cannot assign requested address
>>> 
>>> # wc -l babeld.log
>>> 
>>> 504617 babeld.log
>>> 
>>> I sped up system failure by using `dd` to fill up tmpfs and the system
>>> became immediately unusable.
>>> 
>>> This also explains the luci session store errors as sessions are stored in
>>> tmpfs.
>>> 
>>> The other buffer issues may or may not be related to this.
>>> 
>>> Best,
>>> Steve
>> 
>> 
> 
> 
> 
> -- 
> Dave Täht
> 
> Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel




More information about the Cerowrt-devel mailing list