[Boost-bugs] [Boost C++ Libraries] #7164: [interprocess] Two potential bugs with b::int::vector of b::i::weak_ptr

Subject: [Boost-bugs] [Boost C++ Libraries] #7164: [interprocess] Two potential bugs with b::int::vector of b::i::weak_ptr
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-07-24 08:48:21


#7164: [interprocess] Two potential bugs with b::int::vector of b::i::weak_ptr
---------------------------------------------------+------------------------
 Reporter: Gaëtan Gaumer <gaetan.gaumer@…> | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: interprocess
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: interprocess vector weak_ptr |
---------------------------------------------------+------------------------
 Here are two potential bugs discussed on boost-users mailing list when
 using b::int::vector of b::i::weak_ptr

 - 1 - Erase of an element delete the wrong post
 The original post : http://lists.boost.org/boost-users/2010/11/64591.php

 This bug is reproduced by the sample programm pasted here :
 http://pastebin.com/yDCngGw4

 It's still present in v1.50

 - 2 - After a pushback sometimes the last element is not the one
 push_backed.

 The original post : http://lists.boost.org/boost-users/2012/07/75311.php

 The sample program trying to reproduce the bug :
 http://pastebin.com/rdpZA7CU

 Note that this program does not reproduce the problem, as when it runs,
 only the priv_range_insert_new_allocation method is called.
 I don't know how to force the program to use
 priv_range_insert_expand_backwards to reproduce the problem.

 A sample of a trace when the bug occurs :
 {{{
 In priv_range_insert_expand_backwards possibility 4/8 and NOT do_after
 After pushback in cableToUpdate vector last elem Id=50332165 added cable
 Id =134218245
 !--> sizeBefore=8, capacityBefore=8, sizeAfter=9, capacityAfter=13
 CableToUpdate[16777216260, 16777216260, 16777216260, 50332165, 67109381,
 16777216260, 16777216260, 16777216260, 50332165, ]
 }}}
 The 4 firsts elements are wrongly duplicated at index 5-8.
 This vector corruption is perhaps done when the vector is resized from 5
 to 8.

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