Crash mid-sequence in latest beta

Issue #1015 invalid
Kyle Goodwin created an issue
  • Not generally reproducible, although if I understood better the cause of the issue it might be.
  • All prerequisites in manual met.
  • Running latest beta, updated yesterday afternoon to 2.0.0.2016

Crash during imaging sequence (unattended, so I only have what the log and crash dump tell me). The crash dump is 1.8GB and will not upload here, but I’m happy to share via some other means. My sequence crashed the night before also, but I didn’t capture debug info at that time because I expected it was a fluke with the beta and updated. This time I did, however, and I have debugged the issue in Visual Studio and attached is the relevant info I could determine without getting the pdb/source commit exactly matched up at the right versions. I’m happy to debug it further myself also if I can figure out the right commit for the release since there doesn’t seem to be a tag for each beta release.

Unhandled exception at 0x00007FFB2DB85ABC (clr.dll) in NINA.exe.11212.dmp: 0xC0000005: Access violation reading location 0x0000000100000000.

mscorlib.ni.dll!00007ffb28d11fd3() Unknown
[Managed to Native Transition]
NINA.exe!NINA.ViewModel.ImageControlVM.ProcessAndUpdateImage(NINA.Image.Interfaces.IRenderedImage renderedImage, NINA.Core.Utility.PrepareImageParameters parameters, System.Threading.CancellationToken cancelToken) Unknown
[Resuming Async Method]
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Line 1070 C#
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Line 810 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3617 C#
mscorlib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Line 490 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<NINA.Image.Interfaces.IRenderedImage>.SetResult(NINA.Image.Interfaces.IRenderedImage result) Line 603 C#
[Completed] NINA.exe!NINA.ViewModel.ImageControlVM.ProcessImage(NINA.Image.Interfaces.IRenderedImage renderedImage, NINA.Core.Utility.PrepareImageParameters parameters, System.Threading.CancellationToken cancelToken) Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Line 1070 C#
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Line 810 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3617 C#
mscorlib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Line 490 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<NINA.Image.Interfaces.IRenderedImage>.SetResult(NINA.Image.Interfaces.IRenderedImage result) Line 603 C#
[Completed] NINA.Image.dll!NINA.Image.ImageData.DebayeredImage.Stretch(double factor, double blackClipping, bool unlinked) Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Line 1070 C#
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Line 810 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3617 C#
mscorlib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Line 490 C#
mscorlib.dll!System.Threading.Tasks.UnwrapPromise<System.Windows.Media.Imaging.BitmapSource>.TrySetFromTask(System.Threading.Tasks.Task task, bool lookForOce) Line 7308 C#
mscorlib.dll!System.Threading.Tasks.UnwrapPromise<System.Windows.Media.Imaging.BitmapSource>.InvokeCore(System.Threading.Tasks.Task completingTask) Line 7209 C#
mscorlib.dll!System.Threading.Tasks.UnwrapPromise<System.__Canon>.Invoke(System.Threading.Tasks.Task completingTask) Line 7185 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3627 C#
mscorlib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Line 490 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.Windows.Media.Imaging.BitmapSource>.SetResult(System.Windows.Media.Imaging.BitmapSource result) Line 603 C#
[Completed] NINA.Image.dll!NINA.Image.ImageAnalysis.ImageUtility.StretchUnlinked.AnonymousMethod__0() Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Line 1070 C#
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Line 810 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3617 C#
mscorlib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Line 490 C#
mscorlib.dll!System.Threading.Tasks.Task.WhenAllPromise<NINA.Image.Interfaces.IImageStatistics>.Invoke(System.Threading.Tasks.Task ignored) Line 6435 C#
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3627 C#
mscorlib.dll!System.Threading.Tasks.Task.Finish(bool bUserDelegateExecuted) Line 2253 C#
mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot) Line 2830 C#
mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry(bool bPreventDoubleExecution) Line 2767 C#
mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() Line 820 C#
[Native to Managed Transition]
kernel32.dll!BaseThreadInitThunk?() Unknown
ntdll.dll!RtlUserThreadStart?() Unknown
[Async Call Stack]
[Async] NINA.exe!NINA.ViewModel.ImageControlVM.PrepareImage(NINA.Image.Interfaces.IImageData data, NINA.Core.Utility.PrepareImageParameters parameters, System.Threading.CancellationToken cancelToken) Unknown
[Async] NINA.exe!NINA.ViewModel.ImagingVM.PrepareImage.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.exe!NINA.ViewModel.ImagingVM.CaptureAndPrepareImage(NINA.Equipment.Model.CaptureSequence sequence, NINA.Core.Utility.PrepareImageParameters parameters, System.Threading.CancellationToken token, System.IProgress<NINA.Core.Model.ApplicationStatus> progress) Unknown
[Async] NINA.WPF.Base.dll!NINA.WPF.Base.ViewModel.AutoFocus.AutoFocusVM.TakeExposure(NINA.Core.Model.Equipment.FilterInfo filter, System.Threading.CancellationToken token, System.IProgress<NINA.Core.Model.ApplicationStatus> progress) Unknown
[Async] NINA.WPF.Base.dll!NINA.WPF.Base.ViewModel.AutoFocus.AutoFocusVM.GetAverageMeasurement(NINA.Core.Model.Equipment.FilterInfo filter, int exposuresPerFocusPoint, System.Threading.CancellationToken token, System.IProgress<NINA.Core.Model.ApplicationStatus> progress) Unknown
[Async] NINA.WPF.Base.dll!NINA.WPF.Base.ViewModel.AutoFocus.AutoFocusVM.GetFocusPoints(NINA.Core.Model.Equipment.FilterInfo filter, int nrOfSteps, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token, int offset) Unknown
[Async] NINA.WPF.Base.dll!NINA.WPF.Base.ViewModel.AutoFocus.AutoFocusVM.StartAutoFocus(NINA.Core.Model.Equipment.FilterInfo imagingFilter, System.Threading.CancellationToken token, System.IProgress<NINA.Core.Model.ApplicationStatus> progress) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.Autofocus.RunAutofocus.Execute(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Trigger.Autofocus.AutofocusAfterTimeTrigger.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Trigger.SequenceTrigger.Run(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.RunTriggers(NINA.Sequencer.SequenceItem.ISequenceItem previousItem, NINA.Sequencer.SequenceItem.ISequenceItem nextItem, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.RunTriggers(NINA.Sequencer.Container.ISequenceContainer container, NINA.Sequencer.SequenceItem.ISequenceItem previousItem, NINA.Sequencer.SequenceItem.ISequenceItem nextItem, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.RunTriggers(NINA.Sequencer.Container.ISequenceContainer container, NINA.Sequencer.SequenceItem.ISequenceItem previousItem, NINA.Sequencer.SequenceItem.ISequenceItem nextItem, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.ExecutionStrategy.SequentialStrategy.Execute(NINA.Sequencer.Container.ISequenceContainer context, System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Container.SequenceContainer.Execute.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.Sequencer.dll!NINA.Sequencer.SequenceItem.SequenceItem.Run(System.IProgress<NINA.Core.Model.ApplicationStatus> progress, System.Threading.CancellationToken token) Unknown
[Async] NINA.Sequencer.dll!NINA.Sequencer.Sequencer.Start.AnonymousMethod__0() Unknown
[Async] mscorlib.dll!System.Threading.Tasks.Task.Run C#
[Async] NINA.exe!NINA.ViewModel.Sequencer.Sequence2VM.StartSequence(object arg) Unknown
[Async] NINA.Core.dll!NINA.Core.Utility.NotifyTaskCompletion<bool>.WatchTaskAsync(System.Threading.Tasks.Task task) Unknown
[Async] NINA.Core.dll!NINA.Core.Utility.AsyncCommand<bool>.ExecuteAsync(object parameter) Unknown

Locals:

Name Value Type
$exception {"Exception of type 'System.ExecutionEngineException' was thrown."} System.ExecutionEngineException
▶ Data {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
HResult -2146233082 int
HelpLink null string
IPForWatsonBuckets 0x0000000000000000 System.UIntPtr
▶ InnerException null System.Exception
IsTransient false bool
Message "Exception of type 'System.ExecutionEngineException' was thrown." string
RemoteStackTrace null string
Source null string
StackTrace null string
TargetSite null System.Reflection.MethodBase
WatsonBuckets null object
_HResult -2146233082 int
_className null string
_data null System.Collections.IDictionary
_dynamicMethods null object
_exceptionMethod null System.Reflection.MethodBase
_exceptionMethodString null string
_helpURL null string
▶ _innerException null System.Exception
_ipForWatsonBuckets 0x0000000000000000 System.UIntPtr
_message null string
_remoteStackIndex 0 int
_remoteStackTraceString null string
▶ _safeSerializationManager null System.Runtime.Serialization.SafeSerializationManager
_source null string
_stackTrace null object
_stackTraceString null string
_watsonBuckets null object
_xcode -532462766 int
_xptrs 0x0000000000000000 System.IntPtr
▶ Static members
this {NINA.ViewModel.ImageControlVM} NINA.ViewModel.ImageControlVM
▶ ActiveProfile {NINA.Profile.Profile} NINA.Profile.Interfaces.IProfile {NINA.Profile.Profile}
AutoStretch true bool
BahtinovImage null NINA.Image.ImageAnalysis.BahtinovImage
▶ BahtinovRectangle {NINA.Core.Utility.ObservableRectangle} NINA.Core.Utility.ObservableRectangle
▶ CameraInfo {NINA.Equipment.Equipment.MyCamera.CameraInfo} NINA.Equipment.Equipment.MyCamera.CameraInfo
CanClose true bool
▶ CancelPlateSolveImageCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
ContentId "ImageControlVM" string
DetectStars true bool
▶ DragMoveCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
DragResizeBoundary 10 double
▶ DragStartCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
▶ DragStopCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
▶ HideCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
▶ Image {System.Windows.Media.Imaging.CachedBitmap} System.Windows.Media.Imaging.BitmapSource {System.Windows.Media.Imaging.CachedBitmap}
▶ ImageGeometry {System.Windows.Media.GeometryGroup} System.Windows.Media.GeometryGroup
▶ InspectAberrationCommand {NINA.Core.Utility.AsyncCommand<bool>} NINA.Core.Utility.IAsyncCommand {NINA.Core.Utility.AsyncCommand<bool>}
IsClosed false bool
IsLiveViewEnabled false bool
IsTool false bool
IsVisible true bool
▶ PixelPeepEndCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
▶ PixelPeepImage null System.Windows.Media.Imaging.BitmapSource
▶ PixelPeepMoveCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
▶ PixelPeepStartCommand {NINA.Core.Utility.RelayCommand} System.Windows.Input.ICommand {NINA.Core.Utility.RelayCommand}
PixelPeepValue 0 double
PixelPeepX 0 double
PixelPeepY 0 double
▶ PlateSolveImageCommand {NINA.Core.Utility.AsyncCommand<bool>} NINA.Core.Utility.IAsyncCommand {NINA.Core.Utility.AsyncCommand<bool>}
▶ PrepareImageCommand {NINA.Core.Utility.AsyncCommand<bool>} NINA.Core.Utility.AsyncCommand<bool>
▶ PropertyChanged {Method = {Void OnPropertyChanged(System.Object, System.ComponentModel.PropertyChangedEventArgs)}} System.ComponentModel.PropertyChangedEventHandler
▶ RenderedImage {NINA.Image.ImageData.DebayeredImage} NINA.Image.Interfaces.IRenderedImage {NINA.Image.ImageData.DebayeredImage}
ShowBahtinovAnalyzer false bool
ShowCrossHair false bool
ShowPixelPeeper false bool
▶ Status {NINA.Core.Model.ApplicationStatus} NINA.Core.Model.ApplicationStatus
Title "Image" string
WindowServiceFactory {NINA.Core.Utility.WindowService.WindowServiceFactory} NINA.Core.Utility.WindowService.IWindowServiceFactory {NINA.Core.Utility.WindowService.WindowServiceFactory}
_autoStretch true bool
_bahtinovImage null NINA.Image.ImageAnalysis.BahtinovImage
_canClose true bool
_detectStars true bool
▶ _image {System.Windows.Media.Imaging.CachedBitmap} System.Windows.Media.Imaging.BitmapSource {System.Windows.Media.Imaging.CachedBitmap}
▶ _imageGeometry {System.Windows.Media.GeometryGroup} System.Windows.Media.GeometryGroup
_isClosed false bool
_isVisible true bool
▶ _plateSolveToken null System.Threading.CancellationTokenSource
▶ _prepImageCancellationSource null System.Threading.CancellationTokenSource
▶ _prepImageTask null System.Threading.Tasks.Task
▶ _progress {System.Progress<NINA.Core.Model.ApplicationStatus>} System.IProgress<NINA.Core.Model.ApplicationStatus> {System.Progress<NINA.Core.Model.ApplicationStatus>}
▶ _rectangle {NINA.Core.Utility.ObservableRectangle} NINA.Core.Utility.ObservableRectangle
▶ _renderedImage {NINA.Image.ImageData.DebayeredImage} NINA.Image.Interfaces.IRenderedImage {NINA.Image.ImageData.DebayeredImage}
_showBahtinovAnalyzer false bool
_showCrossHair false bool
▶ _status {NINA.Core.Model.ApplicationStatus} NINA.Core.Model.ApplicationStatus
_titleLabel "Image" string
▶ applicationStatusMediator {NINA.WPF.Base.Mediator.ApplicationStatusMediator} NINA.WPF.Base.Interfaces.Mediator.IApplicationStatusMediator {NINA.WPF.Base.Mediator.ApplicationStatusMediator}
▶ cameraInfo {NINA.Equipment.Equipment.MyCamera.CameraInfo} NINA.Equipment.Equipment.MyCamera.CameraInfo
▶ cameraMediator {NINA.WPF.Base.Mediator.CameraMediator} NINA.Equipment.Interfaces.Mediator.ICameraMediator {NINA.WPF.Base.Mediator.CameraMediator}
▶ pixelPeepImage null System.Windows.Media.Imaging.BitmapSource
pixelPeepValue 0 double
pixelPeepX 0 double
pixelPeepY 0 double
▶ profileService {NINA.Profile.ProfileService} NINA.Profile.Interfaces.IProfileService {NINA.Profile.ProfileService}
showPixelPeeper false bool
▶ telescopeMediator {NINA.WPF.Base.Mediator.TelescopeMediator} NINA.Equipment.Interfaces.Mediator.ITelescopeMediator {NINA.WPF.Base.Mediator.TelescopeMediator}
windowServiceFactory null NINA.Core.Utility.WindowService.IWindowServiceFactory
▶ Static members
renderedImage {NINA.Image.ImageData.DebayeredImage} NINA.Image.Interfaces.IRenderedImage {NINA.Image.ImageData.DebayeredImage}
◢ DebayeredData {NINA.Image.ImageData.LRGBArrays} NINA.Image.ImageData.LRGBArrays
▶ Blue {ushort[9048064]} ushort[]
▶ Green {ushort[9048064]} ushort[]
Lum {ushort[0]} ushort[]
▶ Red {ushort[9048064]} ushort[]
◢ Image {System.Windows.Media.Imaging.CachedBitmap} System.Windows.Media.Imaging.BitmapSource {System.Windows.Media.Imaging.CachedBitmap}
Animatable_IsResourceInvalidationNecessary false bool
▶ CachedEventStorage {System.Windows.Freezable.EventStorage} System.Windows.Freezable.EventStorage
CanBeInheritanceContext true bool
CanFreeze true bool
CanModifyEffectiveValues true bool
ContextList null MS.Utility.FrugalObjectList<System.Windows.Freezable.FreezableContextPair>
CreationCompleted false bool
DO_Sealed true bool
DUCECompatiblePtr Evaluation of method System.Windows.Media.Imaging.BitmapSource.get_DUCECompatiblePtr() calls into native method MS.Win32.PresentationCore.UnsafeNativeMethods+MILFactory2.CreateFactory(System.IntPtr&, System.UInt32). Evaluation of native methods while minidump debugging is not supported. System.Windows.Media.Imaging.BitmapSourceSafeMILHandle
DelayCreation false bool
▶ DependencyObjectType {System.Windows.DependencyObjectType} System.Windows.DependencyObjectType
▶ Dispatcher null System.Windows.Threading.Dispatcher
DpiX 96 double
DpiY 96 double
EffectiveValues null System.Windows.EffectiveValueEntry[]
EffectiveValuesCount 0 uint
EffectiveValuesInitialSize 2 int
▶ Format {Rgb48} System.Windows.Media.PixelFormat
Freezable_Frozen true bool
Freezable_HasMultipleInheritanceContexts false bool
Freezable_UsingContextList false bool
Freezable_UsingHandlerList false bool
Freezable_UsingSingletonContext false bool
Freezable_UsingSingletonHandler false bool
HandlerList null MS.Utility.FrugalObjectList<System.EventHandler>
HasAnimatedProperties false bool
HasCompatibleFormat false bool
HasContextInformation false bool
HasHandlers false bool
HasMultipleInheritanceContexts false bool
Height 3008 double
IAnimatable_HasAnimatedProperties false bool
InheritableEffectiveValuesCount 0 uint
▶ InheritanceContext null System.Windows.DependencyObject
▶ InheritanceParent null System.Windows.DependencyObject
IsDownloading false bool
IsFrozen true bool
IsFrozenInternal true bool
IsInPropertyInitialization false bool
IsInheritanceContextSealed false bool
IsSealed true bool
IsSelfInheritanceParent false bool
IsSourceCached true bool
▶ Metadata null System.Windows.Media.ImageMetadata
▶ Palette null System.Windows.Media.Imaging.BitmapPalette
PixelHeight 3008 int
PixelWidth 3008 int
ShouldCloneEventDelegates true bool
▶ SingletonContext null System.Windows.DependencyObject
▶ SingletonContextProperty null System.Windows.DependencyProperty
SingletonHandler null System.EventHandler
▶ Size {3008,3008} System.Windows.Size
▶ SyncObject {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle} object {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle}
System.Windows.ISealable.CanSeal true bool
System.Windows.ISealable.IsSealed true bool
UsableWithoutCache false bool
▶ WicSourceHandle {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle} System.Windows.Media.Imaging.BitmapSourceSafeMILHandle
Width 3008 double
▶ _bitmapInit {System.Windows.Media.Imaging.BitmapInitialize} System.Windows.Media.Imaging.BitmapInitialize
_cacheOption OnLoad System.Windows.Media.Imaging.BitmapCacheOption
_contextStorage null object
▶ _convertedDUCEPtr null System.Windows.Media.Imaging.BitmapSourceSafeMILHandle
_createOptions PreservePixelFormat System.Windows.Media.Imaging.BitmapCreateOptions
_creationComplete false bool
▶ _dType null System.Windows.DependencyObjectType
▶ _decodeFailedEvent {System.Windows.Media.UniqueEventHelper<System.Windows.Media.ExceptionEventArgs>} System.Windows.Media.UniqueEventHelper<System.Windows.Media.ExceptionEventArgs>
_delayCreation false bool
▶ _dispatcher null System.Windows.Threading.Dispatcher
▶ _downloadEvent {System.Windows.Media.UniqueEventHelper} System.Windows.Media.UniqueEventHelper
_dpiX 96 double
_dpiY 96 double
▶ _duceResource {System.Windows.Media.Composition.DUCE.MultiChannelResource} System.Windows.Media.Composition.DUCE.MultiChannelResource
_effectiveValues null System.Windows.EffectiveValueEntry[]
▶ _failedEvent {System.Windows.Media.UniqueEventHelper<System.Windows.Media.ExceptionEventArgs>} System.Windows.Media.UniqueEventHelper<System.Windows.Media.ExceptionEventArgs>
▶ _format {Rgb48} System.Windows.Media.PixelFormat
_isColorCorrected false bool
_isSourceCached true bool
_needsUpdate false bool
_packedData 6815744 uint
▶ _palette null System.Windows.Media.Imaging.BitmapPalette
_pixelHeight 3008 int
_pixelWidth 3008 int
▶ _progressEvent {System.Windows.Media.UniqueEventHelper<System.Windows.Media.Imaging.DownloadProgressEventArgs>} System.Windows.Media.UniqueEventHelper<System.Windows.Media.Imaging.DownloadProgressEventArgs>
▶ _property null System.Windows.DependencyProperty
▶ _source null System.Windows.Media.Imaging.BitmapSource
▶ _syncObject {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle} object {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle}
_useVirtuals true bool
_weakBitmapSourceEventSink null System.Windows.Media.Imaging.BitmapSource.WeakBitmapSourceEventSink
▶ _wicSource {System.Windows.Media.Imaging.BitmapSourceSafeMILHandle} System.Windows.Media.Imaging.BitmapSourceSafeMILHandle
▶ Static members
▶ OriginalImage {System.Windows.Media.Imaging.CachedBitmap} System.Windows.Media.Imaging.BitmapSource {System.Windows.Media.Imaging.CachedBitmap}
PropertyChanged null System.ComponentModel.PropertyChangedEventHandler
▶ RawImageData {NINA.Image.ImageData.BaseImageData} NINA.Image.Interfaces.IImageData {NINA.Image.ImageData.BaseImageData}
SaveColorChannels true bool
SaveLumChannel false bool
▶ image null System.Windows.Media.Imaging.BitmapSource
▶ profileService {NINA.Profile.ProfileService} NINA.Profile.Interfaces.IProfileService {NINA.Profile.ProfileService}
▶ starAnnotator {NINA.Image.ImageAnalysis.StarAnnotator} NINA.Image.ImageAnalysis.IStarAnnotator {NINA.Image.ImageAnalysis.StarAnnotator}
▶ starDetection {NINA.Image.ImageAnalysis.StarDetection} NINA.Image.ImageAnalysis.IStarDetection {NINA.Image.ImageAnalysis.StarDetection}
▶ Static members
parameters {NINA.Core.Utility.PrepareImageParameters} NINA.Core.Utility.PrepareImageParameters
AutoStretch true bool?
DetectStars false bool?
cancelToken IsCancellationRequested = false System.Threading.CancellationToken
CanBeCanceled true bool
IsCancellationRequested false bool
WaitHandle Evaluation of method System.Threading.CancellationToken.get_WaitHandle() calls into native method Microsoft.Win32.Win32Native.CreateEvent(Microsoft.Win32.Win32Native+SECURITY_ATTRIBUTES, bool, bool, string). Evaluation of native methods while minidump debugging is not supported. System.Threading.WaitHandle
▶ m_source {System.Threading.CancellationTokenSource} System.Threading.CancellationTokenSource
▶ Static members
Stack objects
▶ Object at 0x00000249465caec8 {System.Threading.ExecutionContext} System.Threading.ExecutionContext
▶ Object at 0x00000249465cae20 Id = 4475404, Status = RanToCompletion, Method = "{null}", Result = "NINA.Image.ImageData.DebayeredImage" System.Threading.Tasks.Task<NINA.Image.Interfaces.IRenderedImage>
▶ Object at 0x000002497310bc00 {System.ComponentModel.PropertyChangedEventArgs} System.ComponentModel.PropertyChangedEventArgs
▶ Object at 0x0000024936c53d20 {System.ComponentModel.PropertyChangedEventManager} System.ComponentModel.PropertyChangedEventManager
▶ Object at 0x0000024936fc55e8 {NINA.ViewModel.ImageControlVM} NINA.ViewModel.ImageControlVM

Comments (11)

  1. Stefan B repo owner

    Hi,

    each version has a separate commit instead of a tag for nightly and beta versions.
    Looking at the nina log it seems like the debayering process was causing the failure - a crash dump could reveal more info.

  2. Kyle Goodwin reporter

    I’ve set up a full development environment for NINA and got it building on the correct commit, but I haven’t found anything else useful out yet. Nothing in the function the dump indicates as the cause seems immediately suspicious:

      private async Task<IRenderedImage> ProcessAndUpdateImage(
          IRenderedImage renderedImage,
          PrepareImageParameters parameters,
          CancellationToken cancelToken) {
          var processedImage = await ProcessImage(renderedImage, parameters, cancelToken);
    
          this.RenderedImage = processedImage;
          this.Image = processedImage.Image;
          GC.Collect();
    
          if (ShowBahtinovAnalyzer) {
              AnalyzeBahtinov();
          }
          return processedImage;
      }
    

    Because I can’t get Visual Studio to accept the pdb from either the installed version of NINA or the version I just built I’m looking at it in disassembly and code in parallel without it properly linking up in the debugger, so it’s a bit of a challenge to tell exactly where the issue lies.

    00007FFACFE9FA27  call        NINA.ViewModel.ImageControlVM.set_Image(System.Windows.Media.Imaging.BitmapSource) (07FFACE584018h)  
    00007FFACFE9FA2C  mov         ecx,0FFFFFFFFh  
    00007FFACFE9FA31  mov         edx,2  
    00007FFACFE9FA36  call        System.GC._Collect(Int32, Int32) (07FFACFE54788h)  
    00007FFACFE9FA3B  cmp         byte ptr [rsi+35h],0  
    00007FFACFE9FA3F  je          NINA.ViewModel.ImageControlVM+<ProcessAndUpdateImage>d__134.MoveNext()+0149h (07FFACFE9FA49h)  
    00007FFACFE9FA41  mov         rcx,rsi  
    00007FFACFE9FA44  call        NINA.ViewModel.ImageControlVM.AnalyzeBahtinov() (07FFACE583F40h)
    

    The disassembly crash breakpoint is the branch comparison on line 5 there.

  3. George Hilios

    This looks like it crashed during garbage collection, which suggests managed heap corruption or a failed finalizer accessing native memory. Has this happened multiple times for you?

    This is a notoriously difficult type of issue to track down without a way of reproducing it. If you’re able to reproduce it, we can set up an iDNA time traveling trace to help chase it down, otherwise we’ll need to remain on the lookout.

  4. George Hilios

    Looks like this is actually a managed heap corruption then. Didn’t even make it into a finalizer:

    EXCEPTION_RECORD:  (.exr -1)
    ExceptionAddress: 00007ffb2db85abc (clr!WKS::gc_heap::plan_phase+0x00000000000009bc)
       ExceptionCode: c0000005 (Access violation)
      ExceptionFlags: 00000001
    NumberParameters: 2
       Parameter[0]: 0000000000000000
       Parameter[1]: 0000000100000000
    Attempt to read from address 0000000100000000
    
    PROCESS_NAME:  NINA.exe
    
    READ_ADDRESS:  0000000100000000 
    
    ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
    
    EXCEPTION_CODE_STR:  c0000005
    
    EXCEPTION_PARAMETER1:  0000000000000000
    
    EXCEPTION_PARAMETER2:  0000000100000000
    
    STACK_TEXT:  
    000000be`4ddfd620 00007ffb`2db7d80e     : 00000000`00000001 00000000`00000001 00000000`00000000 00000000`00000002 : clr!WKS::gc_heap::plan_phase+0x9bc
    000000be`4ddfd980 00007ffb`2db7d713     : 00000000`00000001 00000000`00000001 00000000`00000000 00000000`00000000 : clr!WKS::gc_heap::gc1+0x100
    000000be`4ddfd9d0 00007ffb`2db7f707     : 00000000`00000001 00000000`00000001 00000000`00000000 00000000`00000002 : clr!WKS::gc_heap::garbage_collect+0x193
    000000be`4ddfda10 00007ffb`2dc11b81     : 00000000`00000002 00000249`00000002 00000000`00000002 00000000`00000002 : clr!WKS::GCHeap::GarbageCollectGeneration+0xef
    000000be`4ddfda60 00007ffb`2dc0d87d     : 00007ffb`2dc11af0 000000be`4ddfdbe0 00000000`00000002 00000002`00000003 : clr!WKS::GCHeap::GarbageCollect+0x91
    000000be`4ddfdab0 00007ffb`28d11fd3     : 00000249`63e00090 00007ffa`cfe33e2f 00000000`00000000 00000000`00000000 : clr!GCInterface::Collect+0x6a
    000000be`4ddfdb40 00007ffa`cfe9fa3b     : 00000249`36c53d20 00000249`36fc55e8 00000249`7310bc00 00007ffb`28cd19e5 : mscorlib_ni+0x641fd3
    000000be`4ddfdbf0 00007ffb`28c5df12     : 00000249`465cafd8 000000be`4ddfdc00 00007ffa`fd164172 000000be`4ddfdca0 : 0x00007ffa`cfe9fa3b
    

  5. George Hilios

    Lastly, if you’re feeling particularly adventurous, you could try steps 3-5 from this SO answer: https://stackoverflow.com/a/7792360

    The general idea is to enable many forms of runtime memory checks and run the application under a debugger to catch it in the act. Managed heap corruption is likely P/Invoke related, possibly with the ASI driver based on what I saw in the log. Beyond that is hard to say without catching it in the act.

  6. Kyle Goodwin reporter

    It happened twice to the best of my knowledge. The first night it happened I didn’t get a crash dump, though, so I can’t prove it was the same crash. It seems likely, however, as I haven’t ever had NINA crash before for any other reason. I can’t definitively rule out hardware causing the issue, either, since it was quite cold those two nights. My imaging computer is inside a plastic box that stays pretty warm with the computer and my 12v power supply warming it, so I doubt that was an issue, but it’s not impossible.

  7. Kyle Goodwin reporter

    I’m willing to utilize several days of scope downtime to run it 24/7 producing darks in an attempt to reproduce using your idea from the SO above. I’ll bring the computer inside to rule out anything cold temperature related causing issues. I’ll set up this test soon to take advantage of the poor weather predicted for the next week or so.

  8. Kyle Goodwin reporter

    Despite extensive efforts I have not been able to reproduce this issue. I am ascribing it to cold-induced hardware issues.

  9. Log in to comment