Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных

в 15:35, , рубрики: Песочница, метки: , , , ,

Недавно начал разбираться с Amazon Web Services для мобильных приложений. Первым делом я хотел разобраться с сервисом идентификаций AWS Cognito Identity. Данный сервис позволяет пользоваться сервисами AWS пользователем моего приложения, причем как прошедшим идентификацию, так и не прошедшим. На первом этапе я решил попробовать просто инициализироваться как гость и добавить запись в набор данных моего пула пользователей. Но возникли некоторые трудности…

Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных - 1

Примеры как это сделать можно найти на официальном сайте, я про это говорить не буду, так как статья не про это.

Когда я пытался добавить датасет следующим образом:

var syncClient = AWSCognito.defaultCognito()
var dataset:AWSCognitoDataset = syncClient.openOrCreateDataset(my_dataset.text)
dataset.setString(my_login.text, forKey: my_email.text)
dataset.synchronize()
println(dataset.getAll())

то возникала следующая ошибка (в консоле):

Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных - 2

Ошибка «Signature not yet current: 20150207T115013Z is still later than 20150207T114517Z (20150207T114017Z + 5min.)» говорит, что расхождение времени на моей локальной машине (где находится локальная БД в которой хранятся данные до синхронизации с сервером) больше 5 минут. Поэтому я не могу синхронизироваться.

Теперь надо сказать как я работаю. У меня стоит Windows 7x64, на ней стоит виртуалка VMWare 10. На этой виртуалке стоит OS X Mavericks в которой я и работаю.

Первое что я сделал — посмотрел время на моей виртуальной машине:

Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных - 3

Оно оказалось синхронизированным с интернетом, то есть все в порядке. Закрыл окно настройки времени, опять запустил свою программу. Та же ошибка. Поставил время в ручную, как на сервере. Та же ошибка… И только потом (после долгих хождений по интернетам в поисках истины) я заметил, что когда я закрываю окно настройки времени, то через несколько секунд время перескакивает на 10 минут вперед! Оказалось, что несмотря на синхронизацию с интернетом времени операционной системы внутри виртуальной машины время берется из операционной системы на которой запущена виртуальная машина!

Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных - 4

И тут я вспомнил, что некоторое время назад Дмитрий Анатольевич Медведев отменил переход на зимнее время. Моя же винда (обновления у меня отключены) упорно на него переходила, поэтому я не долго думая отменил синхронизацию времени с интернетом и поставил время в ручную.

В итоге с того момента у меня накопилась погрешность в +10 минут. И собственно это время и передавалось в мою виртуальную ось.

Теперь же великий повелитель времени Дмитрий Анатольевич вернул время назад, я включил синхронизацию и все стало нормально.

Как Дмитрий Анатольевич Медведев стал виноват в ошибке синхронизации с базой данных - 5

PS: Возможно кому-то это покажется детской ошибкой, но что было то было.

Поделиться

* - обязательные к заполнению поля