Taming the Noderunner process in SharePoint 2013 search.

An MS employee posted an update regarding the Noderunner search process in SharePoint 2013 and the current issues it has regarding leaving memory.

http://blogs.technet.com/b/mpriem/archive/2012/09/05/sharepoint-2013-preview-hungry-search-service.aspx

The technique of limiting the Noderunner.exe.config file with a setting in the memoryLimitMegabytes works really well.. Too well in fact if you’re trying to reconfigure your search topology in PowerShell. When you try to activate your new topology, after about 10 minutes of staring at the powershell cursor, you receive an error, “Failed to connect to System Manager”

09/19/2012 14:55:22.60     OWSTIMER.EXE (0x082C)                       0x0844    SharePoint Server Search          Administration                    ai1er    Medium      Unable to connect to system client with derived management URIs. Exception: Failed to connect to system manager. SystemManagerLocations: net.tcp://win2k8sp15/78580D/AdminComponent1/Management    at Microsoft.Office.Server.Search.Administration.SearchServiceApplication.GetSystemClient(IList`1 systemManagerLocations)     at Microsoft.Office.Server.Search.Administration.Topology.ApplicationAdminLayer.Reconnect()    c80fcf9b-cf6b-2083-a27f-5d57c7dc4ef3

Further investigation into the ULS reveals an Out of Memory exception occuring in the Noderunner.Exe while trying to acquire the local farm

09/19/2012 14:55:22.52     NodeRunner.exe (0x0F40)                     0x0B3C    SharePoint Foundation             Topology                          88bl    Monitorable    An exception occured while trying to acquire the local farm: System.TypeInitializationException: The type initializer for ‘System.Data.Common.DbConnectionOptions’ threw an exception. —> System.OutOfMemoryException: Exception of type ‘System.OutOfMemoryException’ was thrown.     at System.Text.RegularExpressions.RegexCompiler.GenerateOneCode()     at System.Text.RegularExpressions.RegexCompiler.GenerateForwardSection()     at System.Text.RegularExpressions.RegexCompiler.GenerateGo()     at System.Text.RegularExpressions.RegexLWCGCompiler.FactoryInstanceFromCode(RegexCode code, RegexOptions options)     at System.Text.RegularExpressions.RegexCompiler.Compile(RegexCode code, RegexOptions options)     at System.Text.RegularExpressions.Regex.Compile(RegexCode code, RegexOptions roptions)     …

If you remove the memory restriction added to the noderunner.exe.config file, reboot the server and try again, the topology change works perfectly.

Hope this helps reduce your frustration levels!

Paul.

Leave a Reply

Your email address will not be published.

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.