On Sat, 29 Oct 2005, Kevin Atkinson wrote:

[List should probably also go to the dev list also, if I don't get a
   ^^^^ = This
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.

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 "11" for "None of the Above" and then selected "GMT+6". This
             ^^ = 12
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).

I also disabled the automatic downloading of program just to be safe.

Sunday morning, I will change the timezone back to what it should be and correct the program data by redownloading it.

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 :-|

I should also mention that it accounts for the switch even when the current timezone is set to something that doesn't switch for Daylight saving time.

--
http://kevin.atkinson.dhs.org

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users

Reply via email to