Opened 13 years ago

Closed 13 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:

Description

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 13 years ago.
Patch for defect

Download all attachments as: .zip

Change History (7)

by trevorwekel, 13 years ago

Attachment: connectionLock.patch added

Patch for defect

comment:1 by trevorwekel, 13 years ago

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 by brucedechant, 13 years ago

Cc: brucedechant added

comment:3 by brucedechant, 13 years ago

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

comment:4 by trevorwekel, 13 years ago

Fixed in r5518 for branches/2.2

comment:5 by brucedechant, 13 years ago

Fixed in r5519 for sandbox/adsk/2.3r

comment:6 by trevorwekel, 13 years ago

Resolution: fixed
Status: newclosed

Fixed in r5523 for trunk

Note: See TracTickets for help on using tickets.