View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002819||Ham Radio Deluxe||Bug||public||2018-07-28 00:43||2018-08-09 21:05|
|Platform||Intel i7-5960X||OS||Windows 10 Professional x64||OS Version||16299|
|Target Version||Fixed in Version||126.96.36.1996|
|Summary||0002819: Logbook: DXCluster will try to use databases other than those configured for WSI lookups|
As far as the DXCluster is concerned, databases configured in the Logbook have two interesting attributes: are they connected at the moment, and are they configured for WSI lookups.
A database may be disconnected if a connection couldn't be established at startup. If the user has configured a database in the Database Manager, for example, but the server that hosts that database isn't actually running or unreachable.
The user may configure any database to be (or not be) used for WSI lookups. A bit of confusing UI, since "WSI Lookups" in the configuration is different nomenclature than "DX Cluster". But the setting is intended to enable (or disable) a particular data source from being used for WSI lookups.
Remarkably, these states aren't correctly considered. The country lookup code, which processes WSI hits, will skip a database for a query only if that database is not connected AND not configured for WSI. If the database isn't connected but is configured for WSI, the query is still attempted. If the database is connected but not configured for WSI, the query is still attempted.
|Steps To Reproduce||Code throughout the WSI lookup code looks like this:|
if (!pLookup->bIsOpen && !pLookup->log.Lookup() ) continue;
It should look more like this:
if (!pLookup->bIsOpen || !pLookup->log.Lookup() ) continue;
A given the databse should be skipped if it's not connected OR if it's not configured for lookup.
|Tags||No tags attached.|
An easy way to reproduce this is to create a bogus ODBC source:
1) Open the ODBC manager
2) Add an Access source
3) Enter a title for the data source
4) Do NOT enter any other information
5) Sav the data source
Then, add that data source to the Logbook, and set it up for WSI use:
1) Use the "Manage" button in the logbook toolbar
2) Add a data source
3) Select the data source created above
4) Enable it for WSI lookups
5) Close the "Add" window
6) Close the "Manager" window
at this point, turning on the DX Cluster will make the application quite sick. Spots will load, but will never look up. On my machine, popu-up windows from ODBC appear asking the user to select the actual data source.
Since the data source couldn't be opened, the code could recognize this condition and fail to use the data source. The application instead persists, resulting in unexpected UI and a pretty obnoxious situation for the user. At this point in the repro, the application is essentially hung. It could be recovered, but only by tedious and knowledgable effort from the user.
Shelf with a fix is available here:
checked in at this change set:
||Closed as part of the 875 beta... 876 release.|
|2018-07-28 00:43||K7ZCZ||New Issue|
|2018-07-28 11:36||K7ZCZ||Note Added: 0005873|
|2018-07-30 20:31||K7ZCZ||Note Added: 0005890|
|2018-08-04 09:06||K7ZCZ||Assigned To||=> K7ZCZ|
|2018-08-04 09:06||K7ZCZ||Status||new => resolved|
|2018-08-04 09:06||K7ZCZ||Resolution||open => fixed|
|2018-08-04 09:06||K7ZCZ||Note Added: 0005918|
|2018-08-08 18:20||K7ZCZ||Fixed in Version||=> 188.8.131.525|
|2018-08-09 21:02||WA9PIE||Project||3 - Current Dev List => Ham Radio Deluxe|
|2018-08-09 21:03||WA9PIE||Fixed in Version||184.108.40.2065 => 220.127.116.116|
|2018-08-09 21:05||WA9PIE||Note Added: 0005959|
|2018-08-09 21:05||WA9PIE||Status||resolved => closed|