Question

we are having issues deploying the latest System.Web.Optimization 1.0 library from NUGET. In our production instances on Azure, the logs fill up with Microsoft.Ajax.Utilities.JScriptException errors, CPU spikes to 100% and everything grinds to a halt. A memory dump is showing the following error (211 of them). Any help will be appreciated!

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        try
        {
            BundleConfig.RegisterBundles(BundleTable.Bundles);  // to enable bundling & minification, set debug to false in web config
        }
        catch (Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(ex);
        }

        SetupIgnoredProfilerItems();
    }

Error:


00000000`0655a6b8 000007fe`fcf410dc ntdll!ZwWaitForSingleObject+0xa [x:\win7.obj.amd64fre\minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 180]
00000000`0655a6c0 000007fe`f7b64a6f KERNELBASE!WaitForSingleObjectEx+0x79 [d:\win7sp1_gdr\minkernel\kernelbase\synch.c @ 1301]
00000000`0655a760 000007fe`f7b64a1c clr!CLREventWaitHelper2+0x48 [f:\dd\ndp\clr\src\vm\synch.cpp @ 735]
00000000`0655a7a0 000007fe`f7b648d7 clr!CLREventWaitHelper+0x20 [f:\dd\ndp\clr\src\vm\synch.cpp @ 761]
00000000`0655a800 000007fe`f7d54258 clr!CLREvent::WaitEx+0x5e [f:\dd\ndp\clr\src\vm\synch.cpp @ 864]
00000000`0655a8a0 000007fe`f7d5413f clr!SVR::gc_heap::wait_for_gc_done+0x98 [f:\dd\ndp\clr\src\vm\gc.cpp @ 8028]
00000000`0655a8d0 000007fe`f7f22510 clr!SVR::GCHeap::GarbageCollectGeneration+0xff [f:\dd\ndp\clr\src\vm\gc.cpp @ 26464]
00000000`0655a920 000007fe`f7cae060 clr!SVR::gc_heap::try_allocate_more_space+0x274480 [f:\dd\ndp\clr\src\vm\gc.cpp @ 10232]
00000000`0655a980 000007fe`f7cae1d5 clr!SVR::gc_heap::allocate_more_space+0x40 [f:\dd\ndp\clr\src\vm\gc.cpp @ 10388]
00000000`0655a9b0 000007fe`f7b62f25 clr!SVR::gc_heap::allocate_large_object+0x65 [f:\dd\ndp\clr\src\vm\gc.cpp @ 22530]
00000000`0655aa10 000007fe`f6c5f52d clr!FramedAllocateString+0xae5 [f:\dd\ndp\clr\src\vm\jithelpers.cpp @ 3018]
00000000`0655ae50 000007ff`00645327 mscorlib_ni!System.String.InternalSubString(Int32, Int32, Boolean)+0x2d [f:\dd\ndp\clr\src\BCL\System\String.cs @ 1181]
00000000`0655aeb0 000007ff`00645092 WebGrease!Microsoft.Ajax.Utilities.JScriptException.get_LineText()+0xb7
00000000`0655aef0 000007ff`00644f57 WebGrease!Microsoft.Ajax.Utilities.JSParser.OnCompilerError(Microsoft.Ajax.Utilities.JScriptException)+0xd2
00000000`0655afe0 000007ff`006449c3 WebGrease!Microsoft.Ajax.Utilities.DocumentContext.HandleError(Microsoft.Ajax.Utilities.JScriptException)+0x17
00000000`0655b020 000007ff`006445e4 WebGrease!Microsoft.Ajax.Utilities.Context.HandleError(Microsoft.Ajax.Utilities.JSError, System.String, Boolean)+0x103
00000000`0655b080 000007ff`006460b5 WebGrease!Microsoft.Ajax.Utilities.JSParser.ReportError(Microsoft.Ajax.Utilities.JSError, Microsoft.Ajax.Utilities.Context, Boolean)+0x94
00000000`0655b0e0 000007ff`004e84dc WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseForStatement()+0x5b5
00000000`0655b200 000007ff`004ec324 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x1cc
00000000`0655b2c0 000007ff`004eb502 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseFunction(Microsoft.Ajax.Utilities.FunctionType, Microsoft.Ajax.Utilities.Context)+0x784
00000000`0655b3b0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1262
00000000`0655b4c0 000007ff`00648391 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655b560 000007ff`004eb38e WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Boolean)+0x21
00000000`0655b5c0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x10ee
00000000`0655b6d0 000007ff`00640c85 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655b770 000007ff`004ee184 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpressionList(Microsoft.Ajax.Utilities.JSToken)+0x185
00000000`0655b830 000007ff`004eb616 WebGrease!Microsoft.Ajax.Utilities.JSParser.MemberExpression(Microsoft.Ajax.Utilities.AstNode, System.Collections.Generic.List`1<Microsoft.Ajax.Utilities.Context>)+0xe4
00000000`0655b8f0 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1376
00000000`0655ba00 000007ff`004e8889 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655baa0 000007ff`004ec324 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x579
00000000`0655bb60 000007ff`004eb502 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseFunction(Microsoft.Ajax.Utilities.FunctionType, Microsoft.Ajax.Utilities.Context)+0x784
00000000`0655bc50 000007ff`004ea087 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseLeftHandSideExpression(Boolean)+0x1262
00000000`0655bd60 000007ff`004ef226 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseUnaryExpression(Boolean ByRef, Boolean)+0x777
00000000`0655be00 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3b6
00000000`0655beb0 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655bf60 000007ff`004ef242 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655c010 000007ff`004e8b04 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseExpression(Microsoft.Ajax.Utilities.AstNode, Boolean, Boolean, Microsoft.Ajax.Utilities.JSToken)+0x3d2
00000000`0655c0c0 000007ff`004e55a9 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean)+0x7f4
00000000`0655c180 000007ff`004e3c76 WebGrease!Microsoft.Ajax.Utilities.JSParser.ParseStatements()+0x189
00000000`0655c2c0 000007ff`004e2685 WebGrease!Microsoft.Ajax.Utilities.JSParser.Parse(Microsoft.Ajax.Utilities.CodeSettings)+0x86
00000000`0655c310 000007ff`004e24a2 WebGrease!Microsoft.Ajax.Utilities.Minifier.MinifyJavaScript(System.String, Microsoft.Ajax.Utilities.CodeSettings)+0xe5
00000000`0655c3f0 000007ff`004d2096 System_Web_Optimization!System.Web.Optimization.JsMinify.Process(System.Web.Optimization.BundleContext, System.Web.Optimization.BundleResponse)+0x72
00000000`0655c440 000007ff`004e1b12 System_Web_Optimization!System.Web.Optimization.Bundle.ApplyTransforms(System.Web.Optimization.BundleContext, System.String, System.Collections.Generic.IEnumerable`1<System.IO.FileInfo>)+0xc6
00000000`0655c4c0 000007ff`004cf793 System_Web_Optimization!System.Web.Optimization.Bundle.GetBundleUrl(System.Web.Optimization.BundleContext, Boolean)+0x42
00000000`0655c510 000007ff`004cf1e8 System_Web_Optimization!System.Web.Optimization.AssetManager.EliminateDuplicatesAndResolveUrls(System.Collections.Generic.IEnumerable`1<System.String>)+0x263
00000000`0655c610 000007ff`004e1f05 System_Web_Optimization!System.Web.Optimization.AssetManager.DeterminePathsToRender(System.Collections.Generic.IEnumerable`1<System.String>)+0x1d8
00000000`0655c680 000007ff`004cc189 System_Web_Optimization!System.Web.Optimization.AssetManager.RenderScripts(System.Collections.Generic.IEnumerable`1<System.String>)+0x35
00000000`0655c730 000007ff`004c4778 App_Web_keqcxegb!ASP._Page_Views_Shared__Layout_cshtml.Execute()+0x1f29
Was it helpful?

Solution 2

This is resolved with WebGrease release 1.3

OTHER TIPS

You can see what exactly parsing errors are coming from bundled JS by inspecting the response in fiddler (or any other tool) for that JS bundle. The parsing errors will be in JS commented code on the top. By fixing JS you will get rid of exceptions on the server.

It would be great to know if errors came from jquery itself.

It looks like WebGrease is throwing due to not being able to parse the JS bundle. Would it be possible for you to provide a pointer to the contents of your JS bundle so the WebGrease team can investigate and hopefully identify what is causing the underlying issue?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top