Bug:
VarAC Cluster breaks after receiving <LHR> (Last Heard Peaking request) with multiband peeking ON.
Note: I did NOT test LHR with multiband peeking off, and it may also be broken.
Scope:
Spotted in VarAC V11.2.0
Symptoms:
EMAIL GATE turns orange (it is supposed to remain blue) in the non-sender nodes.
Datastream messages window - discontinuity, some messages disappear or are not displayed after <LHR>.
A Vmail was LOST - after being received and confirmed with <SMR>, and parked! The Vmail disappeared from parked vmails and was lost.
The VarAC Cluster does NOT recover until closing ALL instances of VarAC and restarting them!
Analysis:
The log indicates SQLite database errors:
02/06/2025 22:12:04 - LHR tag identified (Last Heard Request)
02/06/2025 22:12:04 - Error: processing Request last heard callsign peeking request
02/06/2025 22:12:04 - Value was either too large or too small for an Int32.
at System.Convert.ToInt32(Int64 value)
at System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Convert.ToInt32(Object value)
at VarAC.VarAC.<connect_varahf_modem>b__126_2()
02/06/2025 22:12:11 - Error: updating instance keepalive in SQLite:database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.update_instance_keepalive(Int32 instance_id)
02/06/2025 22:12:11 - Error: updating instance keepalive in SQLite:database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.update_instance_keepalive(Int32 instance_id)
02/06/2025 22:12:15 - Error: Writing to SQLite datastream table :database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.write_datastream_log_to_db(String qso_guid, Int32 datastream_entry_type_id, String callsign, String entry, DateTime creation_time, Int32 chat_id, Int32 reply_on_chat_id, String file_path)
02/06/2025 22:12:27 - Error: Writing to cqframe table:database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.write_last_heard_to_db(DateTime cqframe_time, Int32 cqframe_type_id, Int64 frequency, String bandwidth, String from_callsign, Int32 snr, String slot, String data, String locator, Boolean is_emcomm, Boolean is_email_gateway)
02/06/2025 22:12:28 - PSKReporter: Logged successfully (4Z1AC)
02/06/2025 22:12:28 - PSKReporter: Sending accumulated records
02/06/2025 22:12:28 - Error: Writing to SQLite qso_snr_report table :database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.write_snr_to_db(String qso_guid, Int32 snr_direction, Int32 snr, DateTime creation_time)
02/06/2025 22:12:29 - Error: Writing to SQLite datastream table :database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.write_datastream_log_to_db(String qso_guid, Int32 datastream_entry_type_id, String callsign, String entry, DateTime creation_time, Int32 chat_id, Int32 reply_on_chat_id, String file_path)
02/06/2025 22:12:32 - Disable PTT status set to false
02/06/2025 22:12:32 - Setting disable ptt status to false
02/06/2025 22:13:00 - Closing Rig comport
02/06/2025 22:13:00 - Closing GPS comport
02/06/2025 22:13:00 - Closing Rig TCP port
02/06/2025 22:13:22 - Debug mode disabled
02/06/2025 22:13:22 - Instance number: 20
02/06/2025 22:13:23 - Error: updating instance email gateway status in SQLite:database is locked
database is locked
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
at VarAC.VarAC.update_instance_email_gateway_status(Int32 instance_id, Boolean email_gateway_active, Boolean email_gateway_sender_node)
02/06/2025 22:13:23 - Setting unattended links ON (load) ...
Recommendation:
Fix the bugs indicated in the VarAC log, and fully test that Last Heard Peeking works in all cases.
Add additional sanity checks and error handling. I suggest: A. Display errors in the GUI and offer to send feedback/bug report to the developers. B. Then recover the cluster and all instances and the SQLite database to a sane and safe state, or instruct the end user how to do this.
Screen Capture of the Bug, Showing the Broken VarAC Cluster:

Thanks. discovered another place where converswion to INT32 was made instead of INT64. will be fixed