Skip to content

DST-caused ambiguity errors on local->UTC conversion #62

@ssfrr

Description

@ssfrr

For 1 hour every fall there's ambiguity in the local time -> UTC time conversion, because that hour repeats itself. Here's the error it throws:

Traceback (most recent call last):

 File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 114, in get_response
   response = wrapped_callback(request, *callback_args, **callback_kwargs)

 File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
   return view_func(*args, **kwargs)

 File "/home/sfr/chain-api/chain/core/api.py", line 748, in create_view
   return cls.create_single(data, request)

 File "/home/sfr/chain-api/chain/core/api.py", line 755, in create_single
   new_resource.save()

 File "/home/sfr/chain-api/chain/core/api.py", line 545, in save
   self._obj.save()

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 545, in save
   force_update=force_update, update_fields=update_fields)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 573, in save_base
   updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 654, in _save_table
   result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 687, in _do_insert
   using=using, raw=raw)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 232, in _insert
   return insert_query(self.model, objs, fields, **kwargs)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1511, in insert_query
   return query.get_compiler(using=using).execute_sql(return_id)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 898, in execute_sql
   for sql, params in self.as_sql():

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 856, in as_sql
   for obj in self.query.objs

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 350, in get_db_prep_save
   prepared=False)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 911, in get_db_prep_value
   value = self.get_prep_value(value)

 File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 905, in get_prep_value
   value = timezone.make_aware(value, default_timezone)

 File "/usr/local/lib/python2.7/dist-packages/django/utils/timezone.py", line 304, in make_aware
   return timezone.localize(value, is_dst=None)

 File "/usr/lib/python2.7/dist-packages/pytz/tzinfo.py", line 349, in localize
   raise AmbiguousTimeError(dt)

AmbiguousTimeError: 2015-11-01 01:00:20.770599


<WSGIRequest
path:/scalar_data/create,
GET:<QueryDict: {u'sensor_id': [u'1135']}>,
POST:<QueryDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '59',
u'CSRF_COOKIE': u'4Crz0mLaS9hBfQLJYz0HsZRWJzpvhCYT',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_AUTHORIZATION': 'Basic Y2hhaW5jb2xsZWN0b3JzOlY4VGlPRTZ5VndwaklpbTEzeWJoakE5Tw==',
'HTTP_CONNECTION': 'close',
'HTTP_HOST': 'chain-api.media.mit.edu',
'HTTP_USER_AGENT': 'python-requests/2.3.0 CPython/2.7.3 Linux/3.2.0-4-amd64',
'HTTP_X_FORWARDED_FOR': '18.85.58.99',
'PATH_INFO': u'/scalar_data/create',
'QUERY_STRING': 'sensor_id=1135',
'RAW_URI': '/scalar_data/create?sensor_id=1135',
'REMOTE_ADDR': '18.85.58.99',
'REMOTE_PORT': '80',
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': u'',
'SERVER_NAME': 'chain-api.media.mit.edu',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gunicorn/18.0',
'gunicorn.socket': <socket._socketobject object at 0x7f8749628f30>,
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f8752f4e1e0>,
'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x7f87508061f0>,
'wsgi.input': <gunicorn.http.body.Body object at 0x7f87480e7910>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions