[mapguide-internals] Debug symbols for Mapguide 2.5.1 Centos packages

Gabriele Monfardini gabrimonfa at gmail.com
Fri Oct 11 01:33:33 PDT 2013


Hi all,

I was stress testing Mapguide 2.5.1 on Centos 6 using OGR provider and a
recompiled libgdal 1.9 to support PostgreSQL.

I'am experiencing a quite good performance level but also randomic crashes.

Trying to debug it with gdb I've find that at least one time the crash
seems to have happened inside GEOS library.

0x01d8aa5e in geos::IntervalSize::isZeroWidth(double, double) () from
/usr/local/mapguideopensource-2.5.1/lib/libMgGeometry-2.5.1.so


Unfortunately I don't have debug symbols for Mapguide libraries.

Some other times gdb stack trace is empty so the crash probably happened
inside Mapguide code.

In Error.log I'm seeing the following type of Errors

<2013-10-11T09:20:05>   -1613595792             10.1.1.46
Administrator
 Error: Resource was not found:
Session:857722e8-3245-11e3-8000-5254006ae79a_en_MTI3LjAuMC4x0AFC0AFB0AFA//edifici.Map
 StackTrace:
  - MgResourceServiceHandler.ProcessOperation() line 80 file
ResourceServiceHandler.cpp
  - MgOpGetResourceData.Execute() line 124 file OpGetResourceData.cpp
  -
MgServerResourceService.GetResourceData(Id=Session:857722e8-3245-11e3-8000-5254006ae79a_en_MTI3LjAuMC4x0AFC0AFB0AFA//edifici.Map
   DataName=RuntimeData    Tags=) line 1869 file ServerResourceService.cpp
  - MgApplicationRepositoryManager.GetResourceData() line 1246 file
ApplicationRepositoryManager.cpp
  - MgResourceContentManager.GetDocument() line 590 file
ResourceContentManager.cpp
  - MgResourceDefinitionManager.GetDocument
(857722e8-3245-11e3-8000-5254006ae79a_en_MTI3LjAuMC4x0AFC0AFB0AFA.dbxml)()
line 476 file ResourceDefinitionManager.cpp
  - MgResourceDefinitionManager.GetDocument() line 467 file
ResourceDefinitionManager.cpp

I'm on 32 bit so I've set short timing for session expiration (180s) and
for session expiration check (every 60s), otherwise out-of-memory errors
begin to appear if many sessions are created in a small time.
This error is not fatal, just a very small number of requests failed.
The number of sessions, evaluated counting the number of dbxml files in
Repositories/Sessions, lies in the interval [200-350].
Is some thread trying to access an already cleared session dbxml?

<2013-10-11T09:40:08>   -1477227664             10.1.1.46
Administrator
 Error: A length exception occurred.
        basic_string::_S_create
 StackTrace:
  - MgOperationThread.ProcessOperation() line 437 file OperationThread.cpp

This error is a bit weird. After this error sometimes Mapguide continued,
sometimes it crashed, due to this error or to some other error that was not
written in the Error log.
Memory consumption during stress test is quite high (over 1.5GB RAM, I
don't think MapGuide 32bit is able to user more then 2GB) but stable.

So these are my questions:

   1. Are available debug packages for Centos?
   2. Which version of GEOS do MapGuide use? I presume an internal one, not
   Centos native one.
   3. Why in basic_string::_S_create the stack trace seems to be
   incomplete? I mean MgOperationThread.ProcessOperation afaik is the entry
   point of every operation but does not do any actual work. Did the exception
   really happened inside this method?

Regards,

Gabriele Monfardini


More information about the mapguide-internals mailing list