Skip to content

JsPoolExhaustedException #352

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
dgpedro opened this issue Nov 23, 2016 · 1 comment
Closed

JsPoolExhaustedException #352

dgpedro opened this issue Nov 23, 2016 · 1 comment

Comments

@dgpedro
Copy link

dgpedro commented Nov 23, 2016

Hi,

I was already searching here for this error, and found two threads about it. In one says to do SetReuseJavaScriptEngines(false) and the seconds says this error was fixed. However, in our latest tests we still got this error :(

I didn't yet tried with SetReuseJavaScriptEngines(false), however I've also seen that this makes the JS server rendering not so efficient because for every request has to generate a new JS engine rather than reusing one from the pool, so I would prefer not set this to false.

That said, I would like to ask if someone is aware of this and this is being investigated or not and if so far the only solutions are:

  • SetReuseJavaScriptEngines(false)
  • Disable server rendering

I really would appreciate some help on this, and so I provide also some info about the tests we performed in prd env:

  • Azure web app with 3 instances (each one with 2 cores and 3.5 GB of RAM)
  • Reactjs 15.3.2
  • React.NET 3.0.0
  • JSPool 2.0.0
  • 1000 concurrent tests, during 4m 30s (each test goes to a few pages but requests more often homepage)
  • 124 JsPoolExhaustedException logged
  • Most of the exceptions are in homepage view, however I can also see a few in partial views that are used in Layout.
  • I'm rendering the homepage component like: @Html.React({componentName}, Model, serverOnly: true}). I've put serverOnly: true because like this no extra tags like "data-reactid" are sent to client, and in the latest versions of reactjs this attribute is not needed anymore.

Besides the stack trace below I don't know what info more I can give, but I would really appreciate if someone replied about this and maybe give me some tip about what to do...

JSPool.Exceptions.JsPoolExhaustedException: Could not acquire JavaScript engine within 00:00:05
   at JSPool.JsPool`1.GetEngine (JSPool, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2fc7775f73072640)
   at React.JavaScriptEngineFactory.GetEngine (React.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at React.ReactEnvironment.<.ctor>b__13_1 (React.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at System.Lazy`1.CreateValue (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Lazy`1.LazyInitValue (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at System.Lazy`1.get_Value (mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)
   at React.ReactEnvironment.get_Engine (React.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at React.ReactEnvironment.EnsureUserScriptsLoaded (React.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at React.ReactEnvironment.CreateComponent (React.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at React.Web.Mvc.HtmlHelperExtensions.React (React.Web.Mvc4, Version=3.0.0.0, Culture=neutral, PublicKeyToken=9aed67b161f7db78)
   at BM.Appl.Discounts.Portal.Web.Components.HtmlExtensions.Render (BM.Appl.Discounts.Portal.Web.Components, Version=1.0.92.7561, Culture=neutral, PublicKeyToken=null: E:\TeamCityBuildAgent\work\9a33beb42fe2b911\BM.Appl.Discounts.Portal.Web\Components\HtmlExtensions.cs: 19)
   at BM.Appl.Discounts.Portal.Web.Components.HtmlExtensions.Render (BM.Appl.Discounts.Portal.Web.Components, Version=1.0.92.7561, Culture=neutral, PublicKeyToken=null: E:\TeamCityBuildAgent\work\9a33beb42fe2b911\BM.Appl.Discounts.Portal.Web\Components\HtmlExtensions.cs: 36)
   at ASP._Page_Views_Homepage_Index_cshtml.Execute (App_Web_0utg1tfv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null: D:\home\site\wwwroot\Views\Homepage\Index.cshtml: 34)
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy (System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.WebPages.StartPage.RunPage (System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.WebPages.StartPage.ExecutePageHierarchy (System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy (System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.RazorView.RenderView (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker+<>c__DisplayClass21+<>c__DisplayClass2b.<BeginInvokeAction>b__1c (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker+<>c__DisplayClass21.<BeginInvokeAction>b__1e (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResult`1.CallEndDelegate (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResultBase`1.End (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Controller.<BeginExecuteCore>b__1d (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncVoid`1.CallEndDelegate (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResultBase`1.End (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Controller.EndExecuteCore (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Controller.<BeginExecute>b__15 (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncVoid`1.CallEndDelegate (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResultBase`1.End (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Controller.EndExecute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5 (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncVoid`1.CallEndDelegate (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResultBase`1.End (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.MvcHandler.EndProcessRequest (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
   at System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
   at System.Web.HttpApplication.ExecuteStep (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)

Thanks a lot.

@dustinsoftware
Copy link
Member

This was fixed in #270, please re-open if you're still seeing this issue :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants