Modify

Opened 8 years ago

Closed 8 years ago

Last modified 4 years ago

#5960 closed defect (fixed)

ASSERTION FAILED: src != NULL at fs/mini_fo/mini_fo.h:422 (fist_copy_attr_all)

Reported by: anonymous Owned by: developers
Priority: normal Milestone: Barrier Breaker 14.07
Component: kernel Version:
Keywords: Cc:

Description

BusyBox v1.14.4 (2009-10-05 22:14:50 IST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

_

| |.-----.-----.-----.| | | |.----.| |_

| - |_
_ | -| | | _ _|
|_||| ||

|| W I R E L E S S F R E E D O M

KAMIKAZE (bleeding edge, r17890) ------------------

  • 10 oz Vodka Shake well with ice and strain
  • 10 oz Triple sec mixture into 10 shot glasses.
  • 10 oz lime juice Salute!

---------------------------------------------------

Attachments (2)

Oops.txt (10.9 KB) - added by anonymous 8 years ago.
9000-xar-quagga_save_config.patch (1.2 KB) - added by tries@… 8 years ago.
patch to quagga-unstable: fix failure of write config to disk

Download all attachments as: .zip

Change History (11)

Changed 8 years ago by anonymous

comment:1 Changed 8 years ago by anonymous

The above problem seems to be reproduced in each and every build in the latest trunk.

comment:2 Changed 8 years ago by Stijn Tintel <stijn@…>

I am experiencing the same problem on trunk r18613.

Steps to reproduce:

  • start quaggua
  • telnet localhost 2601
  • type "enable" command
  • type "write" command

Every time I try to use the write command in quagga, I get this kernel error:

ASSERTION FAILED: src != NULL at fs/mini_fo/mini_fo.h:422 (fist_copy_attr_all)
CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 8011d1a8, ra == 8011d1a8
Oops[#1]:
Cpu 0
$ 0   : 00000000 802d0000 00000052 00000001
$ 4   : 8029a040 00002414 00000001 00002414
$ 8   : 0000000a 00000000 00000001 ffffffff
$12   : ffffffff 00000048 00000000 00480000
$16   : 00000000 874f4aa0 874f5b80 872d1ed0
$20   : 874f5380 00000000 0000002d 0047f008
$24   : 00000000 8018f998                  
$28   : 872d0000 872d1e68 ffffffff 8011d1a8
Hi    : 00000000
Lo    : 354e0000
epc   : 8011d1a8 0x8011d1a8
    Not tainted
ra    : 8011d1a8 0x8011d1a8
Status: 1000fc03    KERNEL EXL IE 
Cause : 0080000c
BadVA : 00000000
PrId  : 00019374 (MIPS 24Kc)
Modules linked in: sch_red sch_sfq sch_hfsc cls_fw imq ohci_hcd nf_nat_snmp_basic nf_nat_sip nf_conntrack_sip nf_nat_rtsp nf_conntrack_rtsp nf_nat_pptp nf_conntrack_pptp nf_nat_h323 nf_conntrack_h323 nf_nat_proto_gre nf_conntrack_proto_gre nf_nat_amanda nf_conntrack_amanda nf_nat_tftp nf_conntrack_tftp nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp xt_HL xt_hl xt_MARK ipt_ECN xt_CLASSIFY xt_time xt_tcpmss xt_statistic xt_mark xt_length ipt_ecn xt_DSCP xt_dscp xt_IMQ xt_string xt_layer7 ipt_MASQUERADE iptable_nat nf_nat xt_CONNMARK xt_recent xt_helper xt_conntrack xt_connmark xt_connbytes xt_NOTRACK iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack ehci_hcd ipt_REJECT xt_TCPMSS ipt_LOG xt_multiport xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpudp x_tables tun ppp_async ath9k ath9k_common ath9k_hw ath usbcore ts_fsm ts_bm ts_kmp mac80211 cfg80211 crc_ccitt arc4 aes_generic deflate ecb cbc pppoe pppox ppp_generic slhc button_hotplug gpio_buttons input_polldev input_core leds_gpio [last unloaded: imq]
Process quagga.init (pid: 1703, threadinfo=872d0000, task=87932400, tls=00000000)
Stack : 00000000 80268044 80267f9c 000001a6 8024df90 000216d0 00000000 872d1ea8
        872d1ed0 004669e4 00000007 800d3d88 00000400 00000000 00000000 0000010c
        87a19900 874f5380 872d1ed0 7f9a8ca0 00480f6c 800d3ed0 00100100 00200200
        00000000 00000014 00000000 000001ed 0000000c 81edffea 00000001 00000000
        00000000 00000000 00000000 000216d0 4b13d805 00000000 4b13d805 00000000
        ...
Call Trace:[<800d3d88>] 0x800d3d88
[<800d3ed0>] 0x800d3ed0
[<80062504>] 0x80062504


Code: 240701a6  0c019f26  afa20010 <a2000000> 8e020048  8e030050  8e040058  ae220048  ae230050 
Disabling lock debugging due to kernel taint

Hardware is Ubiquiti RouterStation Pro.

comment:3 Changed 8 years ago by tries@…

I had exactly the samme issue here with an x86 based installation (ALIX board).
I did then switch to using UNION MOUNTS instead of mini_fo (which has cost me some hours getting it working). As a result, no more OOPSes (as expected), but quagga was still unable to save its initial configuration.

With some testing I could track down the cause of it.

  • It only happens if quagga is already installed in the squashfs image
  • It only happens if at least one the quagga config files (/etc/quagga/...) has not been modified yet (by some editor) and still resides on the RO layer of the union fs.
  • If the config files have been modified (using vi or some other editor), it will work.

Root cause is that quagga does use link()/unlink() calls to MOVE the original config file to the backup config file (xxx.conf -> xxx.conf.sav). This WILL FAIL if the config file resides on the read-only layer of the union fs, as this would result of a hardlink across filesystem boundaries.

For some reason I did not investigate mini_fo seems to OOPS when trying to create such a cross-boundary hardlink. UNION MOUNTS just does properly complain and causes the link() to fail.

Manual workaround:
Open all quagga config files onve in an editor and save them again. This will "pull" them into the read-write layer of the union filesystem.

Patch for Quagga:
I made a patch to quagga-unstable (0.99.15) that corrects the way quagga does move config files around - use rename() instead of link()/unlink(). This might be slower but works on union filesystems. I'll try to attach the patch to this ticket.

Hope this helps to get things fixed,
/Thomas

Changed 8 years ago by tries@…

patch to quagga-unstable: fix failure of write config to disk

comment:4 Changed 8 years ago by tries@…

Sorry for the formatting above, seems I'm not that fluent with the required magic of WikiFormatting.

comment:5 Changed 8 years ago by Stijn Tintel <stijn@…>

Thomas, thanks for your patch. Compiled r18847 with it, and now I can use the write command in zebra or bgpd just fine.

comment:6 Changed 8 years ago by jow

  • Resolution set to fixed
  • Status changed from new to closed

Patch applied to quagga in r19136 and quagga-unstable in r19137 - thanks!

comment:7 Changed 8 years ago by ff-openwrt@…

[19136] (the quagga-unstable patch applied to the quagga stable package) failed to compile for me, it complained that the finished label was used but not defined.

comment:8 Changed 7 years ago by ram.ramesh12@…

how to enable mini_fo...

comment:9 Changed 4 years ago by jow

  • Milestone changed from Attitude Adjustment 12.09 to Barrier Breaker 14.07

Milestone Attitude Adjustment 12.09 deleted

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.