Disabled repeat timers can be spontaneously re-enabled in "done!" state
If a repeat timer is disabled, then the next time that another recording is started or finished after the nominal end time of the disabled repeat timer, the repeat timer is re-enabled in "done" state. The re-enabling can also be triggered by a GUI restart after the nominal end time of the disabled timer.
After the repeat timer enters this state (repeated, enabled, done), it becomes susceptible to completed timer cleanup, both manual and automatic.
The issue is due to a bug in timer.TimerEntry.shouldSkip() where disabled timers are re-enabled if their current nominal end time has passed. They should not be re-enabled here if they are repeated timers.
Reproduction steps
At a time when there is no recording activity current or upcoming, create a short repeated recording timer for a few minutes in the future, then in the TIMER screen, disable it.
In this state BLUE Cleanup in the TIMER screen will have no effect on the timer.
Before the repeat timer would have been due to start, create another recording timer (a "once" timer will do) to either end or start after the nominal end time of the disabled repeat timer.
On the first state transition of the recording timer after the nominal end time of the disabled repeat timer, the disabled repeat timer will move to state (repeated, enabled, done).
In this state BLUE Cleanup in the TIMER screen will delete the timer. So will the automatic cleanup controlled by MENU>TV>Recording settings>Remove completed timers after...
Comments (4)
-
reporter -
- changed status to resolved
Fix Bug
#346- Disabled repeat timers can be spontaneously re-enabled in "done!" statePrevent disabled timer from being re-enabled for completion after its most recent end time if the timer is repeated.
→ <<cset 5eeb5fcf6fb8>>
-
Fix Bug
#346- Tidy up commentsImprove the readability of comments, make some clearer and change a few from german to English.
Did all the timer modules, not just [timer], because they all had similar issues.
→ <<cset ded8d19b6489>>
-
Fix Bug
#346- [timer] PEP8 cleanup[RecordTimer] and [PowerTimer] were alread PEP8-clean.
[pep8] ignore=W191,E302,E501
→ <<cset 101eb079ab95>>
- Log in to comment
I have a fix for this bug that I will submit soon.