[Mono-dev] libc heap/object/linked-list failures on ARM platform with/without --trace=all

Alexander Stohr Alexander.Stohr at gmx.de
Fri Aug 6 13:51:09 EDT 2010


thanks Zoltan, the changed FPU setting made that early abort vanish when that commandline switch is enabled. at least now i am getting bombarded with an insane amount of prints per second at that layer. ;-)

i am still wondering why no-FPU is a no-go for that ARM platform as i expected the mono runtime to be a bit smarter or more clear in that respect. maybe thats something that can be improved e.g. an explicit check on compatibility of the runtime that fails with a clear message.

maybe the last build tricked me in believing its the very same problem as initially described, thus stroke --trace=all and the FPU setting.
the bad side after re-testing - the glibc list corruption persisted.

it still looks like that any now and then:

*** glibc detected *** /usr/bin/mono: free(): invalid next size (fast): 0x00bd0988 ***                                
======= Backtrace: =========
/lib/libc.so.6[0x40143420]                                                                                            
/usr/bin/mono[0x2aa5a8]                                                                                               
/usr/bin/mono[0x2aa5dc]                                                                                               
/usr/bin/mono[0x152c3c]                                                                                               
/usr/bin/mono[0x1627c4]                                                                                               
/usr/bin/mono[0x162410]                                                                                               
/usr/bin/mono[0x1644dc]                                                                                               
/usr/bin/mono[0x16513c]                                                                                               
/usr/bin/mono[0x34138]                                                                                                
/usr/bin/mono[0x64398]                                                                                                
/usr/bin/mono[0x2270c]                                                                                                
/usr/bin/mono[0x240e8]                                                                                                
/usr/bin/mono[0x24b78]                                                                                                
/usr/bin/mono[0x24d04]                                                                                                
/usr/bin/mono(mono_compile_method+0x48)[0x229c4c]                                                                     
/usr/bin/mono[0xef4fc]                                                                                                
/usr/bin/mono[0xefa78]                                                                                                
[0x4020a060]                                                                                                          
[0x432e9ce4]                                                                                                          
[0x432e9ce4]                                                                                                          
[0x432e9ce4]
[...]
Stacktrace:
  at System.Windows.Forms.ScrollableControl.Parent_SizeChanged (object,System.EventArgs) <0xffffffff>
  at System.Windows.Forms.ScrollableControl.Parent_SizeChanged (object,System.EventArgs) <0x00023>   
  at (wrapper delegate-invoke) <Module>.invoke_void__this___object_EventArgs (object,System.EventArgs) <0x0006f>
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs) <0x0009b>                                    
  at System.Windows.Forms.Control.UpdateBounds (int,int,int,int,int,int) <0x00213>                              
  at System.Windows.Forms.Control.UpdateBounds (int,int,int,int) <0x000f3>                                      
  at System.Windows.Forms.Control.SetBoundsCoreInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified) <0x00377>
  at System.Windows.Forms.Control.SetBoundsCore (int,int,int,int,System.Windows.Forms.BoundsSpecified) <0x0005f>        
  at System.Windows.Forms.Control.SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified) <0x00143>    
  at System.Windows.Forms.Control.SetBounds (int,int,int,int,System.Windows.Forms.BoundsSpecified) <0x000ab>            
  at System.Windows.Forms.Control.set_Size (System.Drawing.Size) <0x00047>
[...]
Debug info from gdb:

(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0x4001dc50 (LWP 7071)]
[New Thread 0x42a00490 (LWP 7220)]
[New Thread 0x40934490 (LWP 7075)]
[New Thread 0x40834490 (LWP 7074)]
0x400be3b4 in read () from /lib/libpthread.so.0
Current language:  auto; currently asm
  4 Thread 0x40834490 (LWP 7074)  0x400bee34 in nanosleep ()
   from /lib/libpthread.so.0
  3 Thread 0x40934490 (LWP 7075)  0x400bd3b8 in sem_wait@@GLIBC_2.4 ()
   from /lib/libpthread.so.0
  2 Thread 0x42a00490 (LWP 7220)  0x400bb224 in pthread_cond_wait@@GLIBC_2.4 ()
   from /lib/libpthread.so.0
  1 Thread 0x4001dc50 (LWP 7071)  0x400be3b4 in read ()
   from /lib/libpthread.so.0

Thread 4 (Thread 0x40834490 (LWP 7074)):
#0  0x400bee34 in nanosleep () from /lib/libpthread.so.0
#1  0x400bdd94 in __pthread_enable_asynccancel () from /lib/libpthread.so.0
#2  0x00000000 in ?? ()

Thread 3 (Thread 0x40934490 (LWP 7075)):
#0  0x400bd3b8 in sem_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x0028b8f8 in mono_sem_wait ()
#2  0x002277b8 in ?? ()

Thread 2 (Thread 0x42a00490 (LWP 7220)):
#0  0x400bb224 in pthread_cond_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x0027b534 in ?? ()

Thread 1 (Thread 0x4001dc50 (LWP 7071)):
#0  0x400be3b4 in read () from /lib/libpthread.so.0
#1  0x400bdd94 in __pthread_enable_asynccancel () from /lib/libpthread.so.0
#2  0x00000006 in ?? ()
Backtrace stopped: frame did not save the PC
#0  0x400be3b4 in read () from /lib/libpthread.so.0

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01


More information about the Mono-devel-list mailing list