Subject: [Boost-bugs] [Boost C++ Libraries] #8359: get_bootstamp will return wrong string after the computer is hibernated.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-04-01 07:56:55
#8359: get_bootstamp will return wrong string after the computer is hibernated.
-----------------------------------+----------------------------------------
Reporter: luckyangcheng@⦠| Type: Bugs
Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.53.0
Severity: Problem | Keywords:
-----------------------------------+----------------------------------------
I can reproduce the problem on Windows 7, and not test the issue on other
platforms.
Repro steps:
1. Create a shared memory by:
process_name_ = my_process_name;
permissions perms;
perms.set_unrestricted();
msg_queue_.reset(new message_queue(open_or_create,
my_process_name.c_str(), 10, 4096, perms));
We can notice that there is a folder being created under
C:\ProgramData\boost_interprocess, such as
C:\ProgramData\boost_interprocess\20130401141308.198480
And now the we can open the message_queue in another process.
2. Hibernate the system.
3. Wakeup the system, and wait about 1 minutes.
4. Try to open the message_queue in another process and failed.
5. Try to create another message_queue in another and find that the
message queue file is in another folder.
6. Debug and traced into the code and find that root cause is
get_bootstamp return a different value.
My solutions is to ignore BOOST_INTERPROCESS_HAS_BSD_KERNEL_BOOTTIME
macro. Just put all files into the root folder. Hope it can be fixed.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8359> 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:12 UTC