View Issue Details

IDProjectCategoryView StatusLast Update
0002774Ham Radio DeluxeBugpublic2018-07-26 11:29
ReporterKB3NPH 
Assigned ToWA9PIE 
PriorityhighSeveritymajorReproducibilityhave not tried
Status closedResolutionreopened 
Product Version 
Target VersionFixed in Version6.4.0.873 
Summary0002774: DM-780 will not run
DescriptionA German customer reported this issue and said there was no error messages or anything on the screen. He sent information from the Event Viewer in Windows but it was all in German. I used the translator in OSTicket to translate the info from the Event Viewer. Hope this is enough information to get this resolved for him.

- HRD Rig Control starts properly ,
- DM-780 tries to start, but fails , an error message from the program itself does not appear,
- The Windows Event Viewer logs the error as follows:
###
Name of misapplication: Digital Master .exe, version: 6.4.0.846, time stamp: 0x5b267f03
name of the faulty module: HRDVistaAudio.dll, version: 6.4.0.846, time stamp: 0x5b267d65
exception code 0xc0000409
error offset: 0x00124006
ID of the faulty process: 0x28d8
start time of misapplication: 0x01d407105713e2b4
path misapplication: C: \ Program files (x86) \ HRD software LLC \ Ham radio Deluxe \ Digital Master.exe
Path of the faulty module: C: \ Program Files (x86) \ HRD Software LLC \ Ham Radio Deluxe \ HRDVistaAudio.dll
Report ID: 1ba73281-7f88-4514-a485-552558df1ed7
Full name of the faulty package:
Application ID, which relative to the faulty Package is:
###
The problem has occurred since reinstalling Windows 10, version 1803.
Can you help? Thanks,
Additional InformationosTicket 967871 https://support.hamradiodeluxe.com/scp/tickets.php?id=19291
TagsNo tags attached.
ModuleDM780
Sub-ModuleFunctional
TestingNot Started

Relationships

duplicate of 0002309 closedKB3NPH Ticket 908987 DM 780 will not load on computer 

Activities

K7ZCZ

2018-06-20 19:38

manager   ~0005360

As far as I can tell, this is a duplicate of 2309.

K7ZCZ

2018-06-20 19:45

manager   ~0005361

Is there actually a bug here? In the ticket, the customer says: "To fix the error, Windows 10 Home Build17134_rs4_release.180410-1804 was reinstalled."

https://support.hamradiodeluxe.com/scp/tickets.php?id=19291

My read of that statement is that the customer reinstalled the Windows 10 upgrade package and the problem went away. Am I misunderstanding something?

K7ZCZ

2018-06-20 19:51

manager   ~0005362

The message from the log says that the faulting application is DM780, and the DLL that fails is.

Dumping the disassembly of that DLL shows this code:

__invoke_watson:
  10123FF8: 6A 17              push        17h
  10123FFA: E8 53 1A 01 00     call        _IsProcessorFeaturePresent@4
  10123FFF: 85 C0              test        eax,eax
  10124001: 74 05              je          10124008
  10124003: 6A 05              push        5
  10124005: 59                 pop         ecx
  10124006: CD 29              int         29h
  10124008: 56                 push        esi


The given offset is 10124006, where the code is trying to invoke Watson to report a crash. Without a call stack, we've got no shot at understanding why the application wanted to invoke Watson to report the crash. So, a minidump is necessary.

We have code in DM780 that traps exceptions and reports a usable minidump, but in rare circumstances that code might be missed. Notably, if the application crashes very early in startup before our handler is attached. I figure that's what's happening here. If the issue actually wasn't resolved, then we should walk the customre through these settings:

https://msdn.microsoft.com/en-us/library/windows/desktop/bb787181.aspx

to configure Watson and have Windows create a dump. With that dump, we should be able to get to a root cause.

K7ZCZ

2018-06-20 20:12

manager   ~0005363

Last edited: 2018-06-20 20:29

View 2 revisions

a little more study of the assembly reveals that the C0000409 status code means there's a buffer overrun someplace. This is from WinNT.H:

#define STATUS_STACK_BUFFER_OVERRUN      ((DWORD   )0xC0000409L)  


My guess is that, at startup, there's something that causes the a buffer overrun; that's trapped by the GS security code and this exception is thrown. There's no way to know what the specific cause is, though, without the minidump.

Some notes about the GS reporting for security errors: https://blogs.msdn.com/b/dsvc/archive/2009/12/28/investigating-a-gscookie-corruption.aspx

KB3NPH

2018-06-22 12:35

administrator   ~0005387

Customer has provided a dump file. It is in the DUMP folder in Gdrive with filename:

Mantis Ticket 0002774 Digital Master.exe.216.dmp

K7ZCZ

2018-06-22 19:18

manager   ~0005389

OK, so despite the note in the tickets that an update fixed it, it's still crashing?

Otherwise: awesome! Always helps to have a dump. Here's the call stack for the crash.

0:000> r
eax=00000001 ebx=00a12f70 ecx=00000005 edx=000001e0 esi=00000016 edi=00a12f70
eip=63314006 esp=01ffd50c ebp=01ffd524 iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
HRDVistaAudio!_invoke_watson+0xe:
63314006 cd29            int     29h
0:000> kp
 # ChildEBP RetAddr  
00 01ffd508 63313fe7 HRDVistaAudio!_invoke_watson(wchar_t * pszExpression = 0x00000000 "", wchar_t * pszFunction = 0x00000000 "", wchar_t * pszFile = 0x00000000 "", unsigned int nLine = 0, unsigned int pReserved = 0)+0xe [f:\dd\vctools\crt\crtw32\misc\invarg.c @ 132] 
01 01ffd524 63313ff4 HRDVistaAudio!_invalid_parameter(wchar_t * pszExpression = <Value unavailable error>, wchar_t * pszFunction = <Value unavailable error>, wchar_t * pszFile = <Value unavailable error>, unsigned int nLine = <Value unavailable error>, unsigned int pReserved = <Value unavailable error>)+0x2a [f:\dd\vctools\crt\crtw32\misc\invarg.c @ 85] 
02 01ffd53c 6330d851 HRDVistaAudio!_invalid_parameter_noinfo(void)+0xc [f:\dd\vctools\crt\crtw32\misc\invarg.c @ 96] 
03 01ffd548 631f1e6d HRDVistaAudio!wcsncpy_s(unsigned short * _Dst = 0x01ffd5c8, unsigned int _SizeInWords = 0x200, wchar_t * _Src = 0x00000000 "", unsigned int _Count = 0xffffffff)+0x4c [f:\dd\vctools\crt\crtw32\h\tcsncpy_s.inl @ 24] 
04 01ffd57c 631f1cbd HRDVistaAudio!CHRDVistaAudioApp::GetDeviceName(struct IMMDevice * pDevice = 0x0650dc80, wchar_t * pszBuffer = 0x01ffd5c8 "", int bufferLen = 0n33544656)+0x5d [c:\ham radio\digital master\hrdvistaaudio\hrdvistaaudio\hrdvistaaudio.cpp @ 184] 
05 01ffd9d0 0031b5d5 HRDVistaAudio!CHRDVistaAudioApp::LoadData(void)+0x10d [c:\ham radio\digital master\hrdvistaaudio\hrdvistaaudio\hrdvistaaudio.cpp @ 103] 
06 01fffc04 007ef581 Digital_Master!CDigitalMasterApp::InitInstance(void)+0x155 [c:\ham radio\digital master\digital master\digital master.cpp @ 460] 
07 01fffc18 0060a23f Digital_Master!AfxWinMain(struct HINSTANCE__ * hInstance = 0x002e0000, struct HINSTANCE__ * hPrevInstance = 0x00000000, wchar_t * lpCmdLine = 0x02271f20 "/Quiet", int nCmdShow = 0n1)+0x46 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37] 
08 01fffc64 75b08484 Digital_Master!__tmainCRTStartup(void)+0xfd [f:\dd\vctools\crt\crtw32\startup\crt0.c @ 251] 
09 01fffc78 76fa2fea kernel32!BaseThreadInitThunk+0x24
0a 01fffcc0 76fa2fba ntdll!__RtlUserThreadStart+0x2f
0b 01fffcd0 00000000 ntdll!_RtlUserThreadStart+0x1b



This shows that we're enumerating the audio devices on the machine. We find one and try to get its name, but the name comes back as NULL. The parameter to wcsncpy_s() is meant to be that name, but we can see in the stack it's NULL. The code doesn't defend itself against that condition, and it crashes.

K7ZCZ

2018-06-22 20:49

manager   ~0005390

Fixed with this shelved change list. (At least we won't crash; might have problems with the bad device name, but ...)

https://hrdsoftware.visualstudio.com/HRD/_versionControl/shelveset?ss=DM780%20null%20device%20%282774%29%3Bmikeblas%40msn.com

K7ZCZ

2018-06-24 20:37

manager   ~0005460

fixed with this checkin. If a device name isn't available, the device will be described as "<Device name not available>"

https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/4180

WA9PIE

2018-06-30 00:51

administrator   ~0005573

Tim, please comment regarding this fix.

KB3NPH

2018-07-25 08:30

administrator   ~0005784

I am unable to confirm this fix since I can't replicate the issue. I'm attempting to contact the customer who provided the mini-dump and see if he would test the beta on his system and report back to me.

KB3NPH

2018-07-26 08:57

administrator   ~0005837

Customer has confirmed this issue as resolved in Beta 6.4.0.872

Issue History

Date Modified Username Field Change
2018-06-18 14:28 KB3NPH New Issue
2018-06-20 19:38 K7ZCZ Relationship added duplicate of 0002309
2018-06-20 19:38 K7ZCZ Note Added: 0005360
2018-06-20 19:45 K7ZCZ Assigned To => KB3NPH
2018-06-20 19:45 K7ZCZ Status new => feedback
2018-06-20 19:45 K7ZCZ Note Added: 0005361
2018-06-20 19:51 K7ZCZ Note Added: 0005362
2018-06-20 20:12 K7ZCZ Note Added: 0005363
2018-06-20 20:29 K7ZCZ Note Edited: 0005363 View Revisions
2018-06-21 13:40 WA9PIE Summary Ticket #967871 - DM-780 will not run => DM-780 will not run
2018-06-21 13:40 WA9PIE Additional Information Updated View Revisions
2018-06-22 12:35 KB3NPH Note Added: 0005387
2018-06-22 19:18 K7ZCZ Note Added: 0005389
2018-06-22 20:49 K7ZCZ Note Added: 0005390
2018-06-22 20:49 K7ZCZ Project 1 - Backlog => 3 - Current Dev List
2018-06-24 20:37 K7ZCZ Status feedback => resolved
2018-06-24 20:37 K7ZCZ Resolution open => duplicate
2018-06-24 20:37 K7ZCZ Note Added: 0005460
2018-06-28 10:06 K7ZCZ Fixed in Version => 6.4.0.858
2018-06-30 00:51 WA9PIE Status resolved => feedback
2018-06-30 00:51 WA9PIE Resolution duplicate => reopened
2018-06-30 00:51 WA9PIE Note Added: 0005573
2018-07-25 08:30 KB3NPH Note Added: 0005784
2018-07-26 08:57 KB3NPH Note Added: 0005837
2018-07-26 08:57 KB3NPH Assigned To KB3NPH =>
2018-07-26 08:57 KB3NPH Assigned To => WA9PIE
2018-07-26 08:57 KB3NPH Status feedback => confirmed
2018-07-26 11:29 WA9PIE Status confirmed => closed
2018-07-26 11:29 WA9PIE Fixed in Version 6.4.0.858 => 6.4.0.873
2018-07-26 11:29 WA9PIE Project 3 - Current Dev List => Ham Radio Deluxe