[mythtv-users] mythconverg/program is marked as crashed

Michael T. Dean mtdean at thirdcontact.com
Mon Jan 25 19:07:28 UTC 2016


On 01/25/2016 01:07 PM, David L wrote:
>
> I have had mythtv installed on that backend for ~6 years and don't 
> recall ever specifying a temp directory for MySQL.  I assume it's 
> using whatever the default directory was configured when I originally 
> installed it.  In any case, it doesn't look like any of my partitions 
> are full.
>
> udev            2.0G  4.0K  2.0G   1% /dev
> tmpfs           404M  1.3M  402M   1% /run
> /dev/sda1        92G   80G  7.7G  92% /
> none            4.0K     0  4.0K   0% /sys/fs/cgroup
> none            5.0M     0  5.0M   0% /run/lock
> none            2.0G  246M  1.8G  13% /run/shm
> none            100M   24K  100M   1% /run/user
> /dev/sdb1       459G  413G   23G  95% /var/lib/mythtv
> /dev/sdc1       1.8T  1.6T  163G  91% /sdc1
> /dev/sda6       265G  229G   23G  91% /sda6
> /dev/sda5       1.9G  518M  1.2G  30% /var/log

It's also possible your file system is out of inodes.  You can check 
with df -i .

That said, it looks like your temp file is being stored in the same 
directory as your mythconverg database files.  The specific error:

> error    : Can't create new tempfile: './mythconverg/program.TMD'

could also indicate that there's already a program.TMD file in the 
directory owned by someone else (or even that the user running mysqld 
doesn't have permission to create new files in the mythconverg 
directory).  If that's there, delete it, then re-run mysqlcheck.

> The repair program runs without any obvious errors:
>
> Repaired/Optimized: `mythconverg`.`archiveitems`
> Analyzed: `mythconverg`.`archiveitems`
> <snip>
> Repaired/Optimized: `mythconverg`.`program`
> Analyzed: `mythconverg`.`program`
> <snip>
> Repaired/Optimized: `mythconverg`.`websites`
> Analyzed: `mythconverg`.`websites`
>
> But it doesn't seem to fix anything.  Per your link to the temp dir 
> configuration, I tried setting the TMPDIR environment variable to a 
> partition with lots of free space:
> sudo mkdir /sdc1/tmp
> sudo chmod a+rwX /sdc1/tmp/
> export TMPDIR=/sdc1/tmp/
> df -h $TMPDIR
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/sdc1       1.8T  1.6T  163G  91% /sdc1

and you restarted mysqld from an environment that contained said 
TMPDIR?  Otherwise, it wouldn't affect anything (it's the MySQL server's 
temp, not the mysqlcheck script's temp that's the problem).

> I get the same error when running mysqlcheck and the optimizer still 
> runs with no errors and doesn't fix the problem.

It's possible that the table structure (i.e. the binary data file) is 
corrupted beyond mysqlcheck's ability to automatically repair it.  When 
mysqlcheck automatically repairs a table, most data will still be 
intact.  However, if the table structure is too far corrupt, mysqlcheck 
will refuse to repair the table and force an administrator to get 
involved--and say to go ahead and do the repairs, even though some or 
all data is likely to be lost. Whenever I've seen tables in this state, 
repairing usually led to loss of all data.  On the bright side, program 
data is easy to re-create--you just re-run mythfilldatabase or let EIT 
run for a while.

See:
http://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

and note that you may need to use the --use-frm option.  Try to first 
run it with --repair and without --use-frm , and once you get that to 
complete successfully without errors (like the "Can't create new 
tempfile"), then--and only then, as a last resort--if you still show 
errors in MythTV logs about crashed program file, you can try again with 
--use-frm .

Mike


More information about the mythtv-users mailing list