Subject: [Boost-bugs] [Boost C++ Libraries] #4010: Boost message queue bug
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-03-15 05:51:54
#4010: Boost message queue bug
-----------------------------------------------------+----------------------
Reporter: rusty0831 <rusty_lai@â¦> | Owner: igaztanaga
Type: Bugs | Status: new
Milestone: Boost 1.43.0 | Component: interprocess
Version: Boost 1.42.0 | Severity: Problem
Keywords: bug message queue temp folder bootstamp |
-----------------------------------------------------+----------------------
There is a serious bug within the message queue.
Originally boost message queue intends to create temp files under a
randomly generated temp
folder, boost uses undocumented Windows APIs to get the bootstamp to
generate the folder
name, the folder name looks like "C:\Documents and Settings\All
Users\Application Data/boost_interprocess/D0F325BE8579CA01/".
Unfortunately that there is a bug of the method to generate the
bootstamp, that the bootstamp
will vary, even without rebooting!!
This will cause problems that, if a message queue is running for hours,
further request from client cannot
connect to it because of the newly generated bootstamp is different!!
This bug can be replicated by
[Method 1]
1. Write a test program (A), create a message queue and let it running
for hours (e.g. 3hours...)
When the message queue is created, a folder under "C:\Documents and
Settings\All Users\Application Data\boost_interprocess\D0F325BE8579CA01"
will be created. Notice the folder name "D0F325BE8579CA01".
2. Write another test program (B) to connect to the message queue
created by test program (A).
You will notice that it's unable to connect to the message queue
created by program (A).
You can also find that another folder "C:\Documents and Settings\All
Users\Application Data\boost_interprocess\9053E2F2EBC0CA01" is created.
Notice that the folder name "9053E2F2EBC0CA01" is different from
"D0F325BE8579CA01".
[Method 2]
There is another more simple method to replicate the issue instead of
to wait for hours.
The steps are mostly the same as [Method 1], the difference is before
running test program (B), please change the system time.
Afterwards test program (B) is unable to connect to test program (A)
anymore.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4010> 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:02 UTC