Ticket #7164 (closed Bugs: fixed)
[interprocess] Two potential bugs with b::int::vector of b::i::weak_ptr
|Reported by:||Gaëtan Gaumer <gaetan.gaumer@…>||Owned by:||igaztanaga|
|Milestone:||To Be Determined||Component:||interprocess|
|Keywords:||interprocess vector weak_ptr||Cc:||igaztanaga@…|
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.
- Status changed from new to closed
- Resolution set to fixed
- Status changed from closed to reopened
- Resolution fixed deleted