[Mono-bugs] [Bug 60613][Maj] Changed - NullReferenceException in OracleDataReader.GetSchemaTable caused by JIT optimizations
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Thu, 24 Jun 2004 03:48:35 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by joergr@voelcker.com.
http://bugzilla.ximian.com/show_bug.cgi?id=60613
--- shadow/60613 2004-06-24 03:35:23.000000000 -0400
+++ shadow/60613.tmp.22757 2004-06-24 03:48:35.000000000 -0400
@@ -76,6 +76,66 @@
in OracleDataReader.GetSchemaTable also "fixes" this problem. And this
line doesn't work without Oracle connection.
I'll try to run it with gdb to get a stacktrace.
+
+------- Additional Comments From JoergR@voelcker.com 2004-06-24 03:48 -------
+Here is a log of a GDB session:
+
+(gdb) run OracleGetSchemaTable.exe
+Starting program: /usr/local/bin/mono OracleGetSchemaTable.exe
+[New Thread 16384 (LWP 3009)]
+[New Thread 32769 (LWP 3011)]
+[New Thread 16386 (LWP 3012)]
+[New Thread 32771 (LWP 3013)]
+
+Program received signal SIGSEGV, Segmentation fault.
+[Switching to Thread 32771 (LWP 3013)]
+0x415d2932 in ?? ()
+(gdb) where
+#0 0x415d2932 in ?? ()
+#1 0x42633923 in ?? ()
+#2 0x426338aa in ?? ()
+#3 0x4263778f in ?? ()
+#4 0x415cd574 in ?? ()
+#5 0x415cd3f8 in ?? ()
+#6 0x4005a0a7 in mono_jit_runtime_invoke (method=0x0, obj=0x0,
+params=0xbf5ff974, exc=0x0) at mini.c:8086
+#7 0x4009f287 in mono_runtime_invoke (method=0x811b058, obj=0x0,
+params=0xbf5ff974, exc=0x0) at object.c:998
+#8 0x4009ff35 in mono_runtime_exec_main (method=0x811b058,
+args=0x807afc0, exc=0x0) at object.c:1502
+#9 0x4009fbb7 in mono_runtime_run_main (method=0x811b058, argc=0,
+argv=0xbffff2ac, exc=0x0) at object.c:1356
+#10 0x400646da in mono_jit_exec (domain=0x806eed8, assembly=0x8102400,
+argc=1, argv=0xbffff2a8) at driver.c:469
+#11 0x40064751 in main_thread_handler (user_data=0xbffff200) at
+driver.c:503
+#12 0x400bec17 in start_wrapper (data=0x811abd0) at threads.c:253
+#13 0x4010126b in timed_thread_start_routine (args=0x811abe8) at
+timed-thread.c:134
+#14 0x4011b3e1 in GC_start_routine (arg=0x806bca0) at
+pthread_support.c:1184
+#15 0x40bcbc60 in pthread_start_thread () from /lib/libpthread.so.0
+#16 0x40bcbcdf in pthread_start_thread_event () from /lib/libpthread.so.0
+(gdb) p print_method_from_ip (0x415d2932)
+IP 0x415d2932 at offset 0xa of method
+System.Data.OracleClient.Oci.OciHandle:op_Implicit
+(System.Data.OracleClient.Oci.OciHandle) (0x415d2928 0x415d2942)
+$1 = void
+(gdb) p print_method_from_ip (0x42633923)
+IP 0x42633923 at offset 0x6b of method
+System.Data.OracleClient.Oci.OciHandle:GetAttributeSByte
+(System.Data.OracleClient.Oci.OciAttributeType,System.Data.OracleClient.Oci.OciErrorHandle)
+(0x426338b8 0x426339a9)
+$2 = void
+(gdb) p print_method_from_ip (0x426338aa)
+IP 0x426338aa at offset 0x32 of method
+System.Data.OracleClient.Oci.OciParameterDescriptor:GetScale ()
+(0x42633878 0x426338b5)
+$3 = void
+
+The stacktrace matches exactly the stacktrace of the
+NullReferenceException. I think this is not very helpfull. Do you have
+other ideas to track this down?