Browse Source

HPCC-25455 Packets that are discarded because query has hit memory limit not counted

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 4 years ago
parent
commit
a16c058182
1 changed files with 3 additions and 3 deletions
  1. 3 3
      roxie/udplib/udpmsgpk.cpp

+ 3 - 3
roxie/udplib/udpmsgpk.cpp

@@ -468,6 +468,8 @@ unsigned CMessageCollator::queryBytesReceived() const
 bool CMessageCollator::attach_databuffer(DataBuffer *dataBuff)
 {
     activity = true;
+    UdpPacketHeader *pktHdr = (UdpPacketHeader*) dataBuff->data;
+    totalBytesReceived += pktHdr->length;
     if (memLimitExceeded || roxiemem::memPoolExhausted())
     {
         DBGLOG("UdpCollator: mem limit exceeded");
@@ -488,6 +490,7 @@ bool CMessageCollator::attach_data(const void *data, unsigned len)
     // Simple code can allocate databuffer, copy data in, then call attach_databuffer
     // MORE - we can attach as we create may be more sensible (and simplify roxiemem rather if it was the ONLY way)
     activity = true;
+    totalBytesReceived += len;
     if (memLimitExceeded || roxiemem::memPoolExhausted())
     {
         DBGLOG("UdpCollator: mem limit exceeded");
@@ -509,9 +512,6 @@ bool CMessageCollator::attach_data(const void *data, unsigned len)
 
 void CMessageCollator::collate(DataBuffer *dataBuff)
 {
-    UdpPacketHeader *pktHdr = (UdpPacketHeader*) dataBuff->data;
-    totalBytesReceived += pktHdr->length;
-
     PUID puid = GETPUID(dataBuff);
     // MORE - I think we leak a PackageSequencer for messages that we only receive parts of - maybe only an issue for "catchall" case
     PackageSequencer *pkSqncr = mapping.getValue(puid);