Gentoo Archives: gentoo-commits

From: "Justin Bronder (jsbronder)" <jsbronder@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-cluster/ganglia/files: ganglia-3.1-gmond-python-tcpconn-concurrency.patch
Date: Mon, 04 Aug 2008 23:17:16
Message-Id: E1KQ9Ie-0000KL-Mw@stork.gentoo.org
jsbronder    08/08/04 23:17:12

  Added:                ganglia-3.1-gmond-python-tcpconn-concurrency.patch
  Log:
  Version bump, thanks to Carlo Marcelo Arenas Belon for help with the ebuild.  #233440
  (Portage version: 2.1.4.4)

Revision  Changes    Path
1.1                  sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-cluster/ganglia/files/ganglia-3.1-gmond-python-tcpconn-concurrency.patch?rev=1.1&content-type=text/plain

Index: ganglia-3.1-gmond-python-tcpconn-concurrency.patch
===================================================================
Index: gmond/python_modules/network/tcpconn.py
===================================================================
--- gmond/python_modules/network/tcpconn.py	(revision 1622)
+++ gmond/python_modules/network/tcpconn.py	(working copy)
@@ -245,19 +245,14 @@
                 tempconns[conn] = 0
 
             #Call the netstat utility and split the output into separate lines
-            fd_poll = select.poll()
-            self.popenChild = popen2.Popen3("netstat -t -a")
-            fd_poll.register(self.popenChild.fromchild)
+            self.popenChild = popen2.Popen3("netstat -t -a -n")
+            lines = self.popenChild.fromchild.readlines()
 
-            poll_events = fd_poll.poll()
-
-            if (len(poll_events) == 0):             # Timeout
-                continue
-
-            for (fd, events) in poll_events:
-                lines = self.popenChild.fromchild.readlines()
-
-            self.popenChild.wait()
+            try:
+                self.popenChild.wait()
+            except OSError, e:
+                if e.errno == 10: # No child process
+                    continue
             
             #Iterate through the netstat output looking for the 'tcp' keyword in the tcp_at 
             # position and the state information in the tcp_state_at position. Count each 
@@ -300,7 +295,8 @@
             _glock.release()
             
             #Wait for the refresh_rate period before collecting the netstat data again.
-            time.sleep(_refresh_rate)
+            if not self.shuttingdown:
+                time.sleep(_refresh_rate)
             
         #Set the current state of the thread after a shutdown has been indicated.
         self.running = False