sqlite3 temp files

Joshua Root jmr at macports.org
Wed May 19 07:57:44 PDT 2010


On 2010-5-20 00:51 , Jeremy Lavergne wrote:
>>> Whenever a port is installed with registry2.0, a few files named like
>>> /private/var/tmp/etilqs_IP9NDJcYHrXhFa2 are created by sqlite. (You
>>> can't see them in the filesystem because it unlinks them; you have to
>>> use e.g. lsof.) If you install a lot of ports in one port(1) invocation,
>>> it can run out of fds. [1]
>>>
>>> The files go away when the subinterpreter is deleted (which triggers an
>>> sqlite3_close() call). The way things work currently, it's not really
>>> possible to delete the subinterpreters for dependencies before all of
>>> them are installed.
>>
>> I hacked around this limitation, so the immediate problem is fixed.
>> Still very interested if anyone knows how to make this stuff work right
> 
> Sounds like port would need rewritten to not spawn sub-interpreters: compute things and then run everything in one instance.

That would be one way to fix it, but we do that for a good reason, and
it would also be a lot of work for the benefit.

> If I'm not mistaken, running out of file pointers isn't specific to sqlite so much as a long-standing tragedy of macports.

There was one other fd leak in the filemap code a while ago, but I don't
recall any other instances being reported.

- Josh


More information about the macports-dev mailing list