Provenance Error

Jun 8, 2011 at 7:20 PM

Hi,

I want to collect Provenance data from a workflow run. After a workflow run finishes, I used Management Studio to view Provenance data by clicking on the Provenance button for that workflow.

However, on clicking Provenance button, the Management Studio crashes. I checked the AppData\Roaming\Research\Trident\Logs\Application and have attached the trace below. Would you know what might be causing the error? Please let me know.

Type : System.ArgumentNullException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Message : Value cannot be null.Parameter name: path1Source : mscorlibHelp link : ParamName : path1Data : System.Collections.ListDictionaryInternalTargetSite : System.String Combine(System.String, System.String)Stack Trace :    at System.IO.Path.Combine(String path1, String path2)   at ManagementStudioServices.WorkflowManagerService.OpenProvenanceApp(Guid jobID)   at ManagementStudioServices.WorkflowManagerService.OpenProvenanceWindow(Guid jobId)   at Microsoft.Research.ScientificWorkflow.ManagementStudioControls.WorkflowManagerModule.WorkflowJobListPresenter.ExecuteShowProvenanceDataCommand(JobViewModel selectedJob)   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)   at System.Windows.Input.InputManager.ProcessStagingArea()   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

 

Thanks,

Kavitha

Jun 9, 2011 at 12:48 PM

Hi Kavitha,

Thanks for your post.

We are investigating into the issue. We will keep you posted on the updates.

Regards,
Support Team

Jun 14, 2011 at 9:07 AM

Hi Kavitha,

We could not reproduce the bug at our end. We followed the steps mentioned in your post but the provenance is working as expected and showing all the information.

Please try to run the Trident setup in Repair mode. If the issue still persists please provide me the log file with the following information.

1) Is it happening for all the workflows or only for a selective workflow?
2) The behavior is consistent or random.

Regards,
Support Team

 

Jun 21, 2011 at 4:02 PM
Edited Jun 21, 2011 at 4:04 PM

Hi Abhishek,

Thanks for looking into the issue.


I was able to debug the error, using Trident source code. Following was the issue:

I installed 32-bit Trident on 64-bit Windows OS. As a result the "Microsoft Project Trident - A Scientific Workflow Workbench" registry key was written to %systemroot%\syswow64\regedit registry.

In Management Studio, on clicking on the Provenance button, control eventually goes to ReadRegistry() function in  WorkflowManagerService.cs in ManagementStudioServices project. Here regKey.OpenSubKey(subkey); is invoked. This reads from 64 bit registry, (since  Management studio runs as a 64-bit application ) and returns null for RegistryKey. This causes the error I attached in my previous message in this thread.

To solve it, if I added a check - if OpenSubKey returns null, code also checks in syswow64 registry by adding Wow6432Node to the subkey path. I am not sure if this is the best way to handle the issue. Could you please let me know the best way to handle the issue?

 

I also have 2 more questions:

1) Is the provenance data stored in the OPM model in Trident database as mentioned in [ftp://ftp.research.microsoft.com/pub/debull/A10sept/barga.pdf]?

2) As stated in thread [http://tridentworkflow.codeplex.com/discussions/231244], I am unable to view a data product under the Data products subheading in Provenance pane in Workflow Composer. But if I mark it as Workflow output, I am able to view the data product. Would you know why it does not appear under Data products pane?


Thanks,

Kavitha

Jun 22, 2011 at 5:10 PM

Hi Kavitha,

Thanks for your post.

Please find the answers to your queries below. The responses are not complete as I am still working on it, testing it in a similar scenario.

<< Is the provenance data stored in the OPM model in Trident database . . . >>

The Trident Provenance data model is compatible OPM but is not an exact implementation of the OPM specifications. The compatibility can be provided out of the box by the developer in case data needs to be shared with different OPM compatible applications.

<<. . . I am unable to view a data product under the Data products subheading in Provenance pane in Workflow Composer . . . >>

Please check whether the Trident Provenance service is running or not. Are you able to see the data products by opening a completed job Trident Management studio?

<<. . . if OpenSubKey returns null, code also checks in syswow64 registry by adding Wow6432Node to the subkey path . . . best way to handle the issue . . .>>

I am currently investigating into this. I will update you on the solution soon.

Regards
Support Team

Jun 23, 2011 at 11:39 AM

Hi Kavitha,

<<. . . I am unable to view a data product under the Data products subheading in Provenance pane in Workflow Composer . . . >>

Please check whether the Trident Provenance service is running or not. Are you able to see the data products by opening a completed job Trident Management studio?

I tested the issue at my end with some data products in a  similar scenario and it is displaying the data product as expected. 

For the  3rd query I need to look into few more deatils. I will keep you posted on the updates.

-Regards

Jun 24, 2011 at 1:58 PM

Hi Kavitha,

Installing the Trident-x86 on the 64-bit machine is usually not recommended but this “trick” will work perfectly fine.

-Regards

Jun 27, 2011 at 5:05 PM

Hi Abhishek,

Thanks for all the answers! It was very helpful.

Regarding the provenance service, I will check and get back if I still face any issues.

 

Regards,

Kavitha