Crash on zap in RecordTimer when timeshifted

Issue #592 resolved
prl created an issue

If RecordTimerEntry needs to zap live TV to a different channel (for a zap timer, zap+record timer or to avoid timer conflicts) and the user is currently timeshifted and has not saved timeshift, it crashes when self.InfoBarInstance.timeshiftActivated() is called, because InfoBar does not have a timeshiftActivated() method.

Replication steps

This bug can be triggered by zap zap+record or record timer. In the latter case, it is only triggered if a zap is required to avoid timer conflicts for the recording. The zap case is simplest.

Esnure that timeshift is enabled in MENU>Setup>TV>Timeshift settings>Automatically start timeshift after.

Create a "zap" timer a short time in the future on some channel.

Change to a different channel for live TV, and when timeshift has started, enter timeshift (e.g. with PAUSE or LEFT). Do not save timeshift.

Wait for the zap timer to start.

Crash when the timer starts.

Comments (3)

  1. prl reporter

    The source of the issue seems to be in commit f90cfaa where it appears that code was imported from OpenPLi into OpenViX (and thence into easy-ui-4) and retained code that is specific to OpenPLi.

    As well as the call to a non-existent self.InfoBarInstance.timeshiftActivated() above, the code also calls self.InfoBarInstance.saveTimeshiftFiles() which is also missing in both OpenViX and easy-ui-4.

    The code has a "Save timeshift in movie dir and zap" choice, which does the same as "Save timeshift and zap", except for setting self.InfoBarInstance.save_timeshift_in_movie_dir, but neither the OpenViX nor easy-ui-4 code initialises or references that attribute.

  2. Peter Urbanec

    Fix Bug #592: Crash on zap in RecordTimer when timeshifted

    Removes the call to self.InfoBarInstance.timeshiftActivated() and always inserts "Save timeshift and zap" in the first choice slot if self.InfoBarInstance.save_timeshift_file is False (since openChoiceActionBeforeZap() is only called when timeshift is being viewed the test is redundant anyway).

    Removes the "Save timeshift in movie dir and zap"/"save_movie" menu choice and its associated code, since it does nothing in OpenViX or easy-ui-4.

    Replaces the code in the "save" choice in zapAction() to use self.InfoBarInstance.SaveTimeshift() instead of self.InfoBarInstance.saveTimeshiftFiles().

    Resets InfoBarTimeshift.save_timeshift_file in self.InfoBarInstance.SaveTimeshift().

    It's not entirely clear to me what the role of InfoBarTimeshift.save_timeshift_file is intended to be, and I suspect that it may not achieve what is intended.

    → <<cset d567dcb3a644>>

  3. Log in to comment