View Issue Details

IDProjectCategoryView StatusLast Update
00034372 - Next Dev List (Holding Area)Bugpublic2020-07-02 02:20
ReporterKB3NPHAssigned ToWA9PIE 
Status assignedResolutionopen 
Summary0003437: Immediate crash and minidump when you start HRD
DescriptionTicket #516291 - Customer installed HRD and when he tries to run it immediately crashes indicating a minidump was created. There's no splash screen, no nothing except the error screen indicating that it created a minidump.

I pulled the minidump and it's attached.

TagsNo tags attached.
ModuleRig Control
TestingNot Started


related to 0003391 new consider removing .Net setup from HRD product setup 



2019-08-24 12:56


HamRadioDeluxe_20190824_173317.mdmp (472,598 bytes)


2019-08-25 02:42

updater   ~0008435

Set this to Private Please!


2019-08-26 15:08

developer   ~0008449

This dump is from build

Looks like something is failing in the new licensing code. The callstacks are here. The HRESULT from the QLM call looks like E_POINTER, but I'm not positive that the args match the sources I have completely. I don't see ProductID on the stack, for example.

Doug should take a look.

0:000> .ecxr
eax=0039c7dc ebx=0039c880 ecx=00000003 edx=00000000 esi=728d520c edi=72911e8c
eip=74bbc5af esp=0039c7dc ebp=0039c82c iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
74bbc5af c9              leave
0:000> kb
  *** Stack trace for last set context - .thread/.cxr resets it
 # ChildEBP RetAddr  Args to Child              
00 0039c82c 7286b8da e06d7363 00000001 00000003 KERNELBASE!RaiseException+0x58
01 0039c870 728690a4 0039c880 72911e8c 728d3314 HRDStation!_CxxThrowException+0x66 [d:\agent\_work\3\s\src\vctools\crt\vcruntime\src\eh\throw.cpp @ 129] 
02 0039c890 72868c91 80004003 008c7a5c 046e0034 HRDStation!_com_raise_error+0x24 [d:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\vccom\comraise.cpp @ 18] 
03 0039c8ac 726fdb45 80004003 046e0034 728e2660 HRDStation!_com_issue_errorex+0x91 [d:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\vccom\comsupp.cpp @ 66] 
04 0039c8e0 726ffd8f 046e0034 00000000 00000006 HRDStation!QlmLicenseLib::IQlmLicense::DefineProduct+0x85 [c:\hrd66\hrdstation\release\qlmlicenselib.tli @ 2675] 
05 0039c95c 726f1a90 6c2c3142 ffffffff 00027060 HRDStation!LicenseValidator::LicenseValidator+0x22f [c:\hrd66\hrdstation\licensevalidator.cpp @ 134] 
06 0039d6a8 726f5f74 00000000 6c2c309a 013b1590 HRDStation!HRDSoracoLicenser::CheckLicense+0xe0 [c:\hrd66\hrdstation\hrdsoracolicenser.cpp @ 61] 
07 0039d770 726f30e8 00c3d7af 6c0db96b 013b1590 HRDStation!_HRDInitStation+0x2a4 [c:\hrd66\hrdstation\hrdstationlicense.cpp @ 320] 
08 (Inline) -------- -------- -------- -------- HRDStation!CHRDStationApp::InitializeStation+0xc7 [c:\hrd66\hrdstation\hrdstation.cpp @ 160] 
09 0039d774 00c3d7af 6c0db96b 013b1590 00c3d620 HRDStation!InitializeStation+0xc8 [c:\hrd66\hrdstation\hrdstation.cpp @ 129] 
0a 0039fd4c 0115725f 00000000 014c885c 7efde000 HamRadioDeluxe!CHamRadioDeluxeApp::InitInstance+0x18f [c:\hrd66\hamradiodeluxe\hamradiodeluxe.cpp @ 260] 
0b 0039fd64 00e9f443 00b80000 00000000 007e1a7e HamRadioDeluxe!AfxWinMain+0x5f [d:\agent\_work\3\s\src\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37] 
0c (Inline) -------- -------- -------- -------- HamRadioDeluxe!invoke_main+0x1a [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
0d 0039fdb0 766b343d 7efde000 0039fdfc 772a9802 HamRadioDeluxe!__scrt_common_main_seh+0xf8 [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
0e 0039fdbc 772a9802 7efde000 7702d5e3 00000000 kernel32!BaseThreadInitThunk+0xe
0f 0039fdfc 772a97d5 00e9f4c7 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
10 0039fe14 00000000 00e9f4c7 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b
0:000> kp
  *** Stack trace for last set context - .thread/.cxr resets it
 # ChildEBP RetAddr  
00 0039c82c 7286b8da KERNELBASE!RaiseException+0x58
01 0039c870 728690a4 HRDStation!_CxxThrowException(void * pExceptionObject = 0x0039c880, struct _s__ThrowInfo * pThrowInfo = 0x72911e8c)+0x66 [d:\agent\_work\3\s\src\vctools\crt\vcruntime\src\eh\throw.cpp @ 129] 
02 0039c890 72868c91 HRDStation!_com_raise_error(HRESULT hr = <Value unavailable error>, struct IErrorInfo * perrinfo = <Value unavailable error>)+0x24 [d:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\vccom\comraise.cpp @ 18] 
03 0039c8ac 726fdb45 HRDStation!_com_issue_errorex(HRESULT hr = 0x80004003, struct IUnknown * punk = 0x046e0034, struct _GUID * riid = 0x728e2660 {41791E5A-1B22-40F0-A7B2-322F361DFFBC})+0x91 [d:\agent\_work\3\s\src\vctools\compiler\cxxfe\sl\vccom\comsupp.cpp @ 66] 
04 0039c8e0 726ffd8f HRDStation!QlmLicenseLib::IQlmLicense::DefineProduct(class _bstr_t productName = class _bstr_t, long majorVersion = 0n6, long minorVersion = 0n6, class _bstr_t encryptionKey = class _bstr_t, class _bstr_t persistenceKey = class _bstr_t)+0x85 [c:\hrd66\hrdstation\release\qlmlicenselib.tli @ 2675] 
05 0039c95c 726f1a90 HRDStation!LicenseValidator::LicenseValidator(void)+0x22f [c:\hrd66\hrdstation\licensevalidator.cpp @ 134] 
06 0039d6a8 726f5f74 HRDStation!HRDSoracoLicenser::CheckLicense(int bForceDlg = 0n0)+0xe0 [c:\hrd66\hrdstation\hrdsoracolicenser.cpp @ 61] 
07 0039d770 726f30e8 HRDStation!_HRDInitStation(void)+0x2a4 [c:\hrd66\hrdstation\hrdstationlicense.cpp @ 320] 
08 (Inline) -------- HRDStation!CHRDStationApp::InitializeStation+0xc7 [c:\hrd66\hrdstation\hrdstation.cpp @ 160] 
09 0039d774 00c3d7af HRDStation!InitializeStation(void)+0xc8 [c:\hrd66\hrdstation\hrdstation.cpp @ 129] 
0a 0039fd4c 0115725f HamRadioDeluxe!CHamRadioDeluxeApp::InitInstance(void)+0x18f [c:\hrd66\hamradiodeluxe\hamradiodeluxe.cpp @ 260] 
0b 0039fd64 00e9f443 HamRadioDeluxe!AfxWinMain(struct HINSTANCE__ * hInstance = 0x00b80000, struct HINSTANCE__ * hPrevInstance = 0x00000000, wchar_t * lpCmdLine = 0x007e1a7e "", int nCmdShow = 0n1)+0x5f [d:\agent\_work\3\s\src\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37] 
0c (Inline) -------- HamRadioDeluxe!invoke_main+0x1a [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
0d 0039fdb0 766b343d HamRadioDeluxe!__scrt_common_main_seh(void)+0xf8 [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
0e 0039fdbc 772a9802 kernel32!BaseThreadInitThunk+0xe
0f 0039fdfc 772a97d5 ntdll!__RtlUserThreadStart+0x70
10 0039fe14 00000000 ntdll!_RtlUserThreadStart+0x1b


2019-08-26 21:52

developer   ~0008450

ProductID is hard coded to 3.

First off, we can "fix" the crash, meaning that it won't crash happen any more. But this is a symptom that QLM in general is not working. All these QLM calls throw com exceptions when they fail, but for the most part we have not been catching them (as Mike B. has noticed before). There really aren't supposed to fail even the QLM sample code doesn't catch these either. This call "DefineProduct" pretty much does nothing to crazy, this is hidden in the dll but with process monitor I can tell it is not accessing any file or registry when I step over it.

So the fix would be to just catch it and return some generic error message. The similar exceptions I have caught from QLM before is just "Unknown Error".

So while I have no magic cure for this one, here is what I can tell from the dump.
The crash on the first call after loading the dll. So this probably means that there is some general compatibility issue here.
If I had to guess this would be an issue with a dll the QLM is dependent on (I believe is uses a bunch of .net assemblies). There is also a slight possibility that they have an old version of the dll installed and registered on that machine.

One thing that jumps out at me is that this appears to be a Windows 7 machine, While this shouldn't be a problem, it probably increases the likelihood that some required dll is not there. I would ask user the make sure all updates are applied and the latest .net framework updates are installed.

What is the normal protocol for trying to support users with a crash like this?


2019-08-27 06:03

updater   ~0008451

The procedure I use resolves the issue at 99% of the time.
Just by letting the customer do a full Windows Update, reboot and Install Ham Radio Deluxe again on top of the existing install.


2019-08-27 09:53

developer   ~0008452

In the source code, I can see the magic number "3" hard coded as the first parameter to IQlmLicense::DefineProduct().

However, it's absent from both the kp and kb call stacks. This seems really strange, as digging through the disassembly I don't see how the parameter value 3 is developed or passed to the DefineProduct() method. It's as if the parameter doesn't exist. Given the HRESULT is E_POINTER, I'm trying to figure out why the first parameter in the kb dump shows 0x00000000 (before 0x00000006) in the DefineProduct() call.

Indeed, it's a Windows 7 host. The dump shows version 4.0.30319 of mscoreei.dll and the modules. Is that too old?


2019-09-19 07:56

administrator   ~0008566

Last edited: 2019-09-19 08:00

View 2 revisions

This issue has been resolved. It turns out to be that MS .NET Framework 4.5 or newer has to be installed on the computer due to the QLM additions to the HRD software. So, we can mark this Mantis issue resolved with no action required, although as an afterthought, it might be a good idea to put a check in the installer and if .NET 4.5 or newer is not found on the computer, it should be downloaded and installed in our installer.

Issue History

Date Modified Username Field Change
2019-08-24 12:56 KB3NPH New Issue
2019-08-24 12:56 KB3NPH Status new => assigned
2019-08-24 12:56 KB3NPH Assigned To => K7ZCZ
2019-08-24 12:56 KB3NPH File Added: HamRadioDeluxe_20190824_173317.mdmp
2019-08-25 02:42 PD9FER Note Added: 0008435
2019-08-26 15:07 K7ZCZ Assigned To K7ZCZ => DOUG
2019-08-26 15:08 K7ZCZ Note Added: 0008449
2019-08-26 21:52 DOUG Note Added: 0008450
2019-08-27 06:03 PD9FER Note Added: 0008451
2019-08-27 09:53 K7ZCZ Note Added: 0008452
2019-09-19 07:56 KB3NPH Note Added: 0008566
2019-09-19 08:00 KB3NPH Note Edited: 0008566 View Revisions
2019-10-05 10:32 K7ZCZ Relationship added related to 0003391
2019-10-06 18:38 WA9PIE Project 1 - Backlog => 3 - Current Dev List
2019-12-05 18:23 WA9PIE Assigned To DOUG => WA9PIE
2020-07-02 02:20 WA9PIE Project 3 - Current Dev List => 2 - Next Dev List (Holding Area)