Hi ! I have some multithreaded program in which the threads are created and destroyed dynamically. I run my program on multi-core machine and it constantly failed with
> mmap(...PROT_NONE...) failed message, but from run to run in different places. For example: > mmap(...PROT_NONE...) failed > Stacktrace: > > at (wrapper managed-to-native) > object.__icall_wrapper_mono_array_new_specific (intptr,int) <0x0004c> > at (wrapper managed-to-native) > object.__icall_wrapper_mono_array_new_specific (intptr,int) <0x0004c> > at System.Collections.ArrayList.EnsureCapacity (int) <0x0005e> > at System.Collections.ArrayList.Add (object) <0x0002d> > . . . > at System.Threading.Thread.StartUnsafe () <0x000a8> > at (wrapper runtime-invoke) object.runtime_invoke_void__this__ > (object,intptr,intptr,intptr) <0x0007b> > > Native stacktrace: > > mono [0x491b57] > /lib64/libpthread.so.0 [0x2b9540188b00] > /lib64/libc.so.6(gsignal+0x35) [0x2b95403c4665] > /lib64/libc.so.6(abort+0x110) [0x2b95403c5ae0] > mono [0x5dbbc0] > mono [0x5dd125] > mono [0x5eb27c] > mono [0x5d1a9b] > mono [0x5d10d0] > mono [0x5d2195] > mono [0x5d58ab] > mono [0x5d5c7c] > mono [0x5d5f52] > mono [0x5e0ade] > mono(mono_array_new_specific+0xf5) [0x558205] > [0x4059bd0d] > > Debug info from gdb: > > Using host libthread_db library "/lib64/libthread_db.so.1". > Cannot access memory at address 0xffffffffffffffcc > [Thread debugging using libthread_db enabled] > [New Thread 47920031010096 (LWP 667)] > [New Thread 46926959266112 (LWP 772)] > [New Thread 46926957148480 (LWP 770)] > [New Thread 46926955030848 (LWP 767)] > [New Thread 46926950795584 (LWP 764)] > [New Thread 46926952913216 (LWP 761)] > [New Thread 2144352576 (LWP 757)] > [New Thread 1083885888 (LWP 755)] > [New Thread 2146453824 (LWP 753)] > [New Thread 1088018752 (LWP 750)] > [New Thread 1081784640 (LWP 679)] > [New Thread 2142251328 (LWP 677)] > [New Thread 2140019008 (LWP 676)] > [New Thread 1077750080 (LWP 675)] > [New Thread 46915117578560 (LWP 674)] > [New Thread 46914593286464 (LWP 673)] > [New Thread 46914068994368 (LWP 672)] > [New Thread 46913544702272 (LWP 671)] > [New Thread 46913020410176 (LWP 670)] > [New Thread 2137848128 (LWP 669)] > [New Thread 1613556032 (LWP 668)] > 0x00002b95401881c1 in nanosleep () from /lib64/libpthread.so.0 > 21 Thread 1613556032 (LWP 668) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 20 Thread 2137848128 (LWP 669) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 19 Thread 46913020410176 (LWP 670) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 18 Thread 46913544702272 (LWP 671) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 17 Thread 46914068994368 (LWP 672) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 16 Thread 46914593286464 (LWP 673) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 15 Thread 46915117578560 (LWP 674) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 14 Thread 1077750080 (LWP 675) 0x00002b9540187518 in > __lll_mutex_lock_wait > () from /lib64/libpthread.so.0 > 13 Thread 2140019008 (LWP 676) 0x00002b95401881c1 in nanosleep () > from /lib64/libpthread.so.0 > 12 Thread 2142251328 (LWP 677) 0x00002b9540187518 in > __lll_mutex_lock_wait > () from /lib64/libpthread.so.0 > 11 Thread 1081784640 (LWP 679) 0x00002b9540185286 in > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 > 10 Thread 1088018752 (LWP 750) 0x00002b9540187518 in > __lll_mutex_lock_wait > () from /lib64/libpthread.so.0 > 9 Thread 2146453824 (LWP 753) 0x00002b954018791b in read () > from /lib64/libpthread.so.0 > 8 Thread 1083885888 (LWP 755) 0x000000007ff05b28 in ?? () > 7 Thread 2144352576 (LWP 757) 0x000000007ff06662 in ?? () > 6 Thread 46926952913216 (LWP 761) 0x000000007ff05a3b in ?? () > 5 Thread 46926950795584 (LWP 764) 0x00002b9540187518 in > __lll_mutex_lock_wait () from /lib64/libpthread.so.0 > 4 Thread 46926955030848 (LWP 767) 0x00002b9540187518 in > __lll_mutex_lock_wait () from /lib64/libpthread.so.0 > 3 Thread 46926957148480 (LWP 770) 0x00002b9540187518 in > __lll_mutex_lock_wait () from /lib64/libpthread.so.0 > 2 Thread 46926959266112 (LWP 772) 0x000000007ff05a9c in ?? () > 1 Thread 47920031010096 (LWP 667) 0x00002b95401881c1 in nanosleep () > from /lib64/libpthread.so.0 and > mmap(...PROT_NONE...) failed > Stacktrace: > > at (wrapper managed-to-native) System.Array.CreateInstanceImpl > (System.Type,int[],int[]) <0x0004f> > at (wrapper managed-to-native) System.Array.CreateInstanceImpl > (System.Type,int[],int[]) <0x0004f> > at System.Array.CreateInstance (System.Type,int[]) <0x0011b> > at System.Array.CreateInstance (System.Type,int) <0x0003b> > at > System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadSimpleArray > (System.IO.BinaryReader,System.Type,long&,object&) <0x00064> > . . . > at System.Threading.Thread.StartUnsafe () <0x000a8> > at (wrapper runtime-invoke) object.runtime_invoke_void__this__ > (object,intptr,intptr,intptr) <0x0007b> From the other side, I am getting the same when I try to use GC.Collect: > mmap(...PROT_NONE...) failed > Stacktrace: > > at (wrapper managed-to-native) System.GC.InternalCollect (int) <0x00049> > at (wrapper managed-to-native) System.GC.InternalCollect (int) <0x00049> > at System.GC.Collect () <0x00010> > . . . > at System.Reflection.MonoMethod.Invoke > (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) > > <0x0014d> > at System.Reflection.MethodBase.Invoke (object,object[]) <0x0002a> > at MCSharp.MovableMethodHandler.Start () <0x00069> > at System.Threading.Thread.StartUnsafe () <0x000a8> > at (wrapper runtime-invoke) object.runtime_invoke_void__this__ > (object,intptr,intptr,intptr) <0x0007b> I am using Mono 2.8.2 with sgen garbage collector. Please, help. Yury _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
