Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 14, 2018 17:30:53

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

К сожалению, исходный код выложить не могу (секретность, к тому же, уловить все связи надо смотреть много модулей), но, пытался смоделировать проблемное место и, не удается. Быть может, всё равно какие-нибудь мысли есть по данному поводу? То есть, возможные причины?

 import cPickle
import os
import time
 
....
 
  def dump(self, file_path):
        file_obj = None
        try:
           file_obj = open(file_path, 'wb')
           cPickle.dump(self._keys, file_obj)
           cPickle.dump(self._objects, file_obj)
           ....
        finally:
           if file_obj is not None:
              file_obj.close()
 
        print os.stat(file_path)[8]
        print os.path.getmtime(file_path)
        print time.time()

Результат:
1518615171
1518615171.0
1518615171.39

Фокус в том, что именно в исходном классе при срабатывании этой функции, последнее значение - time.time() меньше, чем значения модификации файла, хотя высчитывается после! Думал, может быть, данные не сбросились на диск, ну всяко бывает, использовал flush, os.fsync, не помогло. Есть ещё что-нибудь?



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#2 Фев. 14, 2018 18:56:31

Slow
Зарегистрирован: 2017-07-26
Сообщения: 88
Репутация: +  4  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

А можно хотя бы информацию об окружении? Что за ос и фс, что за версия питона, вот это всё?
И какова величина расхождения, кстати? Расхождение постоянное?

Отредактировано Slow (Фев. 14, 2018 18:57:11)

Офлайн

#3 Фев. 14, 2018 19:45:37

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

Slow
А можно хотя бы информацию об окружении? Что за ос и фс, что за версия питона, вот это всё?И какова величина расхождения, кстати? Расхождение постоянное?

Ох, хорошее замечание, вот это всё и забыл скинуть:
1) ОС - СеntOS 6.5 (вроде и на FreeBSD 10.3 тоже проявляется, завтра смогу проверить), FS - ext3, правда файл дампится на nfs, размер порядка 100 мб
2) Python 2.7.13
3) расхожение приблизительно в 600-650 секунд, постоянное



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Отредактировано Master_Sergius (Фев. 14, 2018 19:47:13)

Офлайн

#4 Фев. 15, 2018 00:14:01

Slow
Зарегистрирован: 2017-07-26
Сообщения: 88
Репутация: +  4  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

время между хранилищем и машиной с вашим софтом синхронизировано ли?

Офлайн

#5 Фев. 15, 2018 12:44:09

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

Хм, похоже проблема действительно в этом, дамплю себе в хомяк - всё ок. Теперь чувствую себя дураком, потому что должен был сразу это сделать, а мысли поскакали почему-то в другую сторону. Большое спасибо за терпение )



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#6 Фев. 15, 2018 15:44:31

Slow
Зарегистрирован: 2017-07-26
Сообщения: 88
Репутация: +  4  -
Профиль   Отправить e-mail  

Как может быть час модификации файла быть больше чем текущий час?

Да не за что. Я уже бился об nfs и синхронизацию.
К слову, с версии 3 этой самой nfs в `некоторых` реализациях можно зафорсить время клиента. Но, ээмм, некоторость реализаций - величина не сильно определенная.

Отредактировано Slow (Фев. 15, 2018 15:45:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version