[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] engine/core dispatchq.cpp,1.9,1.9.98.1
From:       dcollins () helixcommunity ! org
Date:       2010-08-02 21:08:08
Message-ID: 201008022107.o72L7lZT027950 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/engine/core
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv14240/server/engine/core

Modified Files:
      Tag: SERVER_14_0
	dispatchq.cpp 
Log Message:
Synopsis
========
Fixes a DispatchQ-related memory leak with .ts segments

Branches: SERVER_14_0_RN, HEAD
Reviewer: Chytanya


Description
===========

During a standard uptime test on Win2k3, a significant memory leak
occurred.  At least part of this leak is related to the DispatchQ.

During the uptime, messages like the following frequently appeared on stdout:

DispatchQueue::send: size == QUEUE_SIZE (to_procnum=17, bottom=4183, top=4183) on \
message from 127687660 to 92106520

This indicates that the queue for the destination thread/process is full.
When this happened, the dispatched object would leak.  So one part of
the fix is to delete these in this error case. 

For the HEAD, additional changes will be investigated to ensure
the DispatchQ doesn't get full in this type of situation.  This is
not part of the current check-in.


Files Affected
==============

server/engine/core/dispatchq.cpp


Testing Performed
=================

Unit Tests:
- N/A

Integration Tests:
- Tested in the uptime rig using various isolation tests.  Instrumentation
  showed the code getting triggered appropriately.

Leak Tests:
- Standard leak-tests are not currently possible in this high-load scenario.
  The memory usage of a full uptime was used to debug the issue, and will
  be monitored in the current full uptime.

Performance Tests:
- N/A

Platforms Tested: win32-i386-vc71
Build verified: win32-i386-vc71


QA Hints
========
* N/A


Index: dispatchq.cpp
===================================================================
RCS file: /cvsroot/server/engine/core/dispatchq.cpp,v
retrieving revision 1.9
retrieving revision 1.9.98.1
diff -u -d -r1.9 -r1.9.98.1
--- dispatchq.cpp	24 May 2007 08:36:37 -0000	1.9
+++ dispatchq.cpp	2 Aug 2010 21:08:06 -0000	1.9.98.1
@@ -141,6 +141,7 @@
                 to_procnum, bottom[to_procnum], top[to_procnum],
                 from_tid, to_tid);
 	HXMutexUnlock(m_pMutex[to_procnum]);
+        HX_DELETE(m);
 	return -1;
     }
 


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic