[mythtv-users] mythbackend 0.25 on gentoo: crashes with mythfilldatabase?

Michael T. Dean mtdean at thirdcontact.com
Mon Dec 3 14:57:15 UTC 2012


On 11/22/2012 08:10 AM, Stefan G. Weichinger wrote:
> I run media-tv/mythtv-0.25.2_p20120825 on a 64 bit gentoo host.
> It's a backend only, one PCIe DVB-S card with 2 tuners ...
>
> Every night I run some xmltv-job to pull in program data with
> tv_grab_eu_epgdata.
>
> The user mythtv pulls in that stuff, an hour later root runs
> mythfilldatabase to push up that data into the mythtv-mysql-DB.
>
> It seems that this crashes mythbackend ... so I now run those commands
> manually to see what happens.
>
> I get right now (example, I don't listen to "Schlager" ;-) ):
>
> 2012-11-22 14:07:05.668667 E  DB Error (Marking first showings):
> Query was:
> UPDATE program set first = 1 WHERE starttime = ?   AND title = ?   AND
> subtitle = ?   AND LEFT(description, 1024) = ?
> Bindings were:
> :PARTDESC="20.00 / 21.00 / 22.00 / 23.00 Nachrichten, Wetter",
> :STARTTIME=2012-11-12T19:05:00, :SUBTITLE="",
> :TITLE="Bayern plus - Die schönsten Schlager und Melodien"
> Driver error was [2/1213]:
> QMYSQL3: Unable to execute statement
> Database error was:
> Deadlock found when trying to get lock; try restarting transaction
>
>
> -
>
> Might such an issue crash the backend at night?
>
> that "WHERE starttime = ?   AND title = ?" ... I understand that this
> can't work. Maybe a broken xml-file coming from xmltv?

That's actually fine--it's just the way we log things.

> I'd be happy to get some hints how to proceed on this.
>

The problem is almost definitely that you're running MySQL with some 
unsupported (meaning untested) configuration and it's causing the problems.

My best guess is that you're using InnoDB storage engine (which isn't 
supported) and that, coupled with the specific data you're getting from 
mythfilldatabase (and, potentially, some other factors), results in the 
deadlock.

If you use MythTV 0.26 to create a brand new database, it should create 
tables using the proper MySQL storage engine, regardless of your MySQL 
configuration.  Doing this will cause you to lose all of your 
configuration and previous history.  You could use a partial restore to 
restore your old recording information (the only non-recreatable 
information), but note that you must use a same-versioned database 
backup (i.e. you'll need to upgrade to 0.26, first, then back up your 
database, then create the new database and do a partial restore):  
http://www.mythtv.org/wiki/Database_Backup_and_Restore#Partial_restore_of_a_backup

Mike


More information about the mythtv-users mailing list