[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?