View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002228 | Ham Radio Deluxe | Bug | public | 2017-08-22 18:42 | 2017-09-18 00:08 |
Reporter | K7ZCZ | ||||
Assigned To | K7ZCZ | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | Intel i7-5960X | OS | Windows 10 Professional x64 | OS Version | 1703 |
Product Version | 6.4.0.780 | ||||
Target Version | Fixed in Version | 6.4.0.787 | |||
Summary | 0002228: Logbook: leaks memory from global heap for each logfile message sent from HRDInterface001 | ||||
Description | This changeset: https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/2340 altered the logging message such that the string to be logged was allocated on the global heap, and passed in wParam of the message. A compensating change was made in the logfile implementation of the Digital Master application so that the status quo of sending the message with a CRT-allocated string passed in lParam was still handled, but the wParam mechansm was also handled and correctly freed. No such compensating change was made in the Logbook application. As such, each and every message so sent to the logbook was leaked -- left on the global heap. This also had the side-effect of inserting an empty line into the logfile window. When busy, the logfile window is noisy with such messagaes, all blank lines. | ||||
Steps To Reproduce | 1) Fire up the logbook 2) turn on "Debug" and "Timing" logs in the logfile view (reachable with the "Logfile" command in the "View" menu) 3) open your favorite database 4) Use the "Add" button in the logbook database view to add a QSO 5) save it. Close the ALE. 6) Activate the logfile view. Note there are a couple of dozen empty lines. Any place where there is more than one empty line in a row is most likely a memory leak. | ||||
Additional Information | This issue demonstrates several problems: 1) Terrible code-review practices. A code review by an experienced developer familiar with the proeject has a chance of pointing out that the message is processed in two different places, and that handling code needs to be repaired in both places. 2) A lack of understanding of what causes a memory leak -- and what fixes it. The original checkin claimed to fix a memory leak. Really, it moved the memory leak from the CRT heap (where it is detected and traced at shutdown) to the global heap (where it isn't detected or traced; and therefore assumed to be fixed). 3) A poor understanding of the Windows architecture. Small allocations aren't good candidates for the global heap for at least a couple of reasons. Locked memory regions have several counter-indications, as well. | ||||
Tags | No tags attached. | ||||
Module | Logbook | ||||
Sub-Module | Functional | ||||
Testing | Not Started | ||||
|
fixed with this changeset: https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/3796 |
|
While investigating this issue using 1) Fire up the logbook 2) turn on "Debug" and "Timing" logs in the logfile view (reachable with the "Logfile" command in the "View" menu) 3) open your favorite database 4) Use the "Add" button in the logbook database view to add a QSO When I reach 4) the ALE stops responding and Logbook has to close. This is repeatable. Sorry, no minidump seems to be created. |
|
Actually two minidumps have just been created but I do not know which relates to the above issue. Both attached. HTH HRDLogbook.dmp (179,031 bytes) |
|
2nd dump. Sorry it is large |
|
It did not upload. |
|
I justv tested this again and got the same result as before i.e the Logbook stopped responding. I invoked Task Manager and got the Logbook.dmp but it is still 143Mb zipped. |
|
Closed as part of the 6.4.0.787 release. |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-08-22 18:42 | K7ZCZ | New Issue | |
2017-08-22 21:46 | K7ZCZ | Assigned To | => K7ZCZ |
2017-08-22 21:46 | K7ZCZ | Status | new => resolved |
2017-08-22 21:46 | K7ZCZ | Resolution | open => fixed |
2017-08-22 21:46 | K7ZCZ | Note Added: 0004075 | |
2017-09-01 16:41 | K7ZCZ | Fixed in Version | => 6.4.0.782 |
2017-09-07 18:18 | K7ZCZ | Fixed in Version | 6.4.0.782 => 6.4.0.784 |
2017-09-11 21:32 | K7ZCZ | Fixed in Version | 6.4.0.784 => 6.4.0.785 |
2017-09-12 03:30 | g3ucq | Note Added: 0004171 | |
2017-09-12 03:42 | g3ucq | File Added: HRDLogbook.dmp | |
2017-09-12 03:42 | g3ucq | Note Added: 0004172 | |
2017-09-12 03:43 | g3ucq | Note Added: 0004173 | |
2017-09-12 03:44 | g3ucq | Note Added: 0004174 | |
2017-09-14 17:43 | g3ucq | Note Added: 0004188 | |
2017-09-14 19:23 | K7ZCZ | Fixed in Version | 6.4.0.785 => 6.4.0.787 |
2017-09-18 00:06 | WA9PIE | Project | 3 - Current Dev List => Ham Radio Deluxe |
2017-09-18 00:08 | WA9PIE | Note Added: 0004208 | |
2017-09-18 00:08 | WA9PIE | Status | resolved => closed |