[Mono-bugs] [Bug 45817][Maj] New - mono hangs on exception backtrace
bugzilla-daemon@rocky.ximian.com
bugzilla-daemon@rocky.ximian.com
Thu, 3 Jul 2003 18:18:44 -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 m.canini@libero.it.
http://bugzilla.ximian.com/show_bug.cgi?id=45817
--- shadow/45817 Thu Jul 3 18:18:44 2003
+++ shadow/45817.tmp.19590 Thu Jul 3 18:18:44 2003
@@ -0,0 +1,323 @@
+Bug#: 45817
+Product: Mono/Runtime
+Version: unspecified
+OS:
+OS Details: Debian sid
+Status: NEW
+Resolution:
+Severity:
+Priority: Major
+Component: misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: m.canini@libero.it
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Summary: mono hangs on exception backtrace
+
+Description of Problem:
+mono hangs on exception backtrace. the exception is uncaught
+
+Steps to reproduce the problem:
+1. compile the code below with mcs -g /out:bug2.exe /r:System.dll
+/r:System.Data.dll bug2.cs Schema4ADO.Net.cs
+2. run mono --debug bug2.exe or ./bug2.exe
+3. take a look
+
+Actual Results:
+
+Bugged
+
+Unhandled Exception: System.NullReferenceException: A null value was found
+where an object instance was required
+in (unmanaged) 00 .Bug:nullrefexc ()
+in <0x00015> 00 .Bug:Main (string[])
+
+Expected Results:
+
+Bugged
+
+Unhandled Exception: System.NullReferenceException: A null value was found
+where an object instance was required
+in (unmanaged) 00 .Bug:nullrefexc ()
+in <0x00015> 00 .Bug:Main (string[])
+
+marco@enoa:~$ <--- console
+
+How often does this happen?
+Always
+
+Additional Information:
+
+if you comment out the Console.WriteLine("Bugged") line mono won't hang
+
+Code:
+
+bug2.cs
+
+using System;
+using Schema4ADO.Net;
+
+public class Bug
+{
+
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Bugged");
+ nullrefexc();
+ }
+
+ static void nullrefexc()
+ {
+
+ object[,] types = new object[,] {
+//Name Data Type Size Pref Suff
+Create Params Nulla Case Searchable Unsig F P&S A Uniq
+Localize Min S Max S Guid TypeL Vers IsLong BestM F Len
+{"YEAR", DBTYPE.I1, 1, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"TINYINT", DBTYPE.I1, 1, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"TINYINT AUTO_INCREMENT", DBTYPE.I1, 1, "", "", "",
+ false, false, DB.SEARCHABLE, false, true, true, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"TINYINT UNSIGNED", DBTYPE.UI1, 1, "", "", "",
+ true, false, DB.SEARCHABLE, true, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"SMALLINT", DBTYPE.I2, 2, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"SMALLINT AUTO_INCREMENT", DBTYPE.I2, 2, "", "", "",
+ false, false, DB.SEARCHABLE, false, true, true, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"SMALLINT UNSIGNED", DBTYPE.UI2, 2, "", "", "",
+ true, false, DB.SEARCHABLE, true, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"INT", DBTYPE.I4, 4, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"INT AUTO_INCREMENT", DBTYPE.I4, 4, "", "", "",
+ false, false, DB.SEARCHABLE, false, true, true, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"INT UNSIGNED", DBTYPE.UI4, 4, "", "", "",
+ true, false, DB.SEARCHABLE, true, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"MEDIUMINT", DBTYPE.I4, 4, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"MEDIUMINT AUTO_INCREMENT",DBTYPE.I4, 4, "", "", "",
+ false, false, DB.SEARCHABLE, false, true, true, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"MEDIUMINT UNSIGNED", DBTYPE.UI4, 4, "", "", "",
+ true, false, DB.SEARCHABLE, true, true, false, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"BIGINT", DBTYPE.I8, 8, "", "", "",
+ true, false, DB.SEARCHABLE, false, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"BIGINT AUTO_INCREMENT", DBTYPE.I8, 8, "", "", "",
+ false, false, DB.SEARCHABLE, false, true, true, /*AS 0*/
+null, null, null, null, null, false, false, true },
+{"BIGINT UNSIGNED", DBTYPE.UI8, 8, "", "", "",
+ true, false, DB.SEARCHABLE, true, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"FLOAT", DBTYPE.R4, 7, "", "", "",
+ true, false, DB.SEARCHABLE, false, false, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"DOUBLE", DBTYPE.R8, 15, "", "", "",
+ true, false, DB.SEARCHABLE, false, false, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"NUMERIC", DBTYPE.DECIMAL, 15, "", "",
+"precision,scale", true, false, DB.SEARCHABLE, false, false, false, /*AS
+0*/ 0, null, null, null, null, false, true, true },
+{"DATE", DBTYPE.DBDATE, 4, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"TIME", DBTYPE.DBTIME, 4, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"TIMESTAMP", DBTYPE.DBTIMESTAMP, 4, "'", "'",
+"length", true, false, DB.SEARCHABLE, null, true, false, /*AS
+0*/ null, null, null, null, null, false, false, true },
+{"DATETIME", DBTYPE.DBTIMESTAMP, 4, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, true, false, /*AS 0*/
+null, null, null, null, null, false, true, true },
+{"CHAR", DBTYPE.STR, 255, "'", "'",
+"length", true, true, DB.SEARCHABLE, null, false, false, /*AS
+0*/ null, null, null, null, null, false, false, false},
+{"CHAR BINARY", DBTYPE.BYTES, 255, "'", "'",
+"length", true, false, DB.SEARCHABLE, null, false, false, /*AS
+0*/ null, null, null, null, null, false, false, false},
+{"VARCHAR", DBTYPE.STR, 255, "'", "'",
+"length", true, true, DB.SEARCHABLE, null, false, false, /*AS
+0*/ null, null, null, null, null, false, false, false},
+{"VARCHAR BINARY", DBTYPE.BYTES, 255, "'", "'",
+"length", true, false, DB.SEARCHABLE, null, false, false, /*AS
+0*/ null, null, null, null, null, false, false, false},
+{"TINYTEXT", DBTYPE.STR, 255, "'", "'", "",
+ true, true, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, false, false},
+{"TINYBLOB", DBTYPE.BYTES, 255, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, false, false},
+{"TEXT", DBTYPE.STR, 65535, "'", "'", "",
+ true, true, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, true, false},
+{"BLOB", DBTYPE.BYTES, 65535, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, true, false},
+{"MEDIUMTEXT", DBTYPE.STR, 16777215, "'", "'", "",
+ true, true, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, false, false},
+{"MEDIUMBLOB", DBTYPE.BYTES, 16777215, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, true, false, false},
+{"LONGTEXT", DBTYPE.STR, 2147483647, "'", "'", "",
+ true, true, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, false, false, false},
+{"LONGBLOB", DBTYPE.BYTES, 2147483647, "'", "'", "",
+ true, false, DB.SEARCHABLE, null, false, false, /*AS 0*/
+null, null, null, null, null, true, false, false}
+ };
+ // useless code
+ int a, b ,c;
+ a = 1;
+ b = 2;
+ c = a + b;
+ }
+
+}
+
+Schema4ADO.Net.cs
+
+/**************************************************************************
+ * Schema4ADO.Net: OleDb compatible database schema library *
+ * Copyright (C) 2003 by Marco Canini, Domenico Garassino, Marco Randazzo *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining *
+ * a copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, sublicense, and/or sell copies of the Software, and to *
+ * permit persons to whom the Software is furnished to do so, subject to *
+ * the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be *
+ * included in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE *
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION *
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION *
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ **************************************************************************/
+
+/**************************************************************************
+ $Id: Schema4ADO.Net.cs,v 1.5 2003/07/02 15:05:16 marco Exp $
+ **************************************************************************/
+
+namespace Schema4ADO.Net
+{
+
+ public enum DBCOLUMNFLAGS
+ {
+ ISBOOKMARK = 0x1,
+ MAYDEFER = 0x2,
+ WRITE = 0x4,
+ WRITEUNKNOWN = 0x8,
+ ISFIXEDLENGTH = 0x10,
+ ISNULLABLE = 0x20,
+ MAYBENULL = 0x40,
+ ISLONG = 0x80,
+ ISROWID = 0x100,
+ ISROWVER = 0x200,
+ CACHEDEFERRED = 0x1000,
+ SCALEISNEGATIVE = 0x4000,
+ RESERVED = 0x8000,
+ ISROWURL = 0x10000,
+ ISDEFAULTSTREAM = 0x20000,
+ ISCOLLECTION = 0x40000,
+ ISSTREAM = 0x80000,
+ ISROWSET = 0x100000,
+ ISROW = 0x200000,
+ ROWSPECIFICCOLUMN = 0x400000
+ }
+
+ public enum DBTYPE
+ {
+ // The following values exactly match VARENUM
+ // in Automation and may be used in VARIANT.
+ EMPTY = 0,
+ NULL = 1,
+ I2 = 2,
+ I4 = 3,
+ R4 = 4,
+ R8 = 5,
+ CY = 6,
+ DATE = 7,
+ BSTR = 8,
+ IDISPATCH = 9,
+ ERROR = 10,
+ BOOL = 11,
+ VARIANT = 12,
+ IUNKNOWN = 13,
+ DECIMAL = 14,
+ UI1 = 17,
+ ARRAY = 0x2000,
+ BYREF = 0x4000,
+ I1 = 16,
+ UI2 = 18,
+ UI4 = 19,
+
+ // The following values exactly match VARENUM
+ // in Automation but cannot be used in VARIANT.
+ I8 = 20,
+ UI8 = 21,
+ GUID = 72,
+ VECTOR = 0x1000,
+ FILETIME = 64,
+ RESERVED = 0x8000,
+
+ // The following values are not in VARENUM in OLE.
+ BYTES = 128,
+ STR = 129,
+ WSTR = 130,
+ NUMERIC = 131,
+ UDT = 132,
+ DBDATE = 133,
+ DBTIME = 134,
+ DBTIMESTAMP = 135,
+ HCHAPTER = 136,
+ PROPVARIANT = 138,
+ VARNUMERIC = 139
+ }
+
+ public enum DBPROPVAL_IT
+ {
+ BTREE = 0x00000001,
+ HASH = 0x00000002,
+ CONTENT = 0x00000003,
+ DBPROPVAL_IT_OTHER = 0x00000004
+ }
+
+ public enum DBPROPVAL_IN
+ {
+ ALLOWNULL = 0x00000000,
+ DISALLOWNULL = 0x00000001,
+ IGNORENULL = 0x00000002,
+ IGNOREANYNULL = 0x00000004
+ }
+
+ public sealed class DB
+ {
+ public static int UNSEARCHABLE = 0x01;
+ public static int LIKE_ONLY = 0x02;
+ public static int ALL_EXCEPT_LIKE = 0x03;
+ public static int SEARCHABLE = 0x04;
+ public static int COLLATION_ASC = 0x01;
+ public static int COLLATION_DESC = 0x02;
+ }
+}