[oe] Problem building kernel - too many files open
Piero Pezzin
piero.pezzin at gmail.com
Thu Mar 12 14:17:20 UTC 2009
Hello Jader,
it works!
Thank you very much.
Regards,
Piero
On Thu, Mar 12, 2009 at 2:14 PM, Jader <jader at 2mi.com.br> wrote:
> Hello.
> I had the same problem. It's inside classes/kernel.bbclass:298
> (reproduced below):
>
>
> python populate_packages_prepend () {
> def extract_modinfo(file):
> import tempfile, os, re
> tempfile.tempdir = bb.data.getVar("WORKDIR", d, 1)
> tmpfile = tempfile.mkstemp()[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.unlink(tmpfile)
>
>
> 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:
>
>
> python populate_packages_prepend () {
> def extract_modinfo(file):
> import tempfile, os, re
> tempfile.tempdir = bb.data.getVar("WORKDIR", d, 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)
>
>
> There's a patch attached. As Iḿ new to git, I don know it it was created
> in the right way. Used command following:
>
>
> git format-patch cab70860b89f0fd856c5de1c37c6a3d31fd3cc9d --stdout classes
> >kernel.bbclass.patch
>
>
> Jader H. Silva
> 2MI Tecnologia
>
> Em Qui, 2009-03-12 às 09:51 +0100, Petr Štetiar escreveu:
>
> > Marco Cavallini <koansoftware at gmail.com> [2009-03-12 09:02:08]:
> >
> > > Piero Pezzin ha scritto:
> >
> > [...]
> >
> > > >>> During kernel building, I got the following error:
> > > >>>
> > > >>> OTE: package linux-2.6.28: started
> > > >>> NOTE: package linux-2.6.28-r6: task do_package: started
> > > >>> ERROR: Error in executing:
> > > >>>
> /home/piero/work/qong-nobk/openembedded/openembedded/packages/linux/
> > > >>> linux_2.6.28.bb
> > > >>> ERROR: Exception:exceptions.IOError Message:[Errno 24] Too many
> open
> > > >> files:
> > >
> > > this is a known error.
> > > Nobody solved it yet.
> >
> > Maybe, that increasing the numbers of max. file handles and number of
> max.
> > inodes might help you:
> >
> > /proc/sys/fs/file-max
> > /proc/sys/fs/inode-max
> >
> > -- ynezz
> >
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
>
More information about the Openembedded-devel
mailing list