Well it looks like I got a few things incorrect. Corrections below.
Sorry for all the emails.
On Sat, 29 Oct 2005, Kevin Atkinson wrote:
[List should probably also go to the dev list also, if I don't get a response
from any developers I will likely post it there also...]
I am not a developer but I just spent the last 3+ hours investigation the
situation.
The switch back to Standard Time this Sunday is likely to mess MythTV
up. If you are getting your data from the Data Direct service form zap2it
labs the most likely behavior is that everything will be off by an hour.
However, rereading the program data back in should to fix the problem. If
you get your data from a web page than your schedule may or may not be
correct.
The reason for the anomaly when using the Data Direct service is because the
times are given in UTC and MythTV converts them to local time without
accounting for the switch. There is a slight possibility that MythTV may
correct for the problem and update the program guide when it detects the
switchover. However I do not think MythTV will do this.
OK well I was wrong. It appears that MythTV DOES account for the switch
when it reads in the data. The program guide remains correct but the
program info for the extra hour is missing.
In fact what originally prompted me was that I was trying to find a show
that was during the extra hour. I just changed so many things so many
times everything got messed up.
Everything think below still holds.
For users who get there data from a web page this anomaly in unlikely
because the times are probably already in local time.
However, in both case, if you try to record something between 1:00-2:00,
MythTV may act in strange ways as at 2:00 the time gets reset back to
1:00. MythTV could record a show twice or it could do any number of other
things, hopefully it won't wipe your hard drive ;). From that point on
the guide will than be off by an hour until it gets reread from the
server.
However, there will be problem even if MythTV correctly detected the
switch back to standard time due to the fact that programs times are
stored in the database in in _local_ time. This means that it is
_impossible_ to store program information for the extra hour AND also keep
the listing accurate across the switch back to standard time. Thus there
is the choice to ignore the switch and just lets things be off by an hour
until the user notices and corrects for the problem (or until the program
data expires and new data is read in with the correct adjustment) or make
it impossible to to record a program during this extra hour By just
ignoring the the switch the user has some hope of recording something
during the extra hour AND keeping the schedule consistent by tricking the
computer into NOT adjusting the clock for the switch.
The real solution to this problem is to store all times in the database in
_UTC_ and only convert it back to local time when displaying it to the
user. All program times entered in my the user should thus be converted
to UTC. This way there are no anomalies during the switch. MythTV may
also need to be aware of when the switch happens in order to correctly
display the Grid and program times before and after the switch. The only
major problem is that manually recording a program during the extra hour
will be impossible without some sort of special feature of the GUI to
indicate _which_ 1:00 the user meant.
Thus, I _*STRONGLY*_ suggest that MythTV be modified to store the Program
Times in UTC rather than local time. Of course this will create a
migration problem. The easiest solution is to automatically convert all
the exiting program times to UTC in the database when a user first uses a
newer version of MythTV. Once the data is converted a extra flag can be
stored somewhere that the program times are now in UTC and they should not
be converted again. This switch should be well documented so that the
user us aware of the change in case he downgrades to an version of MythTV
that still uses local time. In this case there should be a way to convert
the program data from UTC back to Local Time.
Since I am recording stuff during the extra hour I set my time zone to
"GMT+6" which is the same as MDT but hopefully won't change during the switch
back to standard time. I did this by using "tzconfig" and then selecting
"12" for "None of the Above" and then selected "GMT+6". This should work for
most Debian based systems. Other distributions likely have a different way
of setting the timezone. I will still be watching MythTV closely to make
sure it doesn't do anything funny (I don't normally go to bead before 3:00
anyway).
BTW: I noticed this problem because mythweb is somehow accounting for the
switch when displaying the grid, but it is not doing it correctly since
there is a gap in the schedule during the extra hour when nothing is
shown, and the times are all wrong after words. So thank you mythweb
developers for incorrectly hading the switch, otherwise I would have not
noticed this problem until it was too late :-|
OK here is what the guide SHOULD look like:
12:00 | 1:00 | 1:00 | 2:00
S12 S1a S1b S2
Here is what mythweb is showing
12:00 | 1:00 | 1:00 | 2:00
S12 S1a S2
And here is what MythTV shows
12:00 | 1:00 | 2:00
S12 S1a S2
The fact that mythweb showed this gap with the missing data is what clued
me in to the reason I couldn't find the show I was looking for during the
extra hour.
_______________________________________________
mythtv-users mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users