Opened 11 years ago

Closed 10 years ago

#1584 closed defect (fixed)

Feature source create or update locks up server while under load

Reported by: trevorwekel Owned by: trevorwekel
Priority: high Milestone: 2.2
Component: Server Version: 2.2.0
Severity: critical Keywords:
Cc: brucedechant External ID:


Due to mutex behaviour within the MapGuide server process, any create or update operation performed on a feature source may lock up the server process if a connection is simultaneously opened to another feature source in the connection pool. Pooled connections typically include "database" connections like ODBC, SQL Server, and Oracle.

Here are some cases where this may occur:

  • An author creates a new feature source on a live site with database connections while it is under load.
  • One user performs a buffer or measure operation while another user pans a map which uses a "database" connection.

Attachments (1)

connectionLock.patch (15.0 KB) - added by trevorwekel 11 years ago.
Patch for defect

Download all attachments as: .zip

Change History (7)

Changed 11 years ago by trevorwekel

Attachment: connectionLock.patch added

Patch for defect

comment:1 Changed 11 years ago by trevorwekel

The attached patch contains the fix. Only the changes to CacheManager.cpp and FdoConnectionManager.h are strictly necessary.

The additional trace logging in FdoConnectionManager.cpp is not required to fix the issue but I was able to track this issue down with the additional tracing. It would be good to keep it around to resolve any future mutex issues.

comment:2 Changed 11 years ago by brucedechant

Cc: brucedechant added

comment:3 Changed 11 years ago by brucedechant

Looks good. Thanks for adding the additional MgLogDetail? information to several of the methods too.

comment:4 Changed 10 years ago by trevorwekel

Fixed in r5518 for branches/2.2

comment:5 Changed 10 years ago by brucedechant

Fixed in r5519 for sandbox/adsk/2.3r

comment:6 Changed 10 years ago by trevorwekel

Resolution: fixed
Status: newclosed

Fixed in r5523 for trunk

Note: See TracTickets for help on using tickets.