mythweb pressing "Don't record" on "Upcoming recordings" leads to mysql driver error

Bug #972483 reported by Stefan Lands
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
mythweb (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

$ lsb_release -rd
Description: Ubuntu precise (development branch)
Release: 12.04

$ apt-cache policy mythtv-backend mythweb mysql-server
mythtv-backend:
  Installed: 2:0.25.0~master.20120329.c85fc55-0ubuntu1
  Candidate: 2:0.25.0~master.20120329.c85fc55-0ubuntu1
  Version table:
 *** 2:0.25.0~master.20120329.c85fc55-0ubuntu1 0
        500 http://de.archive.ubuntu.com/ubuntu/ precise/multiverse amd64 Packages
        100 /var/lib/dpkg/status
mythweb:
  Installed: 2:0.25.0~master.20120329.c85fc55-0ubuntu1
  Candidate: 2:0.25.0~master.20120329.c85fc55-0ubuntu1
  Version table:
 *** 2:0.25.0~master.20120329.c85fc55-0ubuntu1 0
        500 http://de.archive.ubuntu.com/ubuntu/ precise/multiverse amd64 Packages
        100 /var/lib/dpkg/status
mysql-server:
  Installed: 5.5.22-0ubuntu1
  Candidate: 5.5.22-0ubuntu1
  Version table:
 *** 5.5.22-0ubuntu1 0
        500 http://de.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status

When pressing the "Don't record" button in "Upcoming recordings" an SQL-Error is reported in mythbackend.log:

Apr 3 15:48:28 E350 mythbackend[1774]: I Scheduler scheduler.cpp:2010 (HandleReschedule) Reschedule requested for id 130.
Apr 3 15:48:28 E350 mythbackend[1774]: E Scheduler mythdbcon.cpp:823 (prepare) Error preparing query: REPLACE INTO recordmatch (recordid, chanid, starttime, manualid) SELECT record.recordid, program.chanid, program.starttime, IF(search = 5, record.recordid, 0) FROM (record, program INNER JOIN channel ON channel.chanid = program.chanid) Folge 246 WHERE record.recordid = :NR0RECID AND program.manualid = 0 AND ( Bernheimer und Shirley...<skipping whole tv-guide description here> ) AND channel.visib
Apr 3 15:48:28 E350 mythbackend[1774]: E Scheduler mythdbcon.cpp:825 (prepare) Driver error was [2/1064]:#012QMYSQL3: Unable to prepare statement#012Database error was:#012You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Folge 246 WHERE record.recordid = ? AND program.manualid = 0 AND ( Bernheimer un' at line 1
Apr 3 15:48:28 E350 mythbackend[1774]: E Scheduler mythdb.cpp:192 (DBError) DB Error (UpdateMatches3):#012Query was:#012REPLACE INTO recordmatch (recordid, chanid, starttime, manualid) SELECT record.recordid, program.chanid, program.starttime, IF(search = 5, record.recordid, 0) FROM (record, program INNER JOIN channel ON channel.chanid = program.chanid) Folge 246 WHERE record.recordid = :NR0RECID AND program.manualid = 0 AND ( Bernheimer und Shirley...<skipping whole tv-guide description here> ) AN

A different recording:

Apr 3 15:50:12 E350 mythbackend[1774]: I Scheduler scheduler.cpp:2010 (HandleReschedule) Reschedule requested for id 131.
Apr 3 15:50:12 E350 mythbackend[1774]: E Scheduler mythdbcon.cpp:823 (prepare) Error preparing query: REPLACE INTO recordmatch (recordid, chanid, starttime, manualid) SELECT record.recordid, program.chanid, program.starttime, IF(search = 5, record.recordid, 0) FROM (record, program INNER JOIN channel ON channel.chanid = program.chanid) WHERE record.recordid = :NR0RECID AND program.manualid = 0 AND ( (1) Das Showquiz zum 60. Geburtstag - Moderation: Frank Plasberg ) AND channel.visible = 1 AND (((record.filter & 1) = 0) OR (program.previouslyshown = 0)) AND (((record.filter & 2) = 0) OR (program.generic = 0)) AND (((record.filter & 4) = 0) OR (program.first > 0)) AND (((record.filter & 8) = 0) OR (HOUR(program.starttime) >= 19 AND HOUR(program.starttime) < 23)) AND (((record.filter & 16) = 0) OR (channel.commmethod = -2)) AND (((record.filter & 32) = 0) OR (program.hdtv > 0)) AND (((record.filter & 64) = 0) OR ((record.programid <> '' AND program.programid = record.programid) OR (record.programid = '' AND program.subtitle = record.subtitle AND program.description = record.description))) AND (((record.filter & 128) = 0) OR ((record.seriesid <> '' AND program.seriesid = record.seriesid))) AND ((record.type = 4 OR record.type = 6 OR record.type = 9 OR record.type = 10) OR ((record.station = channel.callsign) AND ((record.type = 3) OR ((TIME_TO_SEC(record.starttime) = TIME_TO_SEC(program.starttime)) AND ((record.type = 2) OR ((DAYOFWEEK(record.startdate) = DAYOFWEEK(program.starttime) AND ((record.type = 5) OR ((TO_DAYS(record.startdate) = TO_DAYS(program.starttime)) AND (record.type <> 0) ) ) ) ) ) ) ) ))
Apr 3 15:50:12 E350 mythbackend[1774]: E Scheduler mythdbcon.cpp:825 (prepare) Driver error was [2/1064]:#012QMYSQL3: Unable to prepare statement#012Database error was:#012You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Das Showquiz zum 60. Geburtstag - Moderation: Frank Plasberg ) AND channel.visib' at line 1
Apr 3 15:50:12 E350 mythbackend[1774]: E Scheduler mythdb.cpp:192 (DBError) DB Error (UpdateMatches3):#012Query was:#012REPLACE INTO recordmatch (recordid, chanid, starttime, manualid) SELECT record.recordid, program.chanid, program.starttime, IF(search = 5, record.recordid, 0) FROM (record, program INNER JOIN channel ON channel.chanid = program.chanid) WHERE record.recordid = :NR0RECID AND program.manualid = 0 AND ( (1) Das Showquiz zum 60. Geburtstag - Moderation: Frank Plasberg ) AND channel.visible = 1 AND (((record.filter & 1) = 0) OR (program.previouslyshown = 0)) AND (((record.filter & 2) = 0) OR (program.generic = 0)) AND (((record.filter & 4) = 0) OR (program.first > 0)) AND (((record.filter & 8) = 0) OR (HOUR(program.starttime) >= 19 AND HOUR(program.starttime) < 23)) AND (((record.filter & 16) = 0) OR (channel.commmethod = -2)) AND (((record.filter & 32) = 0) OR (program.hdtv > 0)) AND (((record.filter & 64) = 0) OR ((record.programid <> '' AND program.programid = record.programid) OR (record.programid = '' AND program.subtitle = record.subtitle AND program.description = record.description))) AND (((record.filter & 128) = 0) OR ((record.seriesid <> '' AND program.seriesid = record.seriesid))) AND ((record.type = 4 OR record.type = 6 OR record.type = 9 OR record.type = 10) OR ((record.station = channel.callsign) AND ((record.type = 3) OR ((TIME_TO_SEC(record.starttime) = TIME_TO_SEC(program.starttime)) AND ((record.type = 2) OR ((DAYOFWEEK(record.startdate) = DAYOFWEEK(program.starttime) AND ((record.type = 5) OR ((TO_DAYS(record.startdate) = TO_DAYS(program.starttime)) AND (record.type <> 0) ) ) ) ) ) ) ) )) #012Bindings were:#012:NR0RECID="131"#012Driver error was [2/1064]:#012QMYSQL: Unable to execute query#012Database error was:#012You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':NR0RECID AND prog

The sql-commands look incomplete. I got his from mythbackend.log as mentioned above. I don't really know whether this is already the error or the whole command was shortened by mythbackend for the log-entry.
I had to remove the according lines in the mythconverg.record table manually, because this error is repeatedly reported in the logfile every minute or so.
Disabling the scheduled recording from mythfrontend is working as expected. No errors here.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: mythweb 2:0.25.0~master.20120329.c85fc55-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-21.34-generic 3.2.13
Uname: Linux 3.2.0-21-generic x86_64
NonfreeKernelModules: fglrx
.var.log.mythtv.mythavtest.log:

.var.log.mythtv.mythccextractor.log:

.var.log.mythtv.mythcommflag.log:

.var.log.mythtv.mythfilldatabase.log:

.var.log.mythtv.mythjobqueue.log:

.var.log.mythtv.mythlcdserver.log:

.var.log.mythtv.mythmediaserver.log:

.var.log.mythtv.mythmessage.log:

.var.log.mythtv.mythshutdown.log:

.var.log.mythtv.mythtranscode.log:

.var.log.mythtv.mythutil.log:

.var.log.mythtv.mythwelcome.log:

ApportVersion: 2.0-0ubuntu2
Architecture: amd64
Date: Tue Apr 3 15:52:43 2012
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120224)
Installed_mythtv_dbg: 0.0
PackageArchitecture: all
ProcEnviron:
 TERM=xterm
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: mythtv
UpgradeStatus: No upgrade log present (probably fresh install)
modified.conffile..etc.default.mythweb:
 [cfg]
 enable =
 only =
 username =
 password =
mtime.conffile..etc.default.mythweb: 2012-04-02T11:55:48.634605

Revision history for this message
Stefan Lands (wireded) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mythweb (Ubuntu):
status: New → Confirmed
Revision history for this message
David Osguthorpe (david-osguthorpe) wrote :

The issue appears to be in mythweb in the Schedule.php script in modules/tv/classes
According to the way the frontend sets up dontrecord entries the search flag needs to be changed when disabling eg a recording entry from a power search rule - fixing Schedule.php to do this appears to restore the mythweb behaviour I had before updating from 0.24 to 0.25

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.