Найти - Пользователи
Полная версия: Как может быть час модификации файла быть больше чем текущий час?
Начало » Python для экспертов » Как может быть час модификации файла быть больше чем текущий час?
1
Master_Sergius
К сожалению, исходный код выложить не могу (секретность, к тому же, уловить все связи надо смотреть много модулей), но, пытался смоделировать проблемное место и, не удается. Быть может, всё равно какие-нибудь мысли есть по данному поводу? То есть, возможные причины?

 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, не помогло. Есть ещё что-нибудь?
Slow
А можно хотя бы информацию об окружении? Что за ос и фс, что за версия питона, вот это всё?
И какова величина расхождения, кстати? Расхождение постоянное?
Master_Sergius
Slow
А можно хотя бы информацию об окружении? Что за ос и фс, что за версия питона, вот это всё?И какова величина расхождения, кстати? Расхождение постоянное?

Ох, хорошее замечание, вот это всё и забыл скинуть:
1) ОС - СеntOS 6.5 (вроде и на FreeBSD 10.3 тоже проявляется, завтра смогу проверить), FS - ext3, правда файл дампится на nfs, размер порядка 100 мб
2) Python 2.7.13
3) расхожение приблизительно в 600-650 секунд, постоянное
Slow
время между хранилищем и машиной с вашим софтом синхронизировано ли?
Master_Sergius
Хм, похоже проблема действительно в этом, дамплю себе в хомяк - всё ок. Теперь чувствую себя дураком, потому что должен был сразу это сделать, а мысли поскакали почему-то в другую сторону. Большое спасибо за терпение )
Slow
Да не за что. Я уже бился об nfs и синхронизацию.
К слову, с версии 3 этой самой nfs в `некоторых` реализациях можно зафорсить время клиента. Но, ээмм, некоторость реализаций - величина не сильно определенная.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB