multi-threading operation on Oracle database led to program crash !!!

View: New views
7 Messages — Rating Filter:   Alert me  

multi-threading operation on Oracle database led to program crash !!!

by ibrahim steed :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I used Mono+System.Data.OracleClient+instantclient to access Oracle database in multi-threading way on x64bit SUSE Linux.

Your reply will be highly appreciated!

My program run several minutes and crashed and exited with following message:

Stacktrace:


Native stacktrace:

        mono(mono_handle_native_sigsegv+0xb0) [0x48c230]
        mono(mono_arch_handle_altstack_exception+0xf5) [0x4bbf55]
        /lib64/libpthread.so.0 [0x2aed9a374c10]
        /opt/oracle/oradb/home/lib/libclntsh.so(kpcsncharset2ucs2+0x2b) [0x2aaaac9788e3]
        /opt/oracle/oradb/home/lib/libclntsh.so(OCICharSetToUnicode+0x9) [0x2aaaac8a6a93]
        [0x40adf508]

Debug info from gdb:

Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 47199987718976 (LWP 18957)]
[New Thread 1102186816 (LWP 18971)]
[New Thread 1100085568 (LWP 18970)]
[New Thread 1097984320 (LWP 18969)]
[New Thread 1091615040 (LWP 18966)]
[New Thread 1089448256 (LWP 18965)]
[New Thread 1084852544 (LWP 18963)]
[New Thread 1082751296 (LWP 18962)]
[New Thread 1080584512 (LWP 18961)]
[New Thread 1078483264 (LWP 18960)]
[New Thread 1075988800 (LWP 18959)]
[New Thread 1073887552 (LWP 18958)]
0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  12 Thread 1073887552 (LWP 18958)  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
  11 Thread 1075988800 (LWP 18959)  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
  10 Thread 1078483264 (LWP 18960)  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
  9 Thread 1080584512 (LWP 18961)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  8 Thread 1082751296 (LWP 18962)  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
  7 Thread 1084852544 (LWP 18963)  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
  6 Thread 1089448256 (LWP 18965)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  5 Thread 1091615040 (LWP 18966)  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
  4 Thread 1097984320 (LWP 18969)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  3 Thread 1100085568 (LWP 18970)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  2 Thread 1102186816 (LWP 18971)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  1 Thread 47199987718976 (LWP 18957)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 12 (Thread 1073887552 (LWP 18958)):
#0  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
#1  0x000000000055dcaf in collection_thread (unused=<value optimized out>) at collection.c:34
#2  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#3  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 1075988800 (LWP 18959)):
#0  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
#1  0x00000000004ef998 in finalizer_thread (unused=<value optimized out>) at gc.c:1058
#2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#3  0x00000000005773b3 in thread_start_routine (args=0x7dc560) at threads.c:286
#4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 10 (Thread 1078483264 (LWP 18960)):
#0  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
#1  0x000000004027f625 in ?? ()
#2  0x00000000009820d0 in ?? ()
#3  0x00002aaaaaadb4c8 in ?? ()
#4  0x00002aaaab5f9000 in ?? ()
#5  0x0000000000000020 in ?? ()
#6  0x0000000040485068 in ?? ()
#7  0x0000000040484fc0 in ?? ()
#8  0x0000000040484f00 in ?? ()
#9  0x00002aaaaaadb4c8 in ?? ()
#10 0x00002aaaab5f9000 in ?? ()
#11 0x0000000000000020 in ?? ()
#12 0x00002aaaab1e8ca0 in ?? ()
#13 0x000000004027f4d0 in ?? ()
#14 0x0000000000000004 in ?? ()
#15 0x00002aaaab1e8ca0 in ?? ()
#16 0x0000000000000000 in ?? ()

Thread 9 (Thread 1080584512 (LWP 18961)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x40d, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x40d, timeout=4294967295, alertable=1) at wait.c:205
#3  0x000000000050c6b3 in ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value optimized out>, handle=0x40d,
    ms=-1, exitContext=<value optimized out>) at threads.c:1446
#4  0x000000004028353e in ?? ()
#5  0x0000000000a1ccc0 in ?? ()
#6  0x000018aeea14452c in ?? ()
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 1082751296 (LWP 18962)):
#0  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
#1  0x0000000000574034 in _wapi_accept (fd=6, addr=0x0, addrlen=0x0) at sockets.c:209
#2  0x0000000000516b33 in ves_icall_System_Net_Sockets_Socket_Accept_internal (sock=6, error=0x40896e7c,
    blocking=<value optimized out>) at socket-io.c:892
#3  0x0000000040a9904e in ?? ()
#4  0x000000000087ec90 in ?? ()
#5  0x00002aaaaaadb198 in ?? ()
#6  0x0000000000000000 in ?? ()

Thread 7 (Thread 1084852544 (LWP 18963)):
#0  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
#1  0x000000000048c3a3 in mono_handle_native_sigsegv (signal=<value optimized out>, ctx=<value optimized out>)
    at /usr/include/bits/unistd.h:35
#2  0x00000000004bbf55 in mono_arch_handle_altstack_exception (sigctx=0x2aaaab649c40, fault_addr=<value optimized out>,
    stack_ovf=0) at exceptions-amd64.c:910
#3  <signal handler called>
#4  0x00002aaaac9788e3 in kpcsncharset2ucs2 () from /opt/oracle/oradb/home/lib/libclntsh.so
#5  0x00002aaaac8a6a93 in OCICharSetToUnicode () from /opt/oracle/oradb/home/lib/libclntsh.so
#6  0x0000000040adf508 in ?? ()
#7  0x0000000000874de0 in ?? ()
#8  0x00002aaaae9969f0 in ?? ()
#9  0x0000000040a97bfc in ?? ()
#10 0x00002aaaaed27000 in ?? ()
#11 0x00002aaaabcc4260 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 1089448256 (LWP 18965)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dcf88) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 5 (Thread 1091615040 (LWP 18966)):
#0  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
#1  0x0000000000511d34 in socket_io_epoll_main (p=<value optimized out>) at threadpool.c:600
#2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#3  0x00000000005773b3 in thread_start_routine (args=0x7dd1e0) at threads.c:286
#4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 1097984320 (LWP 18969)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd5c8) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 3 (Thread 1100085568 (LWP 18970)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd8e8) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 1102186816 (LWP 18971)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd9b0) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 1 (Thread 47199987718976 (LWP 18957)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x400, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x000000000057aa1d in WaitForMultipleObjectsEx (numobjects=3, handles=0x2aaaab710ed0, waitall=0, timeout=4294967295,
    alertable=0) at wait.c:723
#3  0x000000000050ff01 in mono_thread_manage () at threads.c:2497
#4  0x0000000000473153 in mono_main (argc=2, argv=<value optimized out>) at driver.c:1648
#5  0x00002aed9a5f1154 in __libc_start_main () from /lib64/libc.so.6
#6  0x0000000000422139 in _start ()
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

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

Aborted





I wrote following code:

using System;
using System.Net.Sockets;
using System.Threading;

//using some my namespace

namespace CommandAgent
{
        class MainClass
        {
                public static void Main(string[] args)
                {
               
                        SchemaServer schemaServer=new SchemaServer();
                        Thread threadServer=new Thread(new ThreadStart(schemaServer.Procedure));
                        threadServer.Start();
                                       
                        Thread threadPoll=new Thread(new ThreadStart(SchemaPoll.Procedure));
                        threadPoll.Start();
                       
                       
                }
        }
       
        public class SchemaServer
        {
                public SchemaServer()
                {
                }
                public void Procedure()
                {
                        while(true)
                        {
                                //do something
                        }
                }
        }
       
        public class SchemaPoll
        {
                public static void Procedure()
                {
                        while(true)
                        {
                                try
                                {
                                        //CommandInvoker.Invoke() method is used to scan oracle database table to retrieve some data
                                        CommandInvoker.Invoke();
                                        Thread.Sleep(5000);
                                        //CommandFeeder.Feed() method is used to scan oracle database table to retrieve some data
                                        CommandFeeder.Feed();
                                }
                                catch(Exception ex)
                                {
                                        Console.WriteLine("Exception in SchemaPoll.Procedure:{0}",ex.Message);
                                }
                        }
                }
        }
       
}

Re: multi-threading operation on Oracle database led to program crash !!!

by ibrahim steed :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I run another time and show following crash message:


*** glibc detected *** mono: malloc(): memory corruption: 0x00002aaaabdbb110 ***
======= Backtrace: =========
/lib64/libc.so.6[0x2b8d8e25034e]
/lib64/libc.so.6[0x2b8d8e2522d4]
/lib64/libc.so.6(calloc+0x9f)[0x2b8d8e2537bf]
[0x40ada83c]
======= Memory map: ========
00400000-0066e000 r-xp 00000000 68:06 69560                              /usr/bi n/mono
0076d000-00770000 rw-p 0026d000 68:06 69560                              /usr/bi n/mono
00770000-00ae1000 rw-p 00770000 00:00 0                                  [heap]
40000000-40020000 rwxp 40000000 00:00 0
40020000-40021000 ---p 40020000 00:00 0
40021000-40024000 rwxp 40021000 00:00 0
40024000-40025000 ---p 40024000 00:00 0
40025000-40285000 rwxp 40025000 00:00 0
40285000-40286000 ---p 40285000 00:00 0
40286000-40486000 rwxp 40286000 00:00 0
40486000-40487000 ---p 40486000 00:00 0
40487000-40697000 rwxp 40487000 00:00 0
40697000-40698000 ---p 40697000 00:00 0
40698000-40898000 rwxp 40698000 00:00 0
40898000-40899000 ---p 40898000 00:00 0
40899000-40ae9000 rwxp 40899000 00:00 0
2aaaaaaac000-2aaaaaae0000 rw-p 2aaaaaaac000 00:00 0
2aaaaaae0000-2aaaaaae1000 rw-s 00000000 00:0e 41233776                   /dev/sh m/mono.7225
2aaaaaae1000-2aaaaaaf1000 rw-p 2aaaaaae1000 00:00 0
2aaaaaaf1000-2aaaaaaf5000 r--p 00000000 68:02 82246                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/CommandAgent.exe
2aaaaaaf5000-2aaaaad68000 r--p 00000000 68:06 69622                      /usr/li b/mono/2.0/mscorlib.dll
2aaaaad68000-2aaaaad9d000 r--s 00000000 68:04 8612                       /var/ru n/nscd/passwd
2aaaaad9d000-2aaaaadb2000 rw-s 00000000 68:04 9002                       /root/. wapi/shared_data-paramsys-Linux-x86_64-328-12-0
2aaaaadb2000-2aaaab19b000 rw-s 00000000 68:04 9062                       /root/. wapi/shared_fileshare-paramsys-Linux-x86_64-40-12-0
2aaaab19b000-2aaaab19c000 rw-p 2aaaab19b000 00:00 0
2aaaab19c000-2aaaab1db000 ---p 2aaaab19c000 00:00 0
2aaaab1db000-2aaaab1ff000 rw-p 2aaaab1db000 00:00 0
2aaaab1ff000-2aaaab201000 r--p 00000000 68:02 82227                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/Log.dll
2aaaab201000-2aaaab205000 r--p 00000000 68:02 82216                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/ConfigurationHandler.dll
2aaaab205000-2aaaab223000 r--p 00000000 68:06 69722                      /usr/li b/mono/gac/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.d ll
2aaaab223000-2aaaab3b2000 r--p 00000000 68:06 69756                      /usr/li b/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll
2aaaab3b2000-2aaaab3b4000 r--p 00000000 68:02 82237                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/InterProcess.dll
2aaaab3b4000-2aaaab3ec000 r--p 00000000 68:02 82215                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/log4net.dll
2aaaab3ec000-2aaaab40d000 rw-p 2aaaab3ec000 00:00 0
2aaaab40d000-2aaaab542000 r--p 00000000 68:06 69750                      /usr/li b/mono/gac/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
2aaaab542000-2aaaab64a000 rw-p 2aaaab542000 00:00 0
2aaaab64a000-2aaaab656000 r--p 00000000 68:06 71944                      /usr/li b/mono/gac/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.Enterprise Services.dll
2aaaab656000-2aaaab659000 r--p 00000000 68:02 82233                      /home/m azhi/wpm/command/wpmcmd/CommandAgent/bin/Release/OraAccess.dll
2aaaab659000-2aaaab67e000 r--p 00000000 68:06 72237                      /usr/li b/mono/gac/System.Data.OracleClient/2.0.0.0__b77a5c561934e089/System.Data.Oracle Client.dll
2aaaab67e000-2aaaab685000 r--p 00000000 68:06 71947                      /usr/li b/mono/gac/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
2aaaab700000-2aaaab75b000 rw-p 2aaaab700000 00:00 0
2aaaab75b000-2aaaab800000 ---p 2aaaab75b000 00:00 0
2aaaab800000-2aaaab8ff000 rw-p 2aaaab800000 00:00 0
2aaaab8ff000-2aaaab900000 ---p 2aaaab8ff000 00:00 0
2aaaab900000-2aaaab902000 r--p 00000000 68:02 8Stacktrace:

  at (wrapper managed-to-native) System.Data.OracleClient.Oci.OciCalls.calloc (i nt,int) <0x0005c>
  at (wrapper managed-to-native) System.Data.OracleClient.Oci.OciCalls.calloc (i nt,int) <0xffffffff>
  at System.Data.OracleClient.Oci.OciCalls.AllocateClear (int) <0x0002b>
  at System.Data.OracleClient.Oci.OciDefineHandle.DefineChar (int,System.Data.Or acleClient.OracleConnection) <0x0003f>
  at System.Data.OracleClient.Oci.OciDefineHandle.Define (int,System.Data.Oracle Client.OracleConnection) <0x00173>
  at System.Data.OracleClient.Oci.OciDefineHandle.DefineByPosition (int,System.D ata.OracleClient.OracleConnection) <0x000a3>
  at System.Data.OracleClient.Oci.OciStatementHandle.GetDefineHandle (int,System .Data.OracleClient.OracleConnection) <0x00073>
  at System.Data.OracleClient.Oci.OciStatementHandle.Define (System.Data.OracleC lient.OracleConnection) <0x00057>
  at System.Data.OracleClient.Oci.OciStatementHandle.Define () <0x00027>
  at System.Data.OracleClient.Oci.OciStatementHandle.Execute (bool,bool,bool) <0 x000ef>
  at System.Data.OracleClient.Oci.OciStatementHandle.ExecuteQuery (bool) <0x0001 b>
  at System.Data.OracleClient.OracleCommand.ExecuteReader (System.Data.CommandBe havior) <0x00123>
  at (wrapper remoting-invoke-with-check) System.Data.OracleClient.OracleCommand .ExecuteReader (System.Data.CommandBehavior) <0xffffffff>
  at DataAccess.OraAccess.ReaderQuery (string) <0x000b7>
  at Persistence.DatabasePersistence.GetSchemaListByStatus (Common.ScheduleType)  <0x000f9>
  at CommandAgent.CommandInvoker.Invoke () <0x0006b>
  at CommandAgent.SchemaPoll.Procedure () <0x00027>
  at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr, intptr,intptr) <0xffffffff>

Native stacktrace:

        mono(mono_handle_native_sigsegv+0xb0) [0x48c230]
        /lib64/libpthread.so.0 [0x2b8d8df85c10]
        /lib64/libc.so.6(gsignal+0x35) [0x2b8d8e214b95]
        /lib64/libc.so.6(abort+0x110) [0x2b8d8e215f90]
        /lib64/libc.so.6 [0x2b8d8e24b35b]
        /lib64/libc.so.6 [0x2b8d8e25034e]
        /lib64/libc.so.6 [0x2b8d8e2522d4]
        /lib64/libc.so.6(calloc+0x9f) [0x2b8d8e2537bf]
        [0x40ada83c]

Debug info from gdb:

Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 47886977035072 (LWP 7225)]
[New Thread 1084852544 (LWP 7282)]
[New Thread 1082751296 (LWP 7281)]
[New Thread 1080584512 (LWP 7272)]
[New Thread 1078483264 (LWP 7270)]
[New Thread 1075988800 (LWP 7229)]
[New Thread 1073887552 (LWP 7226)]
0x00002b8d8df821c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
  7 Thread 1073887552 (LWP 7226)  0x00002b8d8df85231 in fmod ()
   from /lib64/libpthread.so.0
  6 Thread 1075988800 (LWP 7229)  0x00002b8d8e2af478 in __lll_mutex_lock_wait
    () from /lib64/libc.so.6
  5 Thread 1078483264 (LWP 7270)  0x00002b8d8e296fcb in fmod ()
   from /lib64/libc.so.6
  4 Thread 1080584512 (LWP 7272)  0x00002b8d8df821c6 in pthread_cond_wait@@GLIBC _2.3.2 () from /lib64/libpthread.so.0
  3 Thread 1082751296 (LWP 7281)  0x00002b8d8df84b8b in fmod ()
   from /lib64/libpthread.so.0
  2 Thread 1084852544 (LWP 7282)  0x00002b8d8df8494b in fmod ()
   from /lib64/libpthread.so.0
  1 Thread 47886977035072 (LWP 7225)  0x00002b8d8df821c6 in pthread_cond_wait@@G LIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 7 (Thread 1073887552 (LWP 7226)):
#0  0x00002b8d8df85231 in fmod () from /lib64/libpthread.so.0
#1  0x000000000055dcaf in collection_thread (unused=<value optimized out>)
    at collection.c:34
#2  0x00002b8d8df7e143 in start_thread () from /lib64/libpthread.so.0
#3  0x00002b8d8e2a474d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 6 (Thread 1075988800 (LWP 7229)):
#0  0x00002b8d8e2af478 in __lll_mutex_lock_wait () from /lib64/libc.so.6
#1  0x00002aaaabd85840 in ?? ()
#2  0x0000000000000008 in ?? ()
#3  0x00002b8d8e2549df in fmod () from /lib64/libc.so.6
#4  0xff1868b806eba217 in ?? ()
#5  0xff184212eae2021b in ?? ()
#6  0x00002aaa00000000 in ?? ()
#7  0x0000000000000035 in ?? ()
#8  0x0000000000000000 in ?? ()

Thread 5 (Thread 1078483264 (LWP 7270)):
#0  0x00002b8d8e296fcb in fmod () from /lib64/libc.so.6
#1  0x000000004027edf5 in ?? ()
#2  0x0000000000a00aa0 in ?? ()
#3  0x00002aaaaaadb4c8 in ?? ()
#4  0x00002aaaab5f9000 in ?? ()
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 1080584512 (LWP 7272)):
#0  0x00002b8d8df821c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x40c,
    timeout=0x0, alertable=1, poll=0) at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x40c,
    timeout=4294967295, alertable=1) at wait.c:205
#3  0x000000000050c6b3 in ves_icall_System_Threading_WaitHandle_WaitOne_internal  (this=<value optimized out>, handle=0x40c, ms=-1,
    exitContext=<value optimized out>) at threads.c:1446
#4  0x0000000040282b0e in ?? ()
#5  0x0000000000874e90 in ?? ()
#6  0x0000195907230892 in ?? ()
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 1082751296 (LWP 7281)):
#0  0x00002b8d8df84b8b in fmod () from /lib64/libpthread.so.0
#1  0x0000000000574034 in _wapi_accept (fd=6, addr=0x0, addrlen=0x0)
    at sockets.c:209
#2  0x0000000000516b33 in ves_icall_System_Net_Sockets_Socket_Accept_internal (
    sock=6, error=0x40896e7c, blocking=<value optimized out>)
    at socket-io.c:892
#3  0x000000004069340e in ?? ()
#4  0x00000000009f77d0 in ?? ()
#5  0x00002aaaaaadb990 in ?? ()
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 1084852544 (LWP 7282)):
#0  0x00002b8d8df8494b in fmod () from /lib64/libpthread.so.0
#1  0x000000000048c3a3 in mono_handle_native_sigsegv (
    signal=<value optimized out>, ctx=<value optimized out>)
    at /usr/include/bits/unistd.h:35
#2  <signal handler called>
#3  0x00002b8d8e214b95 in raise () from /lib64/libc.so.6
#4  0x00002b8d8e215f90 in abort () from /lib64/libc.so.6
#5  0x00002b8d8e24b35b in __libc_message () from /lib64/libc.so.6
#6  0x00002b8d8e25034e in malloc_printerr () from /lib64/libc.so.6
#7  0x00002b8d8e2522d4 in _int_malloc () from /lib64/libc.so.6
#8  0x00002b8d8e2537bf in calloc () from /lib64/libc.so.6
#9  0x0000000040ada83c in ?? ()
#10 0x000000000087ec90 in ?? ()
#11 0x00000000004d6628 in mono_object_new_specific (vtable=0x1)
    at object.c:3603
#12 0x0000000000000001 in ?? ()
#13 0x00002aaaab400c00 in ?? ()
#14 0x00002aaaab400c00 in ?? ()
#15 0x0000000000002ee0 in ?? ()
#16 0x0000000040ada79c in ?? ()
#17 0x00002aaaaeb4a7e8 in ?? ()
#18 0x0000000040ada6d0 in ?? ()
#19 0x0000000000000006 in ?? ()
#20 0x0000000000002ee0 in ?? ()
#21 0x00002aaaab5a3310 in ?? ()
#22 0x0000000040ada22c in ?? ()
#23 0x0000000000000000 in ?? ()

Thread 1 (Thread 47886977035072 (LWP 7225)):
#0  0x00002b8d8df821c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x400,
    timeout=0x0, alertable=1, poll=0) at handles.c:1605
#2  0x000000000057aa1d in WaitForMultipleObjectsEx (numobjects=3,
    handles=0x2aaaab8008d0, waitall=0, timeout=4294967295, alertable=0)
    at wait.c:723
#3  0x000000000050ff01 in mono_thread_manage () at threads.c:2497
#4  0x0000000000473153 in mono_main (argc=2, argv=<value optimized out>)
    at driver.c:1648
#5  0x00002b8d8e202154 in __libc_start_main () from /lib64/libc.so.6
#6  0x0000000000422139 in _start ()
#0  0x00002b8d8df821c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/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.
=================================================================

Aborted


ibrahim steed wrote:
I used Mono+System.Data.OracleClient+instantclient to access Oracle database in multi-threading way on x64bit SUSE Linux.

Your reply will be highly appreciated!

My program run several minutes and crashed and exited with following message:

Stacktrace:


Native stacktrace:

        mono(mono_handle_native_sigsegv+0xb0) [0x48c230]
        mono(mono_arch_handle_altstack_exception+0xf5) [0x4bbf55]
        /lib64/libpthread.so.0 [0x2aed9a374c10]
        /opt/oracle/oradb/home/lib/libclntsh.so(kpcsncharset2ucs2+0x2b) [0x2aaaac9788e3]
        /opt/oracle/oradb/home/lib/libclntsh.so(OCICharSetToUnicode+0x9) [0x2aaaac8a6a93]
        [0x40adf508]

Debug info from gdb:

Using host libthread_db library "/lib64/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 47199987718976 (LWP 18957)]
[New Thread 1102186816 (LWP 18971)]
[New Thread 1100085568 (LWP 18970)]
[New Thread 1097984320 (LWP 18969)]
[New Thread 1091615040 (LWP 18966)]
[New Thread 1089448256 (LWP 18965)]
[New Thread 1084852544 (LWP 18963)]
[New Thread 1082751296 (LWP 18962)]
[New Thread 1080584512 (LWP 18961)]
[New Thread 1078483264 (LWP 18960)]
[New Thread 1075988800 (LWP 18959)]
[New Thread 1073887552 (LWP 18958)]
0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  12 Thread 1073887552 (LWP 18958)  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
  11 Thread 1075988800 (LWP 18959)  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
  10 Thread 1078483264 (LWP 18960)  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
  9 Thread 1080584512 (LWP 18961)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  8 Thread 1082751296 (LWP 18962)  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
  7 Thread 1084852544 (LWP 18963)  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
  6 Thread 1089448256 (LWP 18965)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  5 Thread 1091615040 (LWP 18966)  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
  4 Thread 1097984320 (LWP 18969)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  3 Thread 1100085568 (LWP 18970)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  2 Thread 1102186816 (LWP 18971)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  1 Thread 47199987718976 (LWP 18957)  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 12 (Thread 1073887552 (LWP 18958)):
#0  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
#1  0x000000000055dcaf in collection_thread (unused=<value optimized out>) at collection.c:34
#2  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#3  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 1075988800 (LWP 18959)):
#0  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
#1  0x00000000004ef998 in finalizer_thread (unused=<value optimized out>) at gc.c:1058
#2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#3  0x00000000005773b3 in thread_start_routine (args=0x7dc560) at threads.c:286
#4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 10 (Thread 1078483264 (LWP 18960)):
#0  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
#1  0x000000004027f625 in ?? ()
#2  0x00000000009820d0 in ?? ()
#3  0x00002aaaaaadb4c8 in ?? ()
#4  0x00002aaaab5f9000 in ?? ()
#5  0x0000000000000020 in ?? ()
#6  0x0000000040485068 in ?? ()
#7  0x0000000040484fc0 in ?? ()
#8  0x0000000040484f00 in ?? ()
#9  0x00002aaaaaadb4c8 in ?? ()
#10 0x00002aaaab5f9000 in ?? ()
#11 0x0000000000000020 in ?? ()
#12 0x00002aaaab1e8ca0 in ?? ()
#13 0x000000004027f4d0 in ?? ()
#14 0x0000000000000004 in ?? ()
#15 0x00002aaaab1e8ca0 in ?? ()
#16 0x0000000000000000 in ?? ()

Thread 9 (Thread 1080584512 (LWP 18961)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x40d, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x40d, timeout=4294967295, alertable=1) at wait.c:205
#3  0x000000000050c6b3 in ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value optimized out>, handle=0x40d,
    ms=-1, exitContext=<value optimized out>) at threads.c:1446
#4  0x000000004028353e in ?? ()
#5  0x0000000000a1ccc0 in ?? ()
#6  0x000018aeea14452c in ?? ()
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 1082751296 (LWP 18962)):
#0  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
#1  0x0000000000574034 in _wapi_accept (fd=6, addr=0x0, addrlen=0x0) at sockets.c:209
#2  0x0000000000516b33 in ves_icall_System_Net_Sockets_Socket_Accept_internal (sock=6, error=0x40896e7c,
    blocking=<value optimized out>) at socket-io.c:892
#3  0x0000000040a9904e in ?? ()
#4  0x000000000087ec90 in ?? ()
#5  0x00002aaaaaadb198 in ?? ()
#6  0x0000000000000000 in ?? ()

Thread 7 (Thread 1084852544 (LWP 18963)):
#0  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
#1  0x000000000048c3a3 in mono_handle_native_sigsegv (signal=<value optimized out>, ctx=<value optimized out>)
    at /usr/include/bits/unistd.h:35
#2  0x00000000004bbf55 in mono_arch_handle_altstack_exception (sigctx=0x2aaaab649c40, fault_addr=<value optimized out>,
    stack_ovf=0) at exceptions-amd64.c:910
#3  <signal handler called>
#4  0x00002aaaac9788e3 in kpcsncharset2ucs2 () from /opt/oracle/oradb/home/lib/libclntsh.so
#5  0x00002aaaac8a6a93 in OCICharSetToUnicode () from /opt/oracle/oradb/home/lib/libclntsh.so
#6  0x0000000040adf508 in ?? ()
#7  0x0000000000874de0 in ?? ()
#8  0x00002aaaae9969f0 in ?? ()
#9  0x0000000040a97bfc in ?? ()
#10 0x00002aaaaed27000 in ?? ()
#11 0x00002aaaabcc4260 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 1089448256 (LWP 18965)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dcf88) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 5 (Thread 1091615040 (LWP 18966)):
#0  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
#1  0x0000000000511d34 in socket_io_epoll_main (p=<value optimized out>) at threadpool.c:600
#2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#3  0x00000000005773b3 in thread_start_routine (args=0x7dd1e0) at threads.c:286
#4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 1097984320 (LWP 18969)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd5c8) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 3 (Thread 1100085568 (LWP 18970)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd8e8) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 1102186816 (LWP 18971)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x401, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401, timeout=4294967295, alertable=1) at wait.c:205
#3  0x0000000000513121 in async_invoke_thread (data=0x0) at threadpool.c:1424
#4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at threads.c:623
#5  0x00000000005773b3 in thread_start_routine (args=0x7dd9b0) at threads.c:286
#6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at pthread_support.c:1382
#7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
#8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 1 (Thread 47199987718976 (LWP 18957)):
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle (handle=0x400, timeout=0x0, alertable=1, poll=0)
    at handles.c:1605
#2  0x000000000057aa1d in WaitForMultipleObjectsEx (numobjects=3, handles=0x2aaaab710ed0, waitall=0, timeout=4294967295,
    alertable=0) at wait.c:723
#3  0x000000000050ff01 in mono_thread_manage () at threads.c:2497
#4  0x0000000000473153 in mono_main (argc=2, argv=<value optimized out>) at driver.c:1648
#5  0x00002aed9a5f1154 in __libc_start_main () from /lib64/libc.so.6
#6  0x0000000000422139 in _start ()
#0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

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

Aborted





I wrote following code:

using System;
using System.Net.Sockets;
using System.Threading;

//using some my namespace

namespace CommandAgent
{
        class MainClass
        {
                public static void Main(string[] args)
                {
               
                        SchemaServer schemaServer=new SchemaServer();
                        Thread threadServer=new Thread(new ThreadStart(schemaServer.Procedure));
                        threadServer.Start();
                                       
                        Thread threadPoll=new Thread(new ThreadStart(SchemaPoll.Procedure));
                        threadPoll.Start();
                       
                       
                }
        }
       
        public class SchemaServer
        {
                public SchemaServer()
                {
                }
                public void Procedure()
                {
                        while(true)
                        {
                                //do something
                        }
                }
        }
       
        public class SchemaPoll
        {
                public static void Procedure()
                {
                        while(true)
                        {
                                try
                                {
                                        //CommandInvoker.Invoke() method is used to scan oracle database table to retrieve some data
                                        CommandInvoker.Invoke();
                                        Thread.Sleep(5000);
                                        //CommandFeeder.Feed() method is used to scan oracle database table to retrieve some data
                                        CommandFeeder.Feed();
                                }
                                catch(Exception ex)
                                {
                                        Console.WriteLine("Exception in SchemaPoll.Procedure:{0}",ex.Message);
                                }
                        }
                }
        }
       
}

Re: multi-threading operation on Oracle database led to program crash !!!

by Miguel de Icaza-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

> I used Mono+System.Data.OracleClient+instantclient to access Oracle database
> in multi-threading way on x64bit SUSE Linux.

It would be useful to have a test case to reproduce this issue.

>
> Your reply will be highly appreciated!
>
> My program run several minutes and crashed and exited with following
> message:
>
> Stacktrace:
>
>
> Native stacktrace:
>
>         mono(mono_handle_native_sigsegv+0xb0) [0x48c230]
>         mono(mono_arch_handle_altstack_exception+0xf5) [0x4bbf55]
>         /lib64/libpthread.so.0 [0x2aed9a374c10]
>         /opt/oracle/oradb/home/lib/libclntsh.so(kpcsncharset2ucs2+0x2b)
> [0x2aaaac9788e3]
>         /opt/oracle/oradb/home/lib/libclntsh.so(OCICharSetToUnicode+0x9)
> [0x2aaaac8a6a93]
>         [0x40adf508]
>
> Debug info from gdb:
>
> Using host libthread_db library "/lib64/libthread_db.so.1".
> [Thread debugging using libthread_db enabled]
> [New Thread 47199987718976 (LWP 18957)]
> [New Thread 1102186816 (LWP 18971)]
> [New Thread 1100085568 (LWP 18970)]
> [New Thread 1097984320 (LWP 18969)]
> [New Thread 1091615040 (LWP 18966)]
> [New Thread 1089448256 (LWP 18965)]
> [New Thread 1084852544 (LWP 18963)]
> [New Thread 1082751296 (LWP 18962)]
> [New Thread 1080584512 (LWP 18961)]
> [New Thread 1078483264 (LWP 18960)]
> [New Thread 1075988800 (LWP 18959)]
> [New Thread 1073887552 (LWP 18958)]
> 0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
>   12 Thread 1073887552 (LWP 18958)  0x00002aed9a374231 in fmod () from
> /lib64/libpthread.so.0
>   11 Thread 1075988800 (LWP 18959)  0x00002aed9a372dfd in sem_wait () from
> /lib64/libpthread.so.0
>   10 Thread 1078483264 (LWP 18960)  0x00002aed9a685fcb in fmod () from
> /lib64/libc.so.6
>   9 Thread 1080584512 (LWP 18961)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>   8 Thread 1082751296 (LWP 18962)  0x00002aed9a373b8b in fmod () from
> /lib64/libpthread.so.0
>   7 Thread 1084852544 (LWP 18963)  0x00002aed9a37394b in fmod () from
> /lib64/libpthread.so.0
>   6 Thread 1089448256 (LWP 18965)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>   5 Thread 1091615040 (LWP 18966)  0x00002aed9a693b68 in fmod () from
> /lib64/libc.so.6
>   4 Thread 1097984320 (LWP 18969)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>   3 Thread 1100085568 (LWP 18970)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>   2 Thread 1102186816 (LWP 18971)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>   1 Thread 47199987718976 (LWP 18957)  0x00002aed9a3711c6 in
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>
> Thread 12 (Thread 1073887552 (LWP 18958)):
> #0  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
> #1  0x000000000055dcaf in collection_thread (unused=<value optimized out>)
> at collection.c:34
> #2  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #3  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #4  0x0000000000000000 in ?? ()
>
> Thread 11 (Thread 1075988800 (LWP 18959)):
> #0  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
> #1  0x00000000004ef998 in finalizer_thread (unused=<value optimized out>) at
> gc.c:1058
> #2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #3  0x00000000005773b3 in thread_start_routine (args=0x7dc560) at
> threads.c:286
> #4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #7  0x0000000000000000 in ?? ()
>
> Thread 10 (Thread 1078483264 (LWP 18960)):
> #0  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
> #1  0x000000004027f625 in ?? ()
> #2  0x00000000009820d0 in ?? ()
> #3  0x00002aaaaaadb4c8 in ?? ()
> #4  0x00002aaaab5f9000 in ?? ()
> #5  0x0000000000000020 in ?? ()
> #6  0x0000000040485068 in ?? ()
> #7  0x0000000040484fc0 in ?? ()
> #8  0x0000000040484f00 in ?? ()
> #9  0x00002aaaaaadb4c8 in ?? ()
> #10 0x00002aaaab5f9000 in ?? ()
> #11 0x0000000000000020 in ?? ()
> #12 0x00002aaaab1e8ca0 in ?? ()
> #13 0x000000004027f4d0 in ?? ()
> #14 0x0000000000000004 in ?? ()
> #15 0x00002aaaab1e8ca0 in ?? ()
> #16 0x0000000000000000 in ?? ()
>
> Thread 9 (Thread 1080584512 (LWP 18961)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x40d, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x40d,
> timeout=4294967295, alertable=1) at wait.c:205
> #3  0x000000000050c6b3 in
> ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value
> optimized out>, handle=0x40d,
>     ms=-1, exitContext=<value optimized out>) at threads.c:1446
> #4  0x000000004028353e in ?? ()
> #5  0x0000000000a1ccc0 in ?? ()
> #6  0x000018aeea14452c in ?? ()
> #7  0x0000000000000000 in ?? ()
>
> Thread 8 (Thread 1082751296 (LWP 18962)):
> #0  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
> #1  0x0000000000574034 in _wapi_accept (fd=6, addr=0x0, addrlen=0x0) at
> sockets.c:209
> #2  0x0000000000516b33 in
> ves_icall_System_Net_Sockets_Socket_Accept_internal (sock=6,
> error=0x40896e7c,
>     blocking=<value optimized out>) at socket-io.c:892
> #3  0x0000000040a9904e in ?? ()
> #4  0x000000000087ec90 in ?? ()
> #5  0x00002aaaaaadb198 in ?? ()
> #6  0x0000000000000000 in ?? ()
>
> Thread 7 (Thread 1084852544 (LWP 18963)):
> #0  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
> #1  0x000000000048c3a3 in mono_handle_native_sigsegv (signal=<value
> optimized out>, ctx=<value optimized out>)
>     at /usr/include/bits/unistd.h:35
> #2  0x00000000004bbf55 in mono_arch_handle_altstack_exception
> (sigctx=0x2aaaab649c40, fault_addr=<value optimized out>,
>     stack_ovf=0) at exceptions-amd64.c:910
> #3  <signal handler called>
> #4  0x00002aaaac9788e3 in kpcsncharset2ucs2 () from
> /opt/oracle/oradb/home/lib/libclntsh.so
> #5  0x00002aaaac8a6a93 in OCICharSetToUnicode () from
> /opt/oracle/oradb/home/lib/libclntsh.so
> #6  0x0000000040adf508 in ?? ()
> #7  0x0000000000874de0 in ?? ()
> #8  0x00002aaaae9969f0 in ?? ()
> #9  0x0000000040a97bfc in ?? ()
> #10 0x00002aaaaed27000 in ?? ()
> #11 0x00002aaaabcc4260 in ?? ()
> #12 0x0000000000000000 in ?? ()
>
> Thread 6 (Thread 1089448256 (LWP 18965)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x401, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> timeout=4294967295, alertable=1) at wait.c:205
> #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> threadpool.c:1424
> #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #5  0x00000000005773b3 in thread_start_routine (args=0x7dcf88) at
> threads.c:286
> #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #9  0x0000000000000000 in ?? ()
>
> Thread 5 (Thread 1091615040 (LWP 18966)):
> #0  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
> #1  0x0000000000511d34 in socket_io_epoll_main (p=<value optimized out>) at
> threadpool.c:600
> #2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #3  0x00000000005773b3 in thread_start_routine (args=0x7dd1e0) at
> threads.c:286
> #4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #7  0x0000000000000000 in ?? ()
>
> Thread 4 (Thread 1097984320 (LWP 18969)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x401, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> timeout=4294967295, alertable=1) at wait.c:205
> #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> threadpool.c:1424
> #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #5  0x00000000005773b3 in thread_start_routine (args=0x7dd5c8) at
> threads.c:286
> #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #9  0x0000000000000000 in ?? ()
>
> Thread 3 (Thread 1100085568 (LWP 18970)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x401, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> timeout=4294967295, alertable=1) at wait.c:205
> #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> threadpool.c:1424
> #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #5  0x00000000005773b3 in thread_start_routine (args=0x7dd8e8) at
> threads.c:286
> #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #9  0x0000000000000000 in ?? ()
>
> Thread 2 (Thread 1102186816 (LWP 18971)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x401, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> timeout=4294967295, alertable=1) at wait.c:205
> #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> threadpool.c:1424
> #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> threads.c:623
> #5  0x00000000005773b3 in thread_start_routine (args=0x7dd9b0) at
> threads.c:286
> #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> pthread_support.c:1382
> #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> #9  0x0000000000000000 in ?? ()
>
> Thread 1 (Thread 47199987718976 (LWP 18957)):
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> (handle=0x400, timeout=0x0, alertable=1, poll=0)
>     at handles.c:1605
> #2  0x000000000057aa1d in WaitForMultipleObjectsEx (numobjects=3,
> handles=0x2aaaab710ed0, waitall=0, timeout=4294967295,
>     alertable=0) at wait.c:723
> #3  0x000000000050ff01 in mono_thread_manage () at threads.c:2497
> #4  0x0000000000473153 in mono_main (argc=2, argv=<value optimized out>) at
> driver.c:1648
> #5  0x00002aed9a5f1154 in __libc_start_main () from /lib64/libc.so.6
> #6  0x0000000000422139 in _start ()
> #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
>
> =================================================================
> Got a SIGSEGV while executing native code. This usually indicates
> a fatal error in the mono runtime or one of the native libraries
> used by your application.
> =================================================================
>
> Aborted
>
>
>
>
>
> I wrote following code:
>
> using System;
> using System.Net.Sockets;
> using System.Threading;
>
> //using some my namespace
>
> namespace CommandAgent
> {
> class MainClass
> {
> public static void Main(string[] args)
> {
>
> SchemaServer schemaServer=new SchemaServer();
> Thread threadServer=new Thread(new ThreadStart(schemaServer.Procedure));
> threadServer.Start();
>
> Thread threadPoll=new Thread(new ThreadStart(SchemaPoll.Procedure));
> threadPoll.Start();
>
>
> }
> }
>
> public class SchemaServer
> {
> public SchemaServer()
> {
> }
> public void Procedure()
> {
> while(true)
> {
> //do something
> }
> }
> }
>
> public class SchemaPoll
> {
> public static void Procedure()
> {
> while(true)
> {
> try
> {
> //CommandInvoker.Invoke() method is used to scan oracle database table
> to retrieve some data
> CommandInvoker.Invoke();
> Thread.Sleep(5000);
> //CommandFeeder.Feed() method is used to scan oracle database table to
> retrieve some data
> CommandFeeder.Feed();
> }
> catch(Exception ex)
> {
> Console.WriteLine("Exception in SchemaPoll.Procedure:{0}",ex.Message);
> }
> }
> }
> }
>
> }

_______________________________________________
Mono-list maillist  -  Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list

Re: multi-threading operation on Oracle database led to program crash !!!

by Veerapuram Varadhan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2009-11-03 at 14:55 -0500, Miguel de Icaza wrote:
> Hello,
>
> > I used Mono+System.Data.OracleClient+instantclient to access Oracle database
> > in multi-threading way on x64bit SUSE Linux.
>
> It would be useful to have a test case to reproduce this issue.
>

Sample repro can be found here:
https://bugzillafiles.novell.org/attachment.cgi?id=170208 

Thanks,

V. Varadhan

> >
> > Your reply will be highly appreciated!
> >
> > My program run several minutes and crashed and exited with following
> > message:
> >
> > Stacktrace:
> >
> >
> > Native stacktrace:
> >
> >         mono(mono_handle_native_sigsegv+0xb0) [0x48c230]
> >         mono(mono_arch_handle_altstack_exception+0xf5) [0x4bbf55]
> >         /lib64/libpthread.so.0 [0x2aed9a374c10]
> >         /opt/oracle/oradb/home/lib/libclntsh.so(kpcsncharset2ucs2+0x2b)
> > [0x2aaaac9788e3]
> >         /opt/oracle/oradb/home/lib/libclntsh.so(OCICharSetToUnicode+0x9)
> > [0x2aaaac8a6a93]
> >         [0x40adf508]
> >
> > Debug info from gdb:
> >
> > Using host libthread_db library "/lib64/libthread_db.so.1".
> > [Thread debugging using libthread_db enabled]
> > [New Thread 47199987718976 (LWP 18957)]
> > [New Thread 1102186816 (LWP 18971)]
> > [New Thread 1100085568 (LWP 18970)]
> > [New Thread 1097984320 (LWP 18969)]
> > [New Thread 1091615040 (LWP 18966)]
> > [New Thread 1089448256 (LWP 18965)]
> > [New Thread 1084852544 (LWP 18963)]
> > [New Thread 1082751296 (LWP 18962)]
> > [New Thread 1080584512 (LWP 18961)]
> > [New Thread 1078483264 (LWP 18960)]
> > [New Thread 1075988800 (LWP 18959)]
> > [New Thread 1073887552 (LWP 18958)]
> > 0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> >   12 Thread 1073887552 (LWP 18958)  0x00002aed9a374231 in fmod () from
> > /lib64/libpthread.so.0
> >   11 Thread 1075988800 (LWP 18959)  0x00002aed9a372dfd in sem_wait () from
> > /lib64/libpthread.so.0
> >   10 Thread 1078483264 (LWP 18960)  0x00002aed9a685fcb in fmod () from
> > /lib64/libc.so.6
> >   9 Thread 1080584512 (LWP 18961)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >   8 Thread 1082751296 (LWP 18962)  0x00002aed9a373b8b in fmod () from
> > /lib64/libpthread.so.0
> >   7 Thread 1084852544 (LWP 18963)  0x00002aed9a37394b in fmod () from
> > /lib64/libpthread.so.0
> >   6 Thread 1089448256 (LWP 18965)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >   5 Thread 1091615040 (LWP 18966)  0x00002aed9a693b68 in fmod () from
> > /lib64/libc.so.6
> >   4 Thread 1097984320 (LWP 18969)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >   3 Thread 1100085568 (LWP 18970)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >   2 Thread 1102186816 (LWP 18971)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >   1 Thread 47199987718976 (LWP 18957)  0x00002aed9a3711c6 in
> > pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
> >
> > Thread 12 (Thread 1073887552 (LWP 18958)):
> > #0  0x00002aed9a374231 in fmod () from /lib64/libpthread.so.0
> > #1  0x000000000055dcaf in collection_thread (unused=<value optimized out>)
> > at collection.c:34
> > #2  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #3  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #4  0x0000000000000000 in ?? ()
> >
> > Thread 11 (Thread 1075988800 (LWP 18959)):
> > #0  0x00002aed9a372dfd in sem_wait () from /lib64/libpthread.so.0
> > #1  0x00000000004ef998 in finalizer_thread (unused=<value optimized out>) at
> > gc.c:1058
> > #2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #3  0x00000000005773b3 in thread_start_routine (args=0x7dc560) at
> > threads.c:286
> > #4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #7  0x0000000000000000 in ?? ()
> >
> > Thread 10 (Thread 1078483264 (LWP 18960)):
> > #0  0x00002aed9a685fcb in fmod () from /lib64/libc.so.6
> > #1  0x000000004027f625 in ?? ()
> > #2  0x00000000009820d0 in ?? ()
> > #3  0x00002aaaaaadb4c8 in ?? ()
> > #4  0x00002aaaab5f9000 in ?? ()
> > #5  0x0000000000000020 in ?? ()
> > #6  0x0000000040485068 in ?? ()
> > #7  0x0000000040484fc0 in ?? ()
> > #8  0x0000000040484f00 in ?? ()
> > #9  0x00002aaaaaadb4c8 in ?? ()
> > #10 0x00002aaaab5f9000 in ?? ()
> > #11 0x0000000000000020 in ?? ()
> > #12 0x00002aaaab1e8ca0 in ?? ()
> > #13 0x000000004027f4d0 in ?? ()
> > #14 0x0000000000000004 in ?? ()
> > #15 0x00002aaaab1e8ca0 in ?? ()
> > #16 0x0000000000000000 in ?? ()
> >
> > Thread 9 (Thread 1080584512 (LWP 18961)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x40d, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x40d,
> > timeout=4294967295, alertable=1) at wait.c:205
> > #3  0x000000000050c6b3 in
> > ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value
> > optimized out>, handle=0x40d,
> >     ms=-1, exitContext=<value optimized out>) at threads.c:1446
> > #4  0x000000004028353e in ?? ()
> > #5  0x0000000000a1ccc0 in ?? ()
> > #6  0x000018aeea14452c in ?? ()
> > #7  0x0000000000000000 in ?? ()
> >
> > Thread 8 (Thread 1082751296 (LWP 18962)):
> > #0  0x00002aed9a373b8b in fmod () from /lib64/libpthread.so.0
> > #1  0x0000000000574034 in _wapi_accept (fd=6, addr=0x0, addrlen=0x0) at
> > sockets.c:209
> > #2  0x0000000000516b33 in
> > ves_icall_System_Net_Sockets_Socket_Accept_internal (sock=6,
> > error=0x40896e7c,
> >     blocking=<value optimized out>) at socket-io.c:892
> > #3  0x0000000040a9904e in ?? ()
> > #4  0x000000000087ec90 in ?? ()
> > #5  0x00002aaaaaadb198 in ?? ()
> > #6  0x0000000000000000 in ?? ()
> >
> > Thread 7 (Thread 1084852544 (LWP 18963)):
> > #0  0x00002aed9a37394b in fmod () from /lib64/libpthread.so.0
> > #1  0x000000000048c3a3 in mono_handle_native_sigsegv (signal=<value
> > optimized out>, ctx=<value optimized out>)
> >     at /usr/include/bits/unistd.h:35
> > #2  0x00000000004bbf55 in mono_arch_handle_altstack_exception
> > (sigctx=0x2aaaab649c40, fault_addr=<value optimized out>,
> >     stack_ovf=0) at exceptions-amd64.c:910
> > #3  <signal handler called>
> > #4  0x00002aaaac9788e3 in kpcsncharset2ucs2 () from
> > /opt/oracle/oradb/home/lib/libclntsh.so
> > #5  0x00002aaaac8a6a93 in OCICharSetToUnicode () from
> > /opt/oracle/oradb/home/lib/libclntsh.so
> > #6  0x0000000040adf508 in ?? ()
> > #7  0x0000000000874de0 in ?? ()
> > #8  0x00002aaaae9969f0 in ?? ()
> > #9  0x0000000040a97bfc in ?? ()
> > #10 0x00002aaaaed27000 in ?? ()
> > #11 0x00002aaaabcc4260 in ?? ()
> > #12 0x0000000000000000 in ?? ()
> >
> > Thread 6 (Thread 1089448256 (LWP 18965)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x401, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> > timeout=4294967295, alertable=1) at wait.c:205
> > #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> > threadpool.c:1424
> > #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #5  0x00000000005773b3 in thread_start_routine (args=0x7dcf88) at
> > threads.c:286
> > #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #9  0x0000000000000000 in ?? ()
> >
> > Thread 5 (Thread 1091615040 (LWP 18966)):
> > #0  0x00002aed9a693b68 in fmod () from /lib64/libc.so.6
> > #1  0x0000000000511d34 in socket_io_epoll_main (p=<value optimized out>) at
> > threadpool.c:600
> > #2  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #3  0x00000000005773b3 in thread_start_routine (args=0x7dd1e0) at
> > threads.c:286
> > #4  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #5  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #6  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #7  0x0000000000000000 in ?? ()
> >
> > Thread 4 (Thread 1097984320 (LWP 18969)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x401, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> > timeout=4294967295, alertable=1) at wait.c:205
> > #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> > threadpool.c:1424
> > #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #5  0x00000000005773b3 in thread_start_routine (args=0x7dd5c8) at
> > threads.c:286
> > #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #9  0x0000000000000000 in ?? ()
> >
> > Thread 3 (Thread 1100085568 (LWP 18970)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x401, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> > timeout=4294967295, alertable=1) at wait.c:205
> > #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> > threadpool.c:1424
> > #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #5  0x00000000005773b3 in thread_start_routine (args=0x7dd8e8) at
> > threads.c:286
> > #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #9  0x0000000000000000 in ?? ()
> >
> > Thread 2 (Thread 1102186816 (LWP 18971)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x401, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x0000000000579fc0 in WaitForSingleObjectEx (handle=0x401,
> > timeout=4294967295, alertable=1) at wait.c:205
> > #3  0x0000000000513121 in async_invoke_thread (data=0x0) at
> > threadpool.c:1424
> > #4  0x000000000050ec6c in start_wrapper (data=<value optimized out>) at
> > threads.c:623
> > #5  0x00000000005773b3 in thread_start_routine (args=0x7dd9b0) at
> > threads.c:286
> > #6  0x0000000000593192 in GC_start_routine (arg=<value optimized out>) at
> > pthread_support.c:1382
> > #7  0x00002aed9a36d143 in start_thread () from /lib64/libpthread.so.0
> > #8  0x00002aed9a69374d in clone () from /lib64/libc.so.6
> > #9  0x0000000000000000 in ?? ()
> >
> > Thread 1 (Thread 47199987718976 (LWP 18957)):
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> > #1  0x0000000000562b0a in _wapi_handle_timedwait_signal_handle
> > (handle=0x400, timeout=0x0, alertable=1, poll=0)
> >     at handles.c:1605
> > #2  0x000000000057aa1d in WaitForMultipleObjectsEx (numobjects=3,
> > handles=0x2aaaab710ed0, waitall=0, timeout=4294967295,
> >     alertable=0) at wait.c:723
> > #3  0x000000000050ff01 in mono_thread_manage () at threads.c:2497
> > #4  0x0000000000473153 in mono_main (argc=2, argv=<value optimized out>) at
> > driver.c:1648
> > #5  0x00002aed9a5f1154 in __libc_start_main () from /lib64/libc.so.6
> > #6  0x0000000000422139 in _start ()
> > #0  0x00002aed9a3711c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
> > /lib64/libpthread.so.0
> >
> > =================================================================
> > Got a SIGSEGV while executing native code. This usually indicates
> > a fatal error in the mono runtime or one of the native libraries
> > used by your application.
> > =================================================================
> >
> > Aborted
> >
> >
> >
> >
> >
> > I wrote following code:
> >
> > using System;
> > using System.Net.Sockets;
> > using System.Threading;
> >
> > //using some my namespace
> >
> > namespace CommandAgent
> > {
> > class MainClass
> > {
> > public static void Main(string[] args)
> > {
> >
> > SchemaServer schemaServer=new SchemaServer();
> > Thread threadServer=new Thread(new ThreadStart(schemaServer.Procedure));
> > threadServer.Start();
> >
> > Thread threadPoll=new Thread(new ThreadStart(SchemaPoll.Procedure));
> > threadPoll.Start();
> >
> >
> > }
> > }
> >
> > public class SchemaServer
> > {
> > public SchemaServer()
> > {
> > }
> > public void Procedure()
> > {
> > while(true)
> > {
> > //do something
> > }
> > }
> > }
> >
> > public class SchemaPoll
> > {
> > public static void Procedure()
> > {
> > while(true)
> > {
> > try
> > {
> > //CommandInvoker.Invoke() method is used to scan oracle database table
> > to retrieve some data
> > CommandInvoker.Invoke();
> > Thread.Sleep(5000);
> > //CommandFeeder.Feed() method is used to scan oracle database table to
> > retrieve some data
> > CommandFeeder.Feed();
> > }
> > catch(Exception ex)
> > {
> > Console.WriteLine("Exception in SchemaPoll.Procedure:{0}",ex.Message);
> > }
> > }
> > }
> > }
> >
> > }
>
> _______________________________________________
> Mono-list maillist  -  Mono-list@...
> http://lists.ximian.com/mailman/listinfo/mono-list

_______________________________________________
Mono-list maillist  -  Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list

Re: multi-threading operation on Oracle database led to program crash !!!

by Miguel de Icaza-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

> Sample repro can be found here:
> https://bugzillafiles.novell.org/attachment.cgi?id=170208 

So this sample without any threads is crashing the Mono runtime?

That would point to some P/Invoke signature being wrong.

_______________________________________________
Mono-list maillist  -  Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list

Re: multi-threading operation on Oracle database led to program crash !!!

by Veerapuram Varadhan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On Tue, 2009-11-03 at 15:14 -0500, Miguel de Icaza wrote:
> Hello,
>
> > Sample repro can be found here:
> > https://bugzillafiles.novell.org/attachment.cgi?id=170208 
>
> So this sample without any threads is crashing the Mono runtime?
>
> That would point to some P/Invoke signature being wrong.
>
Nope, this doesn't crash mono.  This is an example of a self-contained
test program that creates the required tables/records apart from the
actual code that reproduces a bug.

For any database related bug, a sample program of this sort will help in
quickly finding a solution.

(Ibrahim, in his first mail, had sent a code fragment instead of a
fully-runnable test program.)

Thanks,

V. Varadhan


_______________________________________________
Mono-list maillist  -  Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list

Re: multi-threading operation on Oracle database led to program crash !!!

by ibrahim steed :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

After I revised my code to provide test program, I cannot to repro this bug any more.

Thanks for your instant support, which makes me more confident to use Mono widely in my project.

I love this cute mono.


On Wed, Nov 4, 2009 at 4:14 AM, Miguel de Icaza <miguel@...> wrote:
Hello,

> Sample repro can be found here:
> https://bugzillafiles.novell.org/attachment.cgi?id=170208

So this sample without any threads is crashing the Mono runtime?

That would point to some P/Invoke signature being wrong.




--
Best Wishes,

         马智

_______________________________________________
Mono-list maillist  -  Mono-list@...
http://lists.ximian.com/mailman/listinfo/mono-list