[Boost-bugs] [Boost C++ Libraries] #12137: boost::interprocess::intermodule_singleton initialization failed

Subject: [Boost-bugs] [Boost C++ Libraries] #12137: boost::interprocess::intermodule_singleton initialization failed
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-04-18 23:01:55

#12137: boost::interprocess::intermodule_singleton initialization failed
 Reporter: Valentin Shtronda <valiko.ua@…> | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component:
  Version: Boost 1.61.0 | interprocess
 Keywords: System EventLog | Severity: Showstopper
  get_last_bootup_time get_shared_dir |
 I'm getting exception "boost::interprocess::intermodule_singleton
 initialization failed" when trying to use Boost Interprocess library, even
 when I run any example from the library doc.
 Debugging showed that the library fails to find event 6005 in System's
 EventLog, so it cannot obtain system boot-up time, which it uses to create
 shared dir.

 I used Windows Event Viewer to check that indeed, there is no such event
 in my system at this moment. I didn't delete it, so I suppose that Windows
 itself cleans old events. My system's uptime is more than 40 days. I see
 that my System Event Log is configured to be maximum 20MB (it's default, I
 didn't change it) and it's currently 20MB, so it explains everything.

 Since it's normal situation, I believe the library should use other way
 (in addition to, or instead of current way) to get bootup time. For
 example, GetTickCount64 or System Up Time performance counter

 What is worse, I cannot reboot at the moment and need to proof-of-concept
 IPC on Windows for our project, and this is my only Windows box...

 The only quick workaround I see is to patch get_last_bootup_time function
 to use GetTickCount64.

Ticket URL: <https://svn.boost.org/trac/boost/ticket/12137>
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:20 UTC