diff options
author | Jader H. Silva <jader@2mi.com.br> | 2009-03-12 10:10:12 -0300 |
---|---|---|
committer | Marcin Juszkiewicz <hrw@openembedded.org> | 2009-03-12 17:26:15 +0100 |
commit | bf59c40c3eccf42e098c7374e2bcfe7f2ec2f77d (patch) | |
tree | 54f4abe7f911025d9ab33bcb44c79ee430d19145 /classes | |
parent | 337be70ba5f4e1642680b154dea11fdb978bcc63 (diff) |
Kernel bbclass "too many open files" bugfix
tempfile.mkstemp() is used to create a temporary file. This function
return a tuple with an OS file descriptor and a filename. Filename is
stored in "tmpfile" but descriptor is not stored anywhere, but it is
still open because it's only an integer to python so it is not closed at
the end of the function.
For each iteration in which this function is called, a new OS file
descriptor is opened, but not closed. The solution is to store the file
descriptor and close it.
Diffstat (limited to 'classes')
-rw-r--r-- | classes/kernel.bbclass | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 86f00da5cf..4c1dbda35c 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -295,12 +295,14 @@ python populate_packages_prepend () { def extract_modinfo(file): import tempfile, os, re tempfile.tempdir = bb.data.getVar("WORKDIR", d, 1) - tmpfile = tempfile.mkstemp()[1] + tf = tempfile.mkstemp() + tmpfile = tf[1] cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (bb.data.getVar("PATH", d, 1), bb.data.getVar("HOST_PREFIX", d, 1) or "", file, tmpfile) os.system(cmd) f = open(tmpfile) l = f.read().split("\000") f.close() + os.close(tf[0]) os.unlink(tmpfile) exp = re.compile("([^=]+)=(.*)") vals = {} |