VL.Devices.IDS sometimes throws an exception on startup that crashes vvvv

Hey there,

One of our installations is using the VL.Devices.IDS package. When vvvv starts, it crashes before showing the patch editor, and the following error is logged in Windows’ event logs. The IDS peak Cockpit seems to be able to open the camera feed without issue.

Exception
Application: vvvv.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ApplicationException: Error-Code: 13 (PEAK_RETURN_CODE_TIMEOUT) | Error-Description: [Function: EventGetData | Error-Code: -1011 (GC_ERR_TIMEOUT) | Error-Text: Wait for event data timed out! Timeout: 1100.
   at peak.core.DataStream.WaitForFinishedBuffer(Timeout timeout_ms)
   at VL.Devices.IDS.Acquisition.GrabVideoFrame()
   at VL.Lib.Video.VideoSourceExtensions.<>c__DisplayClass4_0.<<GetPushBasedStream>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception)
   at System.Reactive.ExceptionHelpers.Throw(Exception exception)
   at System.Reactive.Stubs.<>c.<.cctor>b__2_1(Exception ex)
   at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error)
   at System.Reactive.Sink`1.ForwardOnError(Exception error)
   at System.Reactive.Sink`2.OnError(Exception error)
   at System.Reactive.Sink`1.ForwardOnError(Exception error)
   at System.Reactive.Sink`2.OnError(Exception error)
   at System.Reactive.AutoDetachObserver`1.OnErrorCore(Exception exception)
   at System.Reactive.ObserverBase`1.OnError(Exception error)
   at System.Reactive.AutoDetachObserver`1.OnErrorCore(Exception exception)
   at System.Reactive.ObserverBase`1.OnError(Exception error)
   at System.Reactive.Linq.QueryLanguage.CreateWithTaskTokenObservable`1.Subscription.TaskCompletionObserver.OnError(Exception error)
   at System.Reactive.Threading.Tasks.TaskObservableExtensions.EmitTaskResult(Task task, IObserver`1 subject)
   at System.Reactive.Threading.Tasks.TaskObservableExtensions.Subscribe(Task task, IObserver`1 observer)
   at System.Reactive.Linq.QueryLanguage.CreateWithTaskTokenObservable`1.Subscription..ctor(Func`3 subscribeAsync, IObserver`1 observer)
   at System.Reactive.Linq.QueryLanguage.CreateWithTaskTokenObservable`1.SubscribeCore(IObserver`1 observer)
   at System.Reactive.ObservableBase`1.ScheduledSubscribe(AutoDetachObserver`1 autoDetachObserver)
   at System.Reactive.Concurrency.Scheduler.<>c__75`1.<ScheduleAction>b__75_0(IScheduler _, ValueTuple`2 tuple)
   at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   at System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action)
   at System.Reactive.Concurrency.Scheduler.ScheduleAction[TState](IScheduler scheduler, TState state, Action`1 action)
   at System.Reactive.ObservableBase`1.Subscribe(IObserver`1 observer)
   at System.Reactive.Concurrency.Synchronization.SubscribeOnObservable`1.Subscription.<>c.<.ctor>b__1_0(IScheduler closureScheduler, ValueTuple`3 state)
   at System.Reactive.Concurrency.UserWorkItem`1.Run()
   at System.Reactive.Concurrency.DefaultScheduler.<>c__5`1.<Schedule>b__5_0(Object closureWorkItem)
   at System.Reactive.Concurrency.ConcurrencyAbstractionLayerImpl.<>c.<QueueUserWorkItem>b__3_0(Object itemObject)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

Any chance the plugin could catch that error and start anyway, and report via a boolean that something’s wrong?

Thanks in advance for looking into it!

edit

  • I’m using IDS Peak 2.12.0 and Cockpit 2.0.0
  • This has been working in the past
  • A machine reboot did not solve the issue
  • Camera is a uEye+ GV-5860CP-C-HQ Rev.2.2

Does it make a difference when you start vvvv first and then open the patch?
Is the camera connected via network (GiGE) or USB? If the latter, have you tried switching to another port?

Thanks for the suggestions @bjoern

I just tried opening a blank vvvv and just load the help patch, getting the same crash. It’s able to populate the IOBox that shows the camera capabilities, but then crashes when (I guess) it tries to access the texture

It’s via network

edit: the IDS software reports the camera is running at 2FPS, which is super odd. it could correspond to what the exception says about some timeout thing. I don’t have physical access to the machine right now but will report here soon as I have more information.

Thanks for the report. Was able to reproduce it on our end by manually reducing the timeout to one millisecond and thereby enforcing that particular method to crash. Upcoming builds will log such errors instead of crashing.

1 Like

Thanks for investigating anyway @Elias, appreciated :-)