← Back to team overview

openerp-india team mailing list archive

[Bug 1038017] Re: [6.1][7.0] OpenERP Server does not operate in UTC timezone under Windows

 

Fix landed  in 7.0 at revision 4881.

As it happens, setting the environment variable works, but it has to be
done before importing the "time" Python module.

** Changed in: openobject-server
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Server.
https://bugs.launchpad.net/bugs/1038017

Title:
  [6.1][7.0] OpenERP Server does not operate in UTC timezone under
  Windows

Status in OpenERP Server:
  Fix Released

Bug description:
  As of OpenERP 6.1 the server timezone is forced to UTC in order to
  remove any ambiguous timezone/DST conversions, and make sure the
  database content is fully portable. All timezone conversions are meant
  to be performed on the client-side from now on. This was further
  explained in bug 918257 (especially comment #4) and the further
  technical discussions in bug 925361.

  It appears that the manner in which we force the UTC timezone[1] does not work under Windows, probably because the Python implementation of the time module has some limitations on this platform (such as not supporting time.tzset()[2,3]).
  As a result, the server will actually operate in the natural OS timezone, while thinking it is using UTC values. As a result, the offset from UTC may appear to be applied twice when displayed on the client-side.
  It seems we must modify the OpenERP-Server-Service environment before startup to fix the issue. This can be done by adding an "Environment" registry value to the registry key defining the OpenERP-Server service, and then restarting the server.
  The attached registry patch (fix_tz.reg) should accomplish this.  In case it goes wrong, a second registry patch is provided to undo the change (undo_fix_tz.reg).
  Any feedback on this registry patch from Windows users is greatly appreciated!

  The next step is to integrate this registry patch in our All-In-One installer for Windows. The NSIS API provides ways to write to the registry, unfortunately we need to write a REG_MULTI_SZ (i.e. hex(7) type, as see in the registry patch), and this is not supported by the NSIS API. 
  This forum thread discusses a manual implementation of REG_MULTI_SZ in NSIS scripting, but seems overcomplicated/overkill for our simple patch: http://forums.winamp.com/showthread.php?t=172312
  Perhaps we should simply include the .reg patch in the installer and merge it during installation (to be investigated)

  Note: OpenERP servers deployed on a Unix platforms are not affected by
  this issue. It is always recommended to deploy the server on Unix, as
  a lot of maintenance tasks will be greatly simplified: configuration
  file editing, log analysis, patch deployment, etc. End-users can of
  course use the system from their Windows desktops, so this is usually
  not a problem in most companies. Deploying the system in a virtual
  machine running on a Windows host is also a workable solution.

  [1] Setting os.environ['TZ'] to 'UTC' at server startup
  [2] http://docs.python.org/library/time.html#time.tzset
  [3] http://stackoverflow.com/questions/4360981/make-python-respond-to-windows-timezone-changes

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/1038017/+subscriptions


References