Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#13420 closed Patch - Bug Fix (fixed)

DB Error in mythtv-setup and QString initialization

Reported by: Klaas de Waal Owned by: David Hampton
Priority: minor Milestone: 31.0
Component: MythTV - Channel Scanner Version: Master Head
Severity: medium Keywords: DVB channelscan QString initialization
Cc: Stuart Auchterlonie, David Hampton Ticket locked: no

Description

A channelscan with mythtv-setup gives the following error messages, one for each channel:

DB Error (MSqlQuery):
Query was:
INSERT INTO channelscan_channel  (  scanid,             transportid,                                mplex_id,           source_id,          channel_id,             callsign,           service_name,       chan_num,               service_id,         atsc_major_channel, atsc_minor_channel,     use_on_air_guide,   hidden,             hidden_in_guide,        freqid,             icon,               tvformat,               xmltvid,            pat_tsid,           vct_tsid,               vct_chan_tsid,      sdt_tsid,           orig_netid,             netid,              si_standard,        in_channels_conf,       in_pat,             in_pmt,             in_vct,                 in_nit,             in_sdt,             is_encrypted,           is_data_service,    is_audio_service,   is_opencable,           could_be_opencable, decryption_status,  default_authority    )  VALUES  ( ?,            ?,                               ?,          ?,         ?,            ?,          ?,      ?,              ?,        ?,?,    ?,  ?,            ?,       ?,            ?,              ?,              ?,           ?,          ?,              ?,     ?,          ?,            ?,             ?,       ?,      ?,            ?,            ?,                ?,            ?,            ?,          ?,   ?,  ?,          ?,?, ?    );
Bindings were:
:ATSC_MAJOR_CHANNEL=0, :ATSC_MINOR_CHANNEL=0, :CALLSIGN="Penthouse HD1",
:CHANNEL_ID=0, :CHAN_NUM="792", :COULD_BE_OPENCABLE=false, :DECRYPTION_STATUS=2,
:DEFAULT_AUTHORITY=NULL, :FREQID="", :HIDDEN=false, :HIDDEN_IN_GUIDE=false,
:ICON=NULL, :IN_CHANNELS_CONF=false, :IN_NIT=true, :IN_PAT=true, :IN_PMT=true,
:IN_SDT=true, :IN_VCT=false, :IS_AUDIO_SERVICE=false, :IS_DATA_SERVICE=false,
:IS_ENCRYPTED=true, :IS_OPEBCABLE=false, :MPLEX_ID=43, :NETID=5555,
:ORIG_NETID=1536, :PAT
2019-03-03 21:20:13.973048 E  Original query failed, but resend with empty strings in place of NULL strings worked.

This message is caused by database access with QString variables which are NULL. There is an error catching mechanism present that replaces each NULL strings with an empty string. The last line in the message above states that this is done and that then the database access succeeded.

This problem is caused by the recent change to move initialization to the header files. This in itself should and does not make any difference, however, the initializations for the QString members of ChannelInsertInfo in channelinfo.cpp/.h have been lost in this process.

This can be found in the following commit:
https://github.com/MythTV/mythtv/commit/4d5526816f5c5d5ddbf52f960b597afbf5b31fea#diff-0500d09455f90efc1704bfbb28b33aab

The obvious solution is to restore the initialization of ChannelInsertinfo.

A patch for this is attached.

Attachments (1)

20190303-channelinsertinfo-init.patch (1.5 KB ) - added by Klaas de Waal 7 years ago.
Restore initialization of QString members of ChannelInsertInfo

Download all attachments as: .zip

Change History (8)

by Klaas de Waal, 7 years ago

Restore initialization of QString members of ChannelInsertInfo

comment:1 by Klaas de Waal, 7 years ago

Owner: set to David Hampton
Status: newassigned

comment:2 by David Hampton <mythtv@…>, 7 years ago

Resolution: fixed
Status: assignedclosed

In fcc1aa522/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:3 by jpilk, 7 years ago

Line 355 in channelinfo.cpp looks like a preexisting typo ?

query.bindValue(":IS_OPEBCABLE", m_is_opencable);

comment:4 by David Hampton, 7 years ago

Yes, but a consistent typo (the same in two places) so it worked properly. :-)

comment:5 by David Hampton <mythtv@…>, 7 years ago

In 19a51cb405/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:6 by Stuart Auchterlonie, 7 years ago

Milestone: needs_triage31.0

comment:7 by Klaas de Waal <kdewaal@…>, 7 years ago

In 28e98a80ed/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available
Note: See TracTickets for help on using tickets.