[mythtv] Backend crashes... usually after completing commercial flagging

Jim Westfall jwestfall at surrealistic.net
Fri Mar 23 16:19:32 UTC 2007


James Dio <psunit at gmail.com> wrote [03.23.07]:
> 
> Thanks Doug and Rob -- I've followed the guide with one deviation -- I
> disabled distcc and ccache... otherwise I did exactly what the guide
> stated.
> 
> I'm going to do as Doug suggested and then recompile qt, I believe
> someone told me qt also needed debugging stuff enabled.
> 
> Here is the latest (and different) backtrace that I have:
> 
> http://www.psunit.com/gdbnewest.txt
> 
> This one is different than the others... either because debugging is
> enabled properly or I have multiple problems :-\
> 

There is enough info in http://www.psunit.com/newgdb.txt.

Thread 2 (Thread -1250911344 (LWP 23256)):
#0  0x080df09d in HouseKeeper::wantToRun (this=0x81d80a0, 
dbTag=@0xb5709378, period=1, minhour=0, maxhour=23) at housekeeper.cpp:92
	minute = 27
	hour = 23
	runOK = false
	oneday = 86400
	longEnough = 43200
	now = {d = {jd = 2454181}, t = {ds = 84470812}}
	lastrun = {d = {jd = 2454163}, t = {ds = 80361000}}
	result = {<QSqlQuery> = {_vptr.QSqlQuery = 0xb6fe1e08, d = 
0x8d32160}, m_db = 0x81ebba8, m_isConnected = true, m_returnConnection = true}

The code at housekeeper.cpp:92

                    if ((hour == maxhour && minute > 30) ||
                        ((random()%((maxhour-hour)*12+(60-minute)/5 - 6) == 0)))

Its resulting in (random()%0) which is causing the SIGFPE.

Try changing it to

   if ((hour == maxhour && minute > 30) ||
      ((random()%(((maxhour-hour)*12+(60-minute)/5 - 6) + 1) == 0)))

jim


More information about the mythtv-dev mailing list