Merge pull request #7510 from darkk/fix-prometheus-zombies
authorchamptar <champetier.etienne@gmail.com>
Sun, 25 Nov 2018 21:54:56 +0000 (16:54 -0500)
committerGitHub <noreply@github.com>
Sun, 25 Nov 2018 21:54:56 +0000 (16:54 -0500)
prometheus-node-exporter-lua: close io.popen files to reap zombies

utils/prometheus-node-exporter-lua/Makefile
utils/prometheus-node-exporter-lua/files/usr/bin/prometheus-node-exporter-lua
utils/prometheus-node-exporter-lua/files/usr/lib/lua/prometheus-collectors/uname.lua

index 2fc73562ff3beb4071c4ef564e62582ee74cf9bc..659668958604e053bcb1b8089babf818dda507f6 100644 (file)
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prometheus-node-exporter-lua
 PKG_VERSION:=2018.07.23
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
 PKG_LICENSE:=Apache-2.0
index 62e402280f89a40514b625bdddf6104f78745c9e..35addf1dcdab1106d4564e1657a17e0da81e825f 100755 (executable)
@@ -119,11 +119,13 @@ end
 
 col_mods = {}
 col_names = {}
-for c in io.popen("ls -1 /usr/lib/lua/prometheus-collectors/*.lua"):lines() do
+ls_fd = io.popen("ls -1 /usr/lib/lua/prometheus-collectors/*.lua")
+for c in ls_fd:lines() do
   c = c:match("([^/]+)%.lua$")
   col_mods[c] = require('prometheus-collectors.'..c)
   col_names[#col_names+1] = c
 end
+ls_fd:close()
 
 if port then
   server = assert(socket.bind(bind, port))
index 9874b53a9dd93057e5460673ad6d5a5c0d5d54f3..75a366e3b76e9f54c0c40e562c7e3b5ce9b2a87e 100644 (file)
@@ -1,12 +1,16 @@
+local uname_fd = io.popen("uname -m")
+
 local labels = {
   domainname = "",
   nodename = "",
   release = string.sub(get_contents("/proc/sys/kernel/osrelease"), 1, -2),
   sysname = string.sub(get_contents("/proc/sys/kernel/ostype"), 1, -2),
   version = string.sub(get_contents("/proc/sys/kernel/version"), 1, -2),
-  machine = string.sub(io.popen("uname -m"):read("*a"), 1, -2)
+  machine = string.sub(uname_fd:read("*a"), 1, -2)
 }
 
+uname_fd:close()
+
 local function scrape()
   labels["domainname"] = string.sub(get_contents("/proc/sys/kernel/domainname"), 1, -2)
   labels["nodename"] = string.sub(get_contents("/proc/sys/kernel/hostname"), 1, -2)