[Boost-bugs] [Boost C++ Libraries] #4010: Boost message queue bug

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