Build/Test Issues

Error "No RDI storage path configuration specified"

Started by GlobalConcepts on 2,482 views

I get this error mentioning each of our Grid Node Servers.

While trying to enter the Configuration for RDI inside the "NCrunch Grid Node Configuration" that config App crashes.

Anwendung: NCrunch.GridNode.Configuration.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Exception
bei nCrunch.Common.ServiceLocator.FetchInstance[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](Boolean)
bei nCrunch.VSAddIn.WpfUI.WpfExtensions.(System.Object, System.EventArgs)
bei System.Windows.Window.OnSourceInitialized(System.EventArgs)
bei System.Windows.Window.CreateSourceWindow(Boolean)
bei System.Windows.Window.ShowHelper(System.Object)
bei System.Windows.Window.ShowDialog()
bei nCrunch.VSAddIn.WpfUI.WpfExtensions.ShowDialogInFront(System.Windows.Window)
bei NCrunch.GridNode.Configuration.RdiStorageSettingsEditor.Button_Click(System.Object, System.Windows.RoutedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
bei System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
bei System.Windows.Controls.Primitives.ButtonBase.OnClick()
bei System.Windows.Controls.Button.OnClick()
bei System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)
bei System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
bei System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject, System.Windows.RoutedEventArgs, System.Windows.RoutedEvent)
bei System.Windows.UIElement.OnMouseUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs)
bei System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
bei System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
bei System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs)
bei System.Windows.Input.InputManager.ProcessStagingArea()
bei System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
bei System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawMouseActions, Int32, Int32, Int32)
bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef)
bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
bei System.Windows.Application.RunDispatcher(System.Object)
bei System.Windows.Application.RunInternal(System.Windows.Window)
bei NCrunch.GridNode.Configuration.App.Main()



The Description below also tells us that it will use a default path as long there is no other configuration.
What is that default path? I already created a folder called "RDIStorage" underneath that snapshot path but that that seems not to work.

Edited

Thanks for sharing this issue.

The description looks to be wrong (we'll need to fix that). RDI storage must be specified before it can be used on a node.

To work around the issue with the config tool, it's possible to specify the RDI storage details directly in the registry.

Go to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Remco Software\NCrunch Grid Node
Create a new key called: NodeRdiStorageSettings
An example value for this is: Path=D:\RDIStorage;DataLimit=1000000;ReservedDiskSpace=15000

.. Please adjust this value as would be suitable for your situation.

You'll need to restart the grid node for the change to take effect.

Edited

Thanks for that Workaround! I'll try that.

Btw. the Configuration crashes inside the "ServiceLocator.cs" at "public T FetchInstance<T>".
The error gets thrown at the NULL validation against that "RegisteredService" instance with "System.Exception: 'Service nCrunch.VSAddIn.IAutomationIntegratorShared is not registered'"
But also on machines with the AddIn installed the UI keeps crashing.

What exactly is missing here?
This is a flat out bug caused by a change we made to prevent configuration windows being shunted behind the IDE when opened under Rider. We tested every part of this change .. except the Grid Node config tool, because we hadn't expected it to be affected by the code change. The code fails because there it has a dependency on a service that isn't normally needed or expected in the grid node config tool.

It will be a simple thing to fix, and we'll roll this out with v5.1 ... but right now the only way to set RDI storage paths on a grid node is via the registry.
OK

It seems like there's still something wrong.

The NCrunch Grid Node has all it's working paths on Volume "F:\", so underneath the Registry Path mentioned I've already tried two things:

I added a String-Value "NodeRdiStorageSettings" with Data "Path=F:\RDIStorage;DataLimit=1000000;ReservedDiskSpace=15000".
And, since you've written I should add a "key" I've add a Subkey "NodeRdiStorageSettings" with the strings Path, DataLimit and ReservedDiskSpace with values from above.

Both of them are not recognized
Ok, hold tight. I'll get you a fixed build.

Edit: I've just read my post again. Sorry, I did mean string-value .. not key.

Edited

Ok, here's a build with the fix included:

NCrunch_Console_5.1.0.1.msi
NCrunch_Console_5.1.0.1.zip
NCrunch_GridNodeServer_5.1.0.1.msi
NCrunch_GridNodeServer_5.1.0.1.zip
NCrunch_LicenseServer_5.1.0.1.zip
NCrunch_Rider_5.1.0.1.7z
NCrunch_Rider_5.1.0.1.zip
NCrunch_VS2010_5.1.0.1.msi
NCrunch_VS2010_5.1.0.1.zip
NCrunch_VS2012_5.1.0.1.msi
NCrunch_VS2012_5.1.0.1.zip
NCrunch_VS2013_5.1.0.1.msi
NCrunch_VS2013_5.1.0.1.zip
NCrunch_VS2015_5.1.0.1.msi
NCrunch_VS2015_5.1.0.1.msi.7z
NCrunch_VS2015_5.1.0.1.zip
NCrunch_VS2017_5.1.0.1.msi
NCrunch_VS2017_5.1.0.1.msi.7z
NCrunch_VS2017_5.1.0.1.zip
NCrunch_VS2019_5.1.0.1.msi
NCrunch_VS2019_5.1.0.1.msi.7z
NCrunch_VS2019_5.1.0.1.zip
NCrunch_VS2022_5.1.0.1.msi
NCrunch_VS2022_5.1.0.1.msi.7z
NCrunch_VS2022_5.1.0.1.zip

There's no changes to the grid protocol in this build, so you should only need to upgrade the grid node(s). It would be great if you can confirm whether this solves the issue for you.

The above build also contains a fix for Rider spinning the CPU. Both fixes will be published to the download page tomorrow .. along with any other fixes we implement before then.

I'm keen to hear how you get on with RDI.

Edited

THX! Looks better now. Files are getting generated on Grid Nodes. No Errors are shown anymore.
Thanks for getting back to us so quickly! Thanks for the feedback, please do let us know if you notice anything else.
Your welcome!

Hopefully I'll find some time to have a deeper look into that new feature in friday.

Post a reply

Log in to reply.