[mythtv-users] mythbackend idle timeout does not start

Leighton Brough brough at baremetalsoft.com
Tue Jul 31 11:34:22 UTC 2007


Gary Dawes wrote:
>
>
> On 30/07/07, *Gary Dawes* <gary.dawes at gmail.com 
> <mailto:gary.dawes at gmail.com>> wrote:
>
>     On 30/07/07, John Veness <John.Veness.myth at pelago.org.uk
>     <mailto:John.Veness.myth at pelago.org.uk>> wrote:
>     > Gary Dawes wrote:
>     > > Hi
>     > >
>     > > I managed to get the acpi shutdown & wakeup working without
>     too  much
>     > > difficulty, however I have a problem with the backend not
>     starting the
>     > > Idle countdown. Mythwelcome, reports that the backend is idle, but
>     > > nothing happens. If I restart the backend, it immeadiately
>     starts the
>     > > countdown, and then everything works as advertised.
>     > >
>     > > I have scoured the lists, checked my program schedules, ran
>     repairs on
>     > > the DB in case there was a problem there, and I'm now at a
>     dead end. I'm
>     > > running 0.20.20060828-3 (from the status page)  on knoppmyth
>     R5E50 if it
>     > > helps.
>     > >
>     > > Regards
>     > >
>     > > Gaz
>     >
>     > Are you shutting down fully (i.e. killing all processes and later
>     > starting up Linux from nothing), or suspending to ram or disk?
>     If you
>     > are suspending to ram/disk then tou may have hit the problem I
>     found,
>     > which is that once mythbackend has gone through the countdown,
>     it will
>     > never start the countdown again. I found you needed to kill
>     mythbackend
>     > as part of your suspend script (or resume script I suppose)
>     before it
>     > would work.
>     >
>     > If there's a more elegant way of prodding mythbackend so that it
>     will
>     > allow itself to start the countdown again, then I'd be pleased
>     to hear it.
>     >
>     > John
>     >
>     > --
>     > John Veness, MythTV user
>     >
>
>     shutting the box down,but using a acpi command. it would be an
>     interesting experiment to try putting a command to stop the backend on
>     shutdown. I'll post back results.
>
>     Gary
>
>
> Just checked and my shutdown script does stop the backend as well as 
> mysql before issuing the acpi shutdown command.
>
> Back to the drawing board again. Oddly though, it has started working 
> this morning though. I think it may have something to do with the 
> windows mythtvplayer, as I often use that to watch on the laptop, but 
> I've been watching most stuff on the myth box itself lately. I have no 
> other frontends either btw.
>
> gaz

There is another alternative here for getting ACPI sleep/wakeup to play 
nicely with mythtv, instead of making your suspend script kill the 
backend. I made some relatively trivial hacks to the backend source so 
it can handle a system shutdown operation which doesn't cause the 
backend process to shutdown as a side-effect. Without this, the backend 
can't keep running after a resume as you would expect, without being 
stopped and restarted. The net result of this change is that you don't 
need to stop and restart the backend. My hack (svn diff) looks like this:

Index: programs/mythbackend/scheduler.cpp
===================================================================
--- programs/mythbackend/scheduler.cpp  (revision 12638)
+++ programs/mythbackend/scheduler.cpp  (working copy)
@@ -1444,6 +1444,7 @@
                                                     blockShutdown))
                             {
                                 ShutdownServer(prerollseconds);
+                                idleSince = QDateTime();
                             }

                         }
@@ -1596,6 +1597,8 @@
         // and now shutdown myself
         myth_system(halt_cmd.ascii());
     }
+
+    m_isShuttingDown = false;
 }

 void *Scheduler::SchedulerThread(void *param)

Basically this is a two line change which makes sure that 1) the idle 
time is correct after resume, and 2) the backend doesn't get permanently 
hung up thinking it's in the process of shutting down.

I'm using an oldish version of the 'fixes' 0.20 branch (details in the 
cut'n'paste above), but If you're happy coding in C, then this should 
point you in the right direction. In a perfect world I'd submit a patch, 
but this would require some more though as the hack above may not 
necessarily work for everyone, so it might need yet another config 
option to be added.

This has been working well for me for a long time now and helps quite a 
bit in making my combined front/back end suspend and resume quickly (< 
10sec) which is a very good thing for the WAF.

As far as I can see there should be no need to shutdown and restart mysql.

Leighton


More information about the mythtv-users mailing list