[mapguide-trac] #1423: Linux std::string not thread safe

MapGuide Open Source trac_mapguide at osgeo.org
Tue Aug 17 13:22:16 EDT 2010


#1423: Linux std::string not thread safe
---------------------------+------------------------------------------------
   Reporter:  trevorwekel  |       Owner:  trevorwekel
       Type:  defect       |      Status:  new        
   Priority:  high         |   Milestone:  2.2        
  Component:  Server       |     Version:  2.2.0      
   Severity:  blocker      |    Keywords:             
External_id:               |  
---------------------------+------------------------------------------------
 The std::string implementation on Linux uses a refcounted copy of the
 string data.  Under certain circumstances, the implementation in not
 thread safe which causes "double free" errors and !MapGuide server crashes
 under heavy load on Linux.

 The !MapGuide logs (access, error, etc) are especially susceptible to
 string thread safety because strings are queued to seperate thread before
 they are written to disk.

 An effective way to test thread safety for std::string is to run a load
 test of 200+ concurrent users executing Http GETTILEIMAGE.  This Http
 operation is very fast (<10 ms) and puts huge stress on the basic request
 processing and logging infrastructure.  For maximum effectiveness, this
 test should be run on an 8 way box.

-- 
Ticket URL: <http://trac.osgeo.org/mapguide/ticket/1423>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list