[FIXED] PowerBroadcastNotifier timeout

Einen Fehler gefunden? Gleich hier melden!
Post Reply
Prinz
Plugin Developer
Posts: 194
Joined: Mon Apr 07, 2008 4:58 am

[FIXED] PowerBroadcastNotifier timeout

Post by Prinz » Mon Nov 10, 2008 7:51 am

Hallo,

ich nutze aktuell die Version 0.3.6.1484.

Ich habe schon seit mehreren Versionen folgende Timeout-Meldung im Log:

Code: Select all

22:25:21: MessageReceiver: PowerBroadcastNotifier.OnPowerBroadcast(hwnd=65902, msg=536L, wparam=0L, lparam=1)
22:25:26: MessageReceiver: timeout TriggerEventWait
  File "threading.pyc", line 462, in __bootstrap
  File "threading.pyc", line 486, in __bootstrap_inner
  File "threading.pyc", line 446, in run
  File "C:\Programme\System\EventGhost\eg\Utils.py", line 136, in LogItWithReturnWrapper
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 168, in __MainLoop
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 191, in __DoOneEvent
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 39, in PumpWaitingMessages
  File "C:\Programme\System\EventGhost\eg\Singletons\MessageReceiver.py", line 96, in MyWndProc
  File "C:\Programme\System\EventGhost\eg\Utils.py", line 124, in LogItWrapper
  File "C:\Programme\System\EventGhost\plugins\System\PowerBroadcastNotifier.py", line 68, in OnPowerBroadcast
  File "C:\Programme\System\EventGhost\eg\Singletons\EventThread.py", line 99, in TriggerEventWait
22:25:26: MessageReceiver: PowerBroadcastNotifier.OnPowerBroadcast(hwnd=65902, msg=536L, wparam=4L, lparam=0)
22:25:31: MessageReceiver: timeout TriggerEventWait
  File "threading.pyc", line 462, in __bootstrap
  File "threading.pyc", line 486, in __bootstrap_inner
  File "threading.pyc", line 446, in run
  File "C:\Programme\System\EventGhost\eg\Utils.py", line 136, in LogItWithReturnWrapper
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 168, in __MainLoop
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 191, in __DoOneEvent
  File "C:\Programme\System\EventGhost\eg\Classes\ThreadWorker.py", line 39, in PumpWaitingMessages
  File "C:\Programme\System\EventGhost\eg\Singletons\MessageReceiver.py", line 96, in MyWndProc
  File "C:\Programme\System\EventGhost\eg\Utils.py", line 124, in LogItWrapper
  File "C:\Programme\System\EventGhost\plugins\System\PowerBroadcastNotifier.py", line 68, in OnPowerBroadcast
  File "C:\Programme\System\EventGhost\eg\Singletons\EventThread.py", line 99, in TriggerEventWait

Diese erscheint regelmäßig wenn das System in den Standby geht oder aus dem Standby aufwacht, wobei beim Aufwachen der wparam auf 18L gesetzt ist. Seltsam ist, dass der OnPowerBroadcast-Event kurz hintereinander zweimal aufgerufen wird.

Ich habe mal den Timeout der TriggerEventWait-Methode durch einen zusätzlichen Parameter auf 30.0s gesetzt. Der Fehler tritt dann nicht mehr auf.

Hier dann der Ausschnitt aus dem Ereignisfenster, wenn es ohne Probleme läuft:

Code: Select all

08:17:38   System.QuerySuspend
08:17:38   System.Suspend
08:19:15   System.UnIdle
08:19:15   System.ResumeAutomatic
08:19:15   System.Resume
08:20:15   System.Idle
08:24:15   System.UnIdle
08:25:39   System.Idle
Obgleich in meinem Setup die Events "System.QuerySuspend" und "System.Resume" nicht genutzt werden, kommt es zum Timeout. 5s sollten bei meinem System doch eigentlich reichen oder?

Gruß
Prinz
Mein HTPC:
Mainboard: Gigabyte GA-G33M-DS2R
CPU: Intel E5200
OS: WinXP SP3
Graphic card: NVIDIA GeForce 210 512MB
TV-Cards: 2 * Digital Everywhere FloppyDTV-C, Terratec Cinergy 1200 DVB-C
HTPC software: DVB Viewer / EventGhost

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: PowerBroadcastNotifier timeout

Post by Bitmonster » Mon Nov 10, 2008 8:10 am

Ja, eigentlich sollten 5s immer reichen, aber leider weiß man ja nie, was Windows noch so tun will nach/beim Standby. Könnte aber auch mit einem bockigen Plugin zusammenhängen. Probiere doch mal aus, ob das auch mit einer leeren Konfiguration passiert. Und wenn es da dann geht, poste mal deine XML, damit ich sehen kann ob ich das hier reproduziert bekomme.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Prinz
Plugin Developer
Posts: 194
Joined: Mon Apr 07, 2008 4:58 am

Re: PowerBroadcastNotifier timeout

Post by Prinz » Tue Nov 11, 2008 9:51 am

Hallo Bitmonster,

habe jetzt wohl die Ursache gefunden. Es lag nicht an einem zu kurzen Timeout.

Vielmehr trat der Fehler nicht mehr auf, weil ich - aus Debug-Gründen - alle Events geloggt hatte!

Ursache dürften die Zeilen 128-131 in der EventGhostEvent.py sein:

Code: Select all

        if config.onlyLogAssigned and len(activeHandlers) == 0:
            return
        else:
            LogEvent(self)
Wenn config.onlyLogAssigned aktiv ist und kein EventHandler für dieses Ereignis existiert, wird die Methode "Execute" beendet ohne die Methode "self.SetStarted()" auszuführen. Dadurch wird angenommen, dass die Bearbeitung des Events immer noch läuft, obgleich nie einer wirklich gestartet wurde, und es kommt somit zu dem Timeout.

Abhilfe müsste "self.SetStarted()" vor dem return bringen. Ob dieser Fix in das ganze Konzept passt, bin ich mir aber nicht sicher.

Gruß
Prinz
Mein HTPC:
Mainboard: Gigabyte GA-G33M-DS2R
CPU: Intel E5200
OS: WinXP SP3
Graphic card: NVIDIA GeForce 210 512MB
TV-Cards: 2 * Digital Everywhere FloppyDTV-C, Terratec Cinergy 1200 DVB-C
HTPC software: DVB Viewer / EventGhost

User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Re: PowerBroadcastNotifier timeout

Post by Bitmonster » Tue Nov 11, 2008 10:53 am

Gute Analyse!
Ich denke das wird passen mit dem zusätzlichen self.SetStarted().
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

Post Reply