[Boost-bugs] [Boost C++ Libraries] #9767: boost::interprocess shared_memory_object failure in case of corrupted Windows Event Log

Subject: [Boost-bugs] [Boost C++ Libraries] #9767: boost::interprocess shared_memory_object failure in case of corrupted Windows Event Log
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-03-10 14:56:37


#9767: boost::interprocess shared_memory_object failure in case of corrupted
Windows Event Log
-------------------------------------------------+-------------------------
 Reporter: ch0kee@… | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component:
  Version: Boost 1.55.0 | interprocess
 Keywords: boost ipc windows event log boot | Severity: Problem
  stamp |
-------------------------------------------------+-------------------------
 If Windows Event Log doesn't contain the Startup Event (Event 6005)
 for any reason, then {{{get_bootstamp}}} returns an empty string.
 CallStack :

 {{{
 shared_memory_object::priv_open_or_create
   ipcdetail::create_tmp_and_clean_old_and_get_filename
     create_tmp_and_clean_old
       tmp_folder
         get_bootstamp
           get_last_bootup_time
 }}}

 When {{{create_tmp_and_clean_old}}} tries to delete all the entries for
 the previous
 boot sessions, the empty string
 (that is delete all folders except "") causes it to delete
 the current session's files as well.

 We found the bug on a Windows 8.1 PC, where there was an error entry
 flooding the event log, I guess it simply pushed Event 6005 out of the
 queue.
 First, we tried to solve the problem in that particular Windows system,
 but eventually we came to the conclusion, that
 manually deleting the event log causes the same symptoms, rendering
 the boost interprocess quite unreliable.

 Now we are using BOOST_INTERPROCESS_BOOTSTAMP_IS_LASTBOOTUPTIME, but
 it causes some stack error warning on that Windows 8.1 PC.

 For us, it would be a solution, if we could manually set
 the temp folder and omit the boot stamp, because then I can surely clear
 it, and it is a 100% working solution.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9767>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC