[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