View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002774||Ham Radio Deluxe||Bug||public||2018-06-18 14:28||2018-07-26 11:29|
|Priority||high||Severity||major||Reproducibility||have not tried|
|Target Version||Fixed in Version||126.96.36.1993|
|Summary||0002774: DM-780 will not run|
|Description||A 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: 188.8.131.526, time stamp: 0x5b267f03
name of the faulty module: HRDVistaAudio.dll, version: 184.108.40.2066, 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 Information||osTicket 967871 https://support.hamradiodeluxe.com/scp/tickets.php?id=19291|
|Tags||No tags attached.|
||As far as I can tell, this is a duplicate of 2309.|
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."
My read of that statement is that the customer reinstalled the Windows 10 upgrade package and the problem went away. Am I misunderstanding something?
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:
to configure Watson and have Windows create a dump. With that dump, we should be able to get to a root cause.
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
Customer has provided a dump file. It is in the DUMP folder in Gdrive with filename:
Mantis Ticket 0002774 Digital Master.exe.216.dmp
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.
Fixed with this shelved change list. (At least we won't crash; might have problems with the bad device name, but ...)
fixed with this checkin. If a device name isn't available, the device will be described as "<Device name not available>"
||Tim, please comment regarding this fix.|
||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.|
||Customer has confirmed this issue as resolved in Beta 220.127.116.112|
|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||=> 18.104.22.1688|
|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||22.214.171.1248 => 126.96.36.1993|
|2018-07-26 11:29||WA9PIE||Project||3 - Current Dev List => Ham Radio Deluxe|