[mythtv-users] mythweb issues running with .25

Duncan Brown mythtv at duncb.co.uk
Tue Apr 10 17:59:54 UTC 2012


On 10/04/2012 18:35, David Engel wrote:
> On Tue, Apr 10, 2012 at 12:20:56PM -0400, Michael T. Dean wrote:
>> On 04/10/2012 11:38 AM, Michael Drons wrote:
>>> Appears to be an error in mythweb sql statements.
>>>
>>> 2012-04-10 11:29:00.834061 E [1771/1800] 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) Manchester City vs. West
>>> Bromwich WHERE record.recordid = :NR0RECID AND program.manualid =
>>> 0 AND ( From Etihad Stadium. ) 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)        )       )      )     )    )   )  )
>>> ))
>>> 2012-04-10 11:29:00.834073 E [1771/1800] Scheduler
>>> mythdbcon.cpp:825 (prepare) - Driver error was [2/1064]:
>>> QMYSQL3: Unable to prepare statement
>>> Database error was:
>>> You have an error in your SQL syntax; check the manual that
>>> corresponds to your MySQL server version for the right syntax to
>>> use near 'Manchester City vs. West Bromwich WHERE record.recordid
>>> = ? AND program.manualid' at line 1
>>>
>>> 2012-04-10 11:29:00.834186 E [1771/1800] Scheduler mythdb.cpp:192
>>> (DBError) - DB Error (UpdateMatches3):
>>> Query was:
>>> 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) Manchester
>>> City vs. West Bromwich WHERE record.recordid = :NR0RECID AND
>>> program.manualid = 0 AND ( From Etihad Stadium. ) 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)        )       )      )     )    )   )  )
>>> ))
>>> Bindings were:
>>> :NR0RECID="421"
>>> Driver error was [2/1064]:
>>> QMYSQL: Unable to execute query
>>> Database error was:
>>> You have an error in your SQL syntax; check the manual that
>>> corresponds to your MySQL server version for the right syntax to
>>> use near 'Manchester City vs. West Brom
>>>
>>> myth src # mythbackend  --version
>>> Please attach all output as a file in bug reports.
>>> MythTV Version : v0.25
>>> MythTV Branch : fixes/0.25
>>> Network Protocol : 72
>>> Library API : 0.25.20120408-1
>>> QT Version : 4.6.3
>>> Options compiled in:
>>> linux profile use_hidesyms using_alsa using_oss using_backend
>>> using_bindings_perl using_bindings_python using_bindings_php
>>> using_firewire using_frontend using_hdhomerun using_hdpvr
>>> using_iptv using_ivtv using_joystick_menu using_libcec
>>> using_libcrypto using_libdns_sd using_libfftw3 using_libxml2
>>> using_libudf using_lirc using_mheg using_opengl_video
>>> using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_v4l1
>>> using_x11 using_xrandr using_xv using_bindings_perl
>>> using_bindings_python using_bindings_php using_mythtranscode
>>> using_opengl using_vdpau using_ffmpeg_threads using_live
>>> using_mheg using_libass using_libxml2 using_libudf
>>>
>>>
>>> I see the above error using commit
>>> 1d056f77dc29045008b52b82e90bc935ff1ab948 of mythweb
>> When doing what?
>>
>>> If I use commit efd3da660e2f1220372253a7c92f964ff1c5047a I dont
>>> have any issues.
>>>
>> I looks like you might have a broken custom recording rule?
> Specifically, it looks like a normal rule got converted to a custom
> search rule.  "Manchester City vs. West Bromwich" and "From Etihad
> Stadium." look like a normal subtitle and description.
>
> David
Seeing the same in the backend logs here

> (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) 
> Chinese Grand Prix WHERE record.recordid = :NR0RECID AND 
> program.manualid = 0 AND ( Live coverage of the second practice 
> session from Shanghai, China with 5Live commentary. ) 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 10 18:55:42 localhost mythbackend[13271]: 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 'Chinese Grand 
> Prix WHERE record.recordid = ? AND program.manualid = 0 AND ( Live' at 
> line 1
> Apr 10 18:55:42 localhost mythbackend[13271]: 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) Chinese Grand Prix 
> WHERE record.recordid = :NR0RECID AND program.manualid = 0 AND ( Live 
> coverage of the second practice session from Shanghai, China with 
> 5Live commentary. ) 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="1819"#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 r

This is from the one custom power search I have. Before the update, I 
set a bunch of overrides on various repeat shows picked up by it to 
'never record' on mythweb. After realising I'd made a mistake, I went 
back to  mythweb and activated one of those recordings, the above then 
appears in the logs.

I still does seem to work though, as the show then appears in my 
upcoming recordings.

I wasn't getting this on the rc, and have just updated to 25-fixes, so 
assume it's the same commit as mentioned  above causing this

Dunc


More information about the mythtv-users mailing list