[webkit-dev] File::Spec->tmpdir() on Leopard and Snow Leopard bots

David Kilzer ddkilzer at webkit.org
Fri Jan 8 07:49:00 PST 2010

On Fri, January 8, 2010 at 12:39:41 AM, Andras Becsi wrote:

>   in the process of making it possible to run more than one instance of 
> run-webkit-tests at the same time 
> (https://bugs.webkit.org/show_bug.cgi?id=33153), I'm trying to make the handling 
> of running httpd processes more platform independent.
> My tries failed only on the Leopard bots. Unfortunately I have no access to a 
> Leopard machine, so I had to guess, but now I have a strong supposition why the 
> new script fails.
> The Leopard bots (Leopard and Snow Leopard) have set something like this: 
> TMPDIR=/var/folders/FF/FFsVLEwYHre8vU9Sax877k+++TI/-Tmp-/ shown in the bot logs 
> (http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/4018/steps/layout-test/logs/stdio).
> My assumption is, that calling File::Spec->tmpdir() in perl returns this path, 
> not /tmp as expected, that is why there is no PID file where the script expects 
> it to be (httpd.conf sets it to /tmp/WebKit).
> Is there any particular reason for setting a non-POSIX standard TMPDIR on these 
> machines, especially because Tiger does not set this and thus has no problems 
> with File::Spec->tmpdir()? Or am I wrong with my assumption?

On Leopard and newer, the tmp directory under /var/folders is a per-user tmp directory (IIRC), which the Perl module apparently prefers over the shared tmp directory at /tmp.

If you read the man page for File::Spec, tmpdir() simply returns the first directory in a list, and its implementation is platform-specific.  It sounds like this method should not be used if there is code that expects the same directory to be returned on every platform.


More information about the webkit-dev mailing list