[Mono-bugs] [Bug 568366] New: NET_2_0 profile : BuildManagerDirectoryBuilder AddVirtualDir infinite loop
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Jan 5 11:51:59 EST 2010
http://bugzilla.novell.com/show_bug.cgi?id=568366
http://bugzilla.novell.com/show_bug.cgi?id=568366#c0
Summary: NET_2_0 profile : BuildManagerDirectoryBuilder
AddVirtualDir infinite loop
Classification: Mono
Product: Mono: Class Libraries
Version: 2.6.x
Platform: Other
OS/Version: Other
Status: NEW
Severity: Critical
Priority: P5 - None
Component: Sys.Web
AssignedTo: mhabersack at novell.com
ReportedBy: informatique.internet at fiducial.fr
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.6)
Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5
We have a complex web application with many ascx files with dependencies...
if i launch xsp2... the compilation never ends...
I've sent a SIGQUIT to xsp2 and i've seen that mono was cycling in
AddVirtualDir...
After further investigation, we've seen the you never add the VirtualDir to the
cache variable... this can lead to infinites loops
Reproducible: Always
Patch to fix this issue
Index: System.Web.Compilation/BuildManagerDirectoryBuilder.cs
===================================================================
--- System.Web.Compilation/BuildManagerDirectoryBuilder.cs (révision 149000)
+++ System.Web.Compilation/BuildManagerDirectoryBuilder.cs (copie de
travail)
@@ -158,6 +158,7 @@
{
if (vdir == null)
return;
BuildProvider bp;
IDictionary <string, bool> deps;
@@ -186,7 +187,9 @@
depDir = VirtualPathUtility.GetDirectory (s); //
dependencies are assumed to contain absolute paths
if (cache.ContainsKey (depDir))
continue;
+ cache.Add(depDir,true);
AddVirtualDir (GetVirtualDirectory (s), bpcoll, cache);
+
}
}
}
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list