The bug was not completly fixed in Mailman 2.1.15.
self.__timestamp is set after the loading AND parsing of the file. With large files the parsing may
need 1-2 seconds and in the meantime a new file, but older then the self.__timestamp set after the parsing ist written:
(3) Nov 16 21:02:54 2016 (57765) 0 (self.__timestamp)
-> self.__timestamp is not set -> Load-File
(4) Nov 16 21:02:54 2016 (57765) 1479326574 (Time before Load of config.pck)
-> Timestamp int(time.time()) before the loading of the pickle file.
(5) Nov 16 21:02:55 2016 (57765) 1479326575 (Time after Loading unpickling File = self.__timestamp)
-> Timestamp after the Loading of the pickle file. The unpickling needs some time due to large List
with 200.000 subscribers The parsing needs 1 second, timestamps differ.
(7) Nov 16 21:02:55 2016 (57765) 1479326574 mtime(/var/lib/mailman/lists/XY/config.pck)
-> Check mtime (file is older than self.__timestamp), but nervertheless changed after the Loading
in (5)
(8) Nov 16 21:02:55 2016 (57765) 1479326575 SelfTimestamp
-> Wrong Data saved
The bug was not completly fixed in Mailman 2.1.15.
self.__timestamp is set after the loading AND parsing of the file. With large files the parsing may
need 1-2 seconds and in the meantime a new file, but older then the self.__timestamp set after the parsing ist written:
(1) Nov 16 21:02:54 2016 (57765) Try-Load config file /var/lib/ mailman/ lists/XY/ config. pck
-> Load
(2) Nov 16 21:02:54 2016 (57765) 1479326518 mtime(/ var/lib/ mailman/ lists/XY/ config. pck)
-> Check mtime
(3) Nov 16 21:02:54 2016 (57765) 0 (self.__timestamp)
-> self.__timestamp is not set -> Load-File
(4) Nov 16 21:02:54 2016 (57765) 1479326574 (Time before Load of config.pck)
-> Timestamp int(time.time()) before the loading of the pickle file.
(5) Nov 16 21:02:55 2016 (57765) 1479326575 (Time after Loading unpickling File = self.__timestamp)
-> Timestamp after the Loading of the pickle file. The unpickling needs some time due to large List
with 200.000 subscribers The parsing needs 1 second, timestamps differ.
(6) Nov 16 21:02:55 2016 (57765) Try-Loaded config file /var/lib/ mailman/ lists/neuersche inungen/ config. pck
-> Reload/Check Pickle-File
(7) Nov 16 21:02:55 2016 (57765) 1479326574 mtime(/ var/lib/ mailman/ lists/XY/ config. pck)
-> Check mtime (file is older than self.__timestamp), but nervertheless changed after the Loading
in (5)
(8) Nov 16 21:02:55 2016 (57765) 1479326575 SelfTimestamp
-> Wrong Data saved