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 [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=81296 --- shadow/81296 2007-04-03 10:19:53.000000000 -0400 +++ shadow/81296.tmp.25261 2007-04-29 22:03:05.000000000 -0400 @@ -10,13 +10,12 @@ Component: System AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] QAContact: [EMAIL PROTECTED] TargetMilestone: --- URL: -Cc: Summary: System.Diagnostics configuration sometimes doesn't work Description of Problem: system.diagnostics section of application config sometimes doesn't work. I'll demonstrate it with a broken TraceSwitch, but I believe the same bug triggers also other problems. @@ -99,6 +98,79 @@ ------- Additional Comments From [EMAIL PROTECTED] 2007-04-03 10:19 ------- Created an attachment (id=18997) .config file demonstrating the problem + +------- Additional Comments From [EMAIL PROTECTED] 2007-04-29 22:03 ------- +Apologies for taking so long to look at this; I hadn't seen it in my +mono-bugzilla email. If you hadn't emailed mono-devel-list I might +not have seen it... + +I have some good news, and some bad news. + +The good news: I can reproduce it, I've run it through mdb (mdb works! + may wonders never cease), and I've found the problem. + +The bad news: the problem is that System.Xml is broken here. Not sure +why. + [EMAIL PROTECTED]:tmp$ mdb 81296.exe +Mono Debugger +(mdb) b System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode +Breakpoint 1 at +System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode +(mdb) r +Starting program: 81296.exe +Thread @1 stopped at #0: 0xb734a6b2 in +SwitchTest.Program.Main(System.String[])+0x12 at +/home/jon/tmp/81296.cs:10. + 10 TraceSwitch ts = new TraceSwitch("t", "t"); +(mdb) c +Thread @1 hit breakpoint 1 at #0: 0xb6ea2be4 in +System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode(System.Collections.IDictionary,System.Xml.XmlNode)+0x44 +at +/area-51/Development/mono-HEAD/mcs/class/System/System.Diagnostics/DiagnosticsConfigurationHandler.cs:163. + 163 ValidateInvalidAttributes (node.Attributes, node); +(mdb) n +Thread @1 stopped at #0: 0xb6ea2c05 in +System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode(System.Collections.IDictionary,System.Xml.XmlNode)+0x65 +at +/area-51/Development/mono-HEAD/mcs/class/System/System.Diagnostics/DiagnosticsConfigurationHandler.cs:165. + 165 IDictionary newNodes = new Hashtable (); +(mdb) n +Thread @1 stopped at #0: 0xb6ea2c25 in +System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode(System.Collections.IDictionary,System.Xml.XmlNode)+0x85 +at +/area-51/Development/mono-HEAD/mcs/class/System/System.Diagnostics/DiagnosticsConfigurationHandler.cs:167. + 167 foreach (XmlNode child in node.ChildNodes) { +(mdb) p node.OuterXml +(System.String) "<switches><add name="t" value="1" /></switches>" + +Notice here how `node' actually has a value, and it's the appropriate +section of your .config file. This is good. + +(mdb) n +Thread @1 stopped at #0: 0xb6ea2e33 in +System.Diagnostics.DiagnosticsConfigurationHandler.AddSwitchesNode(System.Collections.IDictionary,System.Xml.XmlNode)+0x293 +at +/area-51/Development/mono-HEAD/mcs/class/System/System.Diagnostics/DiagnosticsConfigurationHandler.cs:197. + 197 } + +And this is where things go horribly wrong. Line 197 is the _end_ of +the `foreach' loop. Notice how NO nodes were processed (thus no +switches were added to the `newNodes' dictionary, so we'll never find +the switch value from the TraceSwitch instance). + +Doubly interesting is this: + +(mdb) p node.FirstChild +(System.Configuration.ConfigXmlDocument/ConfigXmlElement) { fileName = +"/home/jon/tmp/81296.exe.config", lineNumber = 1 } + +So there is definately a child node in there -- as shown by *both* +.OuterXml and .FirstChild -- but the `foreach' loop never executes it. + +Atsushi: Any chance you could figure out why the XmlNode enumeration +is broken here? Or should I try to create a smaller test case? + _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
