[Click] segmentation fault in nsclick

Eddie Kohler kohler at cs.ucla.edu
Sat Oct 18 11:57:46 EDT 2008


Hi Robert,

I think this is just a bug with that commit, which is probably fixed in 
54d00b531cba889257b506c40ea2a3230bcc4739.  Can you please try again?  Thanks 
very much for the report.

Eddie


Robert Sombrutzki wrote:
> Hi everyone,
> i've a Segmentation Fault using nsclick. i just use a simple click script and 
> start a simulation with 3 nodes, but the ns2 crashs. this seems to be related 
> to the git-commit with the ID 87b5fea5093045459ac6a899d386c61200850560
> ( Comment:Greatly reduce parsing and initialization time on large configs. 
> Date: 2008-10-17).
> If i remove this patch, evereything works fine again. I also recompile the ns2 
> (version 2.30) since some headers of click changed, which are maybe important 
> for ns2, but i got the same result. just to remove the mention patch helps.
> Any idea ? Has the click-skripts to be changes, since this modifications on 
> click ?
> I also append the output of gdb. Maybe some of you has an idea.
> 
> Best,
> Robert
> 
> 
> Here are my click-script ( very simpl. it does nothing) :
> 
> ##  test.click
> elementclass Bar {
>     input[0]
>     -> [0]output;    
> }
> 
> Idle()
> -> Bar
> -> Discard();
> 
> Now the tcl-script:
> ##test.tcl
> 
> Propagation/Shadowing set pathlossExp_ 2.0  ;# path loss exponent
> Propagation/Shadowing set std_db_ 4.0       ;# shadowing deviation (dB)
> Propagation/Shadowing set dist0_ 1.0        ;# reference distance (m)
> Propagation/Shadowing set seed_ 0           ;# seed for RNG
> 
> Mac/802_11 set dataRate_ 11Mb
> Mac/802_11 set basicRate_ 1Mb 
> Mac/802_11 set RTSThreshold_ 3000
> 
> Phy/WirelessPhy set Pt_ 0.281838
> 
> Phy/WirelessPhy set freq_ 2.472e9 
> 
> Phy/WirelessPhy set RXThresh_ 3.28984e-09
> 
> Antenna/OmniAntenna set X_ 0
> Antenna/OmniAntenna set Y_ 0
> Antenna/OmniAntenna set Z_ 1.5
> Antenna/OmniAntenna set Gt_ 1.0
> Antenna/OmniAntenna set Gr_ 1.0
> 
> set xsize  400
> set ysize  400
> set wtopo	[new Topography]
> $wtopo load_flatgrid $xsize $ysize
> 
> set netchan	Channel/WirelessChannel
> set netphy	Phy/WirelessPhy
> set netmac	Mac/802_11
> set netprop     Propagation/Shadowing
> set antenna     Antenna/OmniAntenna
> 
> set netifq	Queue/ClickQueue
> set netll	LL/Ext
> LL set delay_			1ms
> 
> set node_dist   80
> set nodecount   3
> set stoptime    16.0
> 
> Agent/Null set sport_		5000
> Agent/Null set dport_		5000
> 
> Agent/CBR set sport_		5000
> Agent/CBR set dport_		5000
> 
> Simulator set MacTrace_ ON
> set ns_		[new Simulator]
> 
> set tracefd     [open "test.tr" w]
> set namtrace    [open "test.nam" w]
> $ns_ trace-all $tracefd
> $ns_ namtrace-all-wireless $namtrace $xsize $ysize
> $ns_ use-newtrace
> 
> set god_ [create-god $nodecount]
> 
> Simulator set node_factory_ Node/MobileNode/ClickNode
> 
> set chan_1_ [new $netchan]
> set prop_ [new $netprop]
> 
> set iptemplate "10.9.0.%d"
> set mactemplate "00:03:47:70:89:%0x"
> for {set i 0} {$i < $nodecount} {incr i} {
>     set node_ip($i) [format $iptemplate [expr $i+2]]
>     set node_mac($i) [format $mactemplate [expr $i]]
> }
> 
> $ns_ rtproto Empty
> 
> for {set i 0} {$i < $nodecount } {incr i} {
>     set node_($i) [$ns_ node]
> 
>     $node_($i) add-interface $chan_1_ $prop_ $netll $netmac \
> 	  $netifq 1 $netphy $antenna $wtopo
> 
>     $node_($i) setmac "eth0" $node_mac($i)
> 
>     $node_($i) random-motion 0
>     $node_($i) topography $wtopo
>     $node_($i) nodetrace $tracefd
> 
>     [$node_($i) set classifier_] setnodename "node$i"
> }
> for {set i 0} {$i < ( $nodecount - 1 ) } {incr i} {
> [$node_($i) entry] loadclick "test.click"
> }
> 
> for {set i 0} {$i < $nodecount} {incr i} {
>    $ns_ at 0.0 "[$node_($i) entry] runclick"
> }
> 
> set startxmittime 0
> set xmitrate 4
> set xmitinterval 0.25
> set packetsize 64
> 
> 
> for {set i 0} {$i < $nodecount} {incr i} {
>     $node_($i) set X_ [expr $i % 2 * $node_dist ]
>     $node_($i) set Y_ [expr $i / 2 * $node_dist ]
>     $node_($i) set Z_ 0
>     $node_($i) label $node_mac($i).brn
> }
> 
> for {set i 0} {$i < $nodecount} {incr i} {
>     $ns_ initial_node_pos $node_($i) 20
> }
> 
> $ns_ at  $stoptime.000000001 "puts \"NS EXITING...\" ; $ns_ halt"
> 
> $ns_ at  $stoptime	"$ns_ nam-end-wireless $stoptime"
> 
> puts "Starting Simulation..."
> $ns_ run
> 
> 
> Now the GDB-output:
> ombrutz at nfs-student2:~/brnnew_test$ 
> gdb /home/sombrutz/develop/simulation/ns-2.30.new/bin/ns 
> GNU gdb 6.3
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i586-suse-linux"...Using host libthread_db 
> library "/lib/tls/libthread_db.so.1".
> 
> (gdb) set args test.tcl
> (gdb) run
> Starting program: /home/sombrutz/develop/simulation/ns-2.30.new/bin/ns 
> test.tcl
> num_nodes is set 3
> INITIALIZE THE LIST xListHead
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x40149d37 in Click::Lexer::find_tunnel (this=0x86a4cc0, h=@0xbffaaf10, 
> isoutput=false, insert=true) at lexer.cc:1718
> 1718        if (h.idx < _tunnels[m]->_port.idx)
> Current language:  auto; currently c++
> (gdb) bt
> #0  0x40149d37 in Click::Lexer::find_tunnel (this=0x86a4cc0, h=@0xbffaaf10, 
> isoutput=false, insert=true) at lexer.cc:1718
> #1  0x4014c753 in Click::Lexer::add_tunnel (this=0x86a4cc0, 
> namein=@0xbffab064, nameout=@0xbffab04c) at lexer.cc:986
> #2  0x4014d04d in Click::Lexer::Compound::expand_into (this=0x86b34b0, 
> lexer=0x86a4cc0, which=1, ve=@0xbffab164) at lexer.cc:376
> #3  0x4014dfd5 in Click::Lexer::expand_compound_element (this=0x86a4cc0, 
> which=1, ve=@0x86b3dc8) at lexer.cc:1620
> #4  0x4014e1d4 in Click::Lexer::create_router (this=0x86a4cc0, 
> master=0x86b89c0) at lexer.cc:1636
> #5  0x40171590 in Click::click_read_router (filename=@0xbffab384, 
> is_expr=false, errh=0x868a968, initialize=false, master=0x0) at driver.cc:507
> #6  0x403269e8 in simclick_click_create (simnode=0x8669920, 
> router_file=0x863f638 "test.click") at nsclick.cc:103
> #7  0x08068937 in ClickClassifier::command ()
> #8  0x0827aeb8 in TclClass::dispatch_cmd ()
> #9  0x0827eba0 in OTclDispatch (cd=<value optimized out>, in=0x846d228, 
> argc=4, argv=0xbffab59c) at otcl.c:434
> #10 0x08283337 in TclInvokeStringCommand ()
> #11 0x08284bc3 in TclEvalObjvInternal ()
> #12 0x082ab4af in TclExecuteByteCode ()
> #13 0x082b191c in TclCompEvalObj ()
> #14 0x082ab5a9 in TclExecuteByteCode ()
> #15 0x082b191c in TclCompEvalObj ()
> #16 0x082d8b69 in TclObjInterpProc ()
> #17 0x082d8f32 in TclProcInterpProc ()
> #18 0x0827ece9 in OTclDispatch (cd=<value optimized out>, in=0x846d228, 
> argc=3, argv=0xbffac14c) at otcl.c:477
> #19 0x08283337 in TclInvokeStringCommand ()
> #20 0x08284bc3 in TclEvalObjvInternal ()
> #21 0x082ab4af in TclExecuteByteCode ()
> #22 0x082b191c in TclCompEvalObj ()
> #23 0x08286fb2 in Tcl_EvalObjEx ()
> #24 0x0828bf25 in Tcl_ForObjCmd ()
> #25 0x08284bc3 in TclEvalObjvInternal ()
> #26 0x08286356 in Tcl_EvalEx ()
> #27 0x082c8c13 in Tcl_FSEvalFile ()
> #28 0x082cbdf4 in Tcl_Main ()
> #29 0x0804d7b7 in main ()
> (gdb)
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list