<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Chromium Process Locking and not Cleaned Up]]></title><description><![CDATA[<p>Getting this issue repeatedly when deploying to a development environment. We deploy to a Windows server and host our MVC/Razor service in IIS. Here's how we add jsreport:</p>
<pre><code>        services.AddJsReport(new LocalReporting().UseBinary(JsReportBinary.GetBinary())
            .KillRunningJsReportProcesses().AsUtility().Create());
</code></pre>
<p>We're generating PDFs using the Chrome PDF engine.</p>
<p>The first few PDF generations will work just fine. However after some amount of time (most likely after IIS has automatically recycled the application pool), PDFs stop generating with the exception below.</p>
<p>I can fix this by stopping any Chromium processes leftover (they are hanging around when they aren't supposed to it seems and locking the temp directory), deleting the jsreport temp directory automatically created in C:\Windows\Temp, and recycling the app pool again, but eventually it occurs again.</p>
<p>The stack trace:</p>
<p>jsreport.Local.JsReportBinaryException: Error rendering report: A critical error occurred while trying to execute the render command: An error occurred while trying to start daemonized process: An error has occurred when trying to initialize jsreport (2). EBUSY: resource busy or locked, open 'C:\Windows\TEMP\jsreport\jsreport\compile\jsreport-2.5.0-BymsTkv0E\chrome\chrome.exe' (1). caused by error (2) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;}, stack = Error:     at instance.init.then.catch ([eval]:66283:29)    at tryCatcher (jsreportRuntime.js:158306:23)    at Promise._settlePromiseFromHandler (jsreportRuntime.js:157998:31)    at Promise._settlePromise (jsreportRuntime.js:158055:18)    at Promise._settlePromise0 (jsreportRuntime.js:158100:10)    at Promise._settlePromises (jsreportRuntime.js:158176:18)    at _drainQueueStep (jsreportRuntime.js:39442:12)    at _drainQueue (jsreportRuntime.js:39435:9)    at Async._drainQueues (jsreportRuntime.js:39451:5)    at Immediate.Async.drainQueues (jsreportRuntime.js:39321:14)    at runCallback (timers.js:794:20)    at tryOnImmediate (timers.js:752:5)    at processImmediate [as _immediateCallback] (timers.js:729:5)caused by error (1) -&gt; meta = {&quot;errno&quot;:-4082,&quot;code&quot;:&quot;EBUSY&quot;,&quot;syscall&quot;:&quot;open&quot;,&quot;path&quot;:&quot;C:\Windows\TEMP\jsreport\jsreport\compile\jsreport-2.5.0-BymsTkv0E\chrome\chrome.exe&quot;}, stack = Error:  (1). caused by error (1) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;}, stack = Error:     at exports.NsSocket.socket.dataOnce ([eval]:66671:25)    at exports.NsSocket.listener ([eval]:13402:10)    at exports.NsSocket.EventEmitter.emit ([eval]:13490:22)    at exports.NsSocket._onData ([eval]:94250:8)    at Lazy.&lt;anonymous&gt; ([eval]:74361:13)    at Lazy.&lt;anonymous&gt; ([eval]:74343:19)    at emitTwo (events.js:126:13)    at Lazy.emit (events.js:214:7)    at Lazy.&lt;anonymous&gt; ([eval]:74344:22)    at emitOne (events.js:116:13)    at Lazy.emit (events.js:211:7)    at yieldTo ([eval]:74451:18)    at Function.&lt;anonymous&gt; ([eval]:74489:27)    at Lazy.&lt;anonymous&gt; ([eval]:74457:21)    at emitOne (events.js:116:13)    at Lazy.emit (events.js:211:7)<br />
at jsreport.Local.Internal.LocalUtilityReportingService.RenderAsync(String requestString, CancellationToken ct)<br />
at jsreport.AspNetCore.JsReportMiddleware.Invoke(HttpContext context)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()<br />
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)<br />
at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)<br />
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)<br />
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)<br />
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)<br />
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)<br />
at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.InvokeCore(HttpContext context)<br />
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)</p>
<p>Any help you could give into why this is happening would be great!</p>
]]></description><link>https://forum.jsreport.net/topic/1317/chromium-process-locking-and-not-cleaned-up</link><generator>RSS for Node</generator><lastBuildDate>Wed, 17 Jun 2026 00:48:44 GMT</lastBuildDate><atom:link href="https://forum.jsreport.net/topic/1317.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Oct 2019 18:22:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>Getting this issue repeatedly when deploying to a development environment. We deploy to a Windows server and host our MVC/Razor service in IIS. Here's how we add jsreport:</p>
<pre><code>        services.AddJsReport(new LocalReporting().UseBinary(JsReportBinary.GetBinary())
            .KillRunningJsReportProcesses().AsUtility().Create());
</code></pre>
<p>We're generating PDFs using the Chrome PDF engine.</p>
<p>The first few PDF generations will work just fine. However after some amount of time (most likely after IIS has automatically recycled the application pool), PDFs stop generating with the exception below.</p>
<p>I can fix this by stopping any Chromium processes leftover (they are hanging around when they aren't supposed to it seems and locking the temp directory), deleting the jsreport temp directory automatically created in C:\Windows\Temp, and recycling the app pool again, but eventually it occurs again.</p>
<p>The stack trace:</p>
<p>jsreport.Local.JsReportBinaryException: Error rendering report: A critical error occurred while trying to execute the render command: An error occurred while trying to start daemonized process: An error has occurred when trying to initialize jsreport (2). EBUSY: resource busy or locked, open 'C:\Windows\TEMP\jsreport\jsreport\compile\jsreport-2.5.0-BymsTkv0E\chrome\chrome.exe' (1). caused by error (2) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;}, stack = Error:     at instance.init.then.catch ([eval]:66283:29)    at tryCatcher (jsreportRuntime.js:158306:23)    at Promise._settlePromiseFromHandler (jsreportRuntime.js:157998:31)    at Promise._settlePromise (jsreportRuntime.js:158055:18)    at Promise._settlePromise0 (jsreportRuntime.js:158100:10)    at Promise._settlePromises (jsreportRuntime.js:158176:18)    at _drainQueueStep (jsreportRuntime.js:39442:12)    at _drainQueue (jsreportRuntime.js:39435:9)    at Async._drainQueues (jsreportRuntime.js:39451:5)    at Immediate.Async.drainQueues (jsreportRuntime.js:39321:14)    at runCallback (timers.js:794:20)    at tryOnImmediate (timers.js:752:5)    at processImmediate [as _immediateCallback] (timers.js:729:5)caused by error (1) -&gt; meta = {&quot;errno&quot;:-4082,&quot;code&quot;:&quot;EBUSY&quot;,&quot;syscall&quot;:&quot;open&quot;,&quot;path&quot;:&quot;C:\Windows\TEMP\jsreport\jsreport\compile\jsreport-2.5.0-BymsTkv0E\chrome\chrome.exe&quot;}, stack = Error:  (1). caused by error (1) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;}, stack = Error:     at exports.NsSocket.socket.dataOnce ([eval]:66671:25)    at exports.NsSocket.listener ([eval]:13402:10)    at exports.NsSocket.EventEmitter.emit ([eval]:13490:22)    at exports.NsSocket._onData ([eval]:94250:8)    at Lazy.&lt;anonymous&gt; ([eval]:74361:13)    at Lazy.&lt;anonymous&gt; ([eval]:74343:19)    at emitTwo (events.js:126:13)    at Lazy.emit (events.js:214:7)    at Lazy.&lt;anonymous&gt; ([eval]:74344:22)    at emitOne (events.js:116:13)    at Lazy.emit (events.js:211:7)    at yieldTo ([eval]:74451:18)    at Function.&lt;anonymous&gt; ([eval]:74489:27)    at Lazy.&lt;anonymous&gt; ([eval]:74457:21)    at emitOne (events.js:116:13)    at Lazy.emit (events.js:211:7)<br />
at jsreport.Local.Internal.LocalUtilityReportingService.RenderAsync(String requestString, CancellationToken ct)<br />
at jsreport.AspNetCore.JsReportMiddleware.Invoke(HttpContext context)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State&amp; next, Scope&amp; scope, Object&amp; state, Boolean&amp; isCompleted)<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()<br />
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()<br />
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)<br />
at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)<br />
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)<br />
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)<br />
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)<br />
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)<br />
at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.InvokeCore(HttpContext context)<br />
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)</p>
<p>Any help you could give into why this is happening would be great!</p>
]]></description><link>https://forum.jsreport.net/post/6116</link><guid isPermaLink="true">https://forum.jsreport.net/post/6116</guid><dc:creator><![CDATA[ryan-ra]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>There were some improvements regarding this problem implemented in jsreport 2.6.1<br />
Please update the jsreport.Binary nuget to the 2.6.1</p>
]]></description><link>https://forum.jsreport.net/post/6121</link><guid isPermaLink="true">https://forum.jsreport.net/post/6121</guid><dc:creator><![CDATA[jan_blaha]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Wed, 30 Oct 2019 13:45:35 GMT]]></title><description><![CDATA[<p>Thank you for the quick response! I updated jsreport.Binary to 2.6.1, however we are still encountering errors. We get this exception now with the same circumstances where the Chromium processes can't be cleaned up properly and begin to lock the chrome.exe that lives in the jsreport temp directory:</p>
<p>JsReportBinaryException: Error rendering report: A critical error occurred while trying to execute the render command: An error occurred while trying to start daemonized process: An error has occurred when trying to initialize jsreport (2). EBUSY: resource busy or locked, open 'C:\inetpub\wwwroot\ServiceName\jsreport\temp\compile\jsreport-2.6.1-HkSd-6jOS\chrome\chrome.exe' (1). caused by error (2) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;}, stack = Error: at exports.initialize.instance.init.then.catch (D:\snapshot\jsreport\node_modules\jsreport-cli\lib\instanceHandler.js:31:29)caused by error (1) -&gt; meta = {&quot;errno&quot;:-4082,&quot;code&quot;:&quot;EBUSY&quot;,&quot;syscall&quot;:&quot;open&quot;,&quot;path&quot;:&quot;C:\inetpub\wwwroot\ServiceName\jsreport\temp\compile\jsreport-2.6.1-HkSd-6jOS\chrome\chrome.exe&quot;}, stack = Error: (1). caused by error (1) -&gt; meta = {&quot;code&quot;:&quot;EBUSY&quot;,&quot;disableExit&quot;:false}, stack = Error: at exports.NsSocket.module.exports.socket.dataOnce (D:\snapshot\jsreport\node_modules\jsreport-cli\lib\keepAliveProcess.js:135:25) at exports.NsSocket.listener (D:\snapshot\jsreport\node_modules\eventemitter2\lib\eventemitter2.js:251:10) at exports.NsSocket.EventEmitter.emit (D:\snapshot\jsreport\node_modules\eventemitter2\lib\eventemitter2.js:339:22) at exports.NsSocket._onData (D:\snapshot\jsreport\node_modules\nssocket\lib\nssocket.js:454:8) at Lazy.&lt;anonymous&gt; (D:\snapshot\jsreport\node_modules\lazy\lazy.js:91:13) at Lazy.&lt;anonymous&gt; (D:\snapshot\jsreport\node_modules\lazy\lazy.js:73:19) at Lazy.emit (events.js:189:13) at Lazy.&lt;anonymous&gt; (D:\snapshot\jsreport\node_modules\lazy\lazy.js:74:22) at Lazy.emit (events.js:189:13) at yieldTo (D:\snapshot\jsreport\node_modules\lazy\lazy.js:181:18)</p>
<p>I also updated our AddJsReport method to the following:</p>
<pre><code>        services.AddJsReport(new LocalReporting()
            .UseBinary(JsReportBinary.GetBinary())
            .Configure(cfg =&gt;
            {
                cfg.AllowedLocalFilesAccess();
                cfg.FileSystemStore();
                cfg.BaseUrlAsWorkingDirectory();
                cfg.HttpPort = 1000;
                cfg.TempDirectory = Path.Combine(_environment.ContentRootPath, &quot;jsreport&quot;, &quot;temp&quot;);
                return cfg;
            })
            .KillRunningJsReportProcesses()
            .RunInDirectory(Path.Combine(_environment.ContentRootPath, &quot;jsreport&quot;))
            .AsUtility()
            .Create());</code></pre>
]]></description><link>https://forum.jsreport.net/post/6123</link><guid isPermaLink="true">https://forum.jsreport.net/post/6123</guid><dc:creator><![CDATA[ryan-ra]]></dc:creator><pubDate>Wed, 30 Oct 2019 13:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>I apologize for your trouble. We took a look again in more detail today and <a href="https://github.com/jsreport/jsreport-puppeteer-compile/commit/b99add91174c9bf67138658818739ea7e70d55f8" rel="nofollow">fixed a problem with parallel chrome extraction</a>.</p>
<p>I prepared for you an updated jsreport.Binary nuget package. It would be really great if you can try it out.<br />
<a href="https://1drv.ms/u/s!AogtKyPn-GjbhK5apIgkVrrYP1bpow?e=LoHAz8" rel="nofollow">https://1drv.ms/u/s!AogtKyPn-GjbhK5apIgkVrrYP1bpow?e=LoHAz8</a></p>
]]></description><link>https://forum.jsreport.net/post/6127</link><guid isPermaLink="true">https://forum.jsreport.net/post/6127</guid><dc:creator><![CDATA[jan_blaha]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>Wow, thank you for the quick turnaround! Unfortunately it seems that OneDrive link doesn't work for me. It says something went wrong when I try to open it</p>
]]></description><link>https://forum.jsreport.net/post/6128</link><guid isPermaLink="true">https://forum.jsreport.net/post/6128</guid><dc:creator><![CDATA[ryan-ra]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>Ok, try this link <a href="https://www.uschovna.cz/en/zasilka/RWXDIS59HBRFD8TT-65H/IBM5V93TKA" rel="nofollow">https://www.uschovna.cz/en/zasilka/RWXDIS59HBRFD8TT-65H/IBM5V93TKA</a></p>
]]></description><link>https://forum.jsreport.net/post/6129</link><guid isPermaLink="true">https://forum.jsreport.net/post/6129</guid><dc:creator><![CDATA[jan_blaha]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>Is it possible to do this as a pre-release version of the jsreport.Binary package? Due to our security policies and firewall I most likely won't be able to download an external package this way. I'm sorry for the inconvenience, and thank you again for the help.</p>
]]></description><link>https://forum.jsreport.net/post/6130</link><guid isPermaLink="true">https://forum.jsreport.net/post/6130</guid><dc:creator><![CDATA[ryan-ra]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Chromium Process Locking and not Cleaned Up on Invalid Date]]></title><description><![CDATA[<p>This issue ended up being resolved for a different reason that I can't quite explain why. By upgrading from version 2.2.6 of the .NET Core Hosting Bundle on the affected machine to version 2.2.7, we resolved this.</p>
]]></description><link>https://forum.jsreport.net/post/6169</link><guid isPermaLink="true">https://forum.jsreport.net/post/6169</guid><dc:creator><![CDATA[ryan-ra]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>