New mail notification in GMailReader plugin grashes GUI

Issue #282 resolved
prl created an issue

The function causing the crash is trying to work out whether any new mail has arrived so that it can post a notification on the screen.

The function reads the old message count from the file that's complained about in the log ('/usr/lib/enigma2/python/Plugins/Extensions/IniGmailReader/gmailcount), fetches the current message count from GMail, compares the two, and announces that you have mail. It then writes the new message count back into the file.

The crash occurs because when the file can't be opened, an exception is raised that isn't handled by anyone, until it hits the GUI's general exception handler, which prints the error traceback from the exception then pulls the plug on the GUI.

Examining the code also showed that as well as this crash, the same function is supposed to return a value, but doesn't.

I have a fix for this ready to submit to the repository.

Unfortunately the user who posted this problem posted inline text of the crash log, not an attachment, but this is the traceback part of the log:

[AutoTimer] Skipping timer because it has not changed
     [EPGC] lookup events with 'The Good Wife' in title (ignore case)
    [AutoTimer] Skipping timer because it has not changed.
    [EPGC] lookup events with 'The Time Of Our Lives' in title (ignore case)
    [AutoTimer] Skipping timer because it has not changed.
    [EPGC] lookup events with 'The Tunnel' in title (ignore case)
    AutoTimer] Skipping timer because it has not changed.
    [EPGC] lookup events with 'Winners & Losers' in title (ignore case) [AutoTimer] Skipping timer because it has not changed. job Components.Task.Job name=AutoTimer #tasks=14 completed with [] in None poll: unhandled POLLERR/HUP/NVAL for fd 39(16)
    [eDVBLocalTimerHandler] no transponder tuned... or no TDT/TOT avail .. try to use RTC :)
    [eDVBLocalTimerHandler] RTC time is 09:33:52
    [eDVBLocalTimerHandler] Receiver time is 09:33:52
    [eDVBLocalTimerHandler] RTC to Receiver time difference is 0 seconds
    [eDVBLocalTimerHandler] no change needed
    Traceback (most recent call last):
      File "/usr/lib/enigma2/python/Plugins/Extensions/IniGmailReader/plugin.py", line 423, in Checkcounts
      File "/usr/lib/enigma2/python/Plugins/Extensions/IniGmailReader/plugin.py", line 452, in comparecounts
      IOError: [Errno 2] No such file or directory: '/usr/lib/enigma2/python/Plugins/Extensions/IniGmailReader/gmailcount' (PyObject_CallObject(<bound method DocompareTimes.Checkcounts of <class 'Plugins.Extensions.IniGmailReader.plugin.DocompareTimes'>>,()) failed)

Reproduction steps

Set up a the GMailReader to connect to a GMail account. In GMail settings, set New email check /minutes to be not disabled. The GUI will crash each time the mail is checked.

Comments (1)

  1. Peter Urbanec
    • removed issue_resolution
    • removed issue_percent
    • removed issue_close
    • removed issue_status

    The issue was updated with the following change(s):

    • The status has been updated, from New to Closed.
    • This issue has been closed
    • This issue's progression has been updated to 100 percent completed.
    • The resolution has been updated, from Not determined to Fixed.
  2. Log in to comment