in reply to Re: PAR::Heavy failed to map segment
in thread PAR::Heavy failed to map segment

I'm not using debian linux, I guess the reason I do not have apt-get.

What does UTSL stand for?

Where would I set the environment variable TEMP or TMP? How do I adjust which /tmp directory PAR uses? I do not see anything in Makefile.PL.

Update: I looked into the code and found PAR_TEMP. Trying to set that now.

Shite. Its not working. I've set PAR_TEMP with declare -x PAR_TEMP=/home/andrew/tmp but it doesn't seem to pick it up. It is still trying to write to /tmp exactly as before. It looks like that code was just touched by the author in the last revision, maybe it is still broken? Or maybe I am doing something wrong?

Update 2: OK, I've finally got it recoginizing the temp directory. Now its passing at least some tests. Still failing 23 of the t/2-pp.t tests.

Update 3: I've isolated the first failing test here:

OUTPUT FROM make test TEST_VERBOSE=1 # [420]sub pp_hello_1 cannot open a pipe for ./a.out 2>&1 |

The code for that is here:

if (!(open (CMD_STDOUT_AND_STDERR, "$cmd 2>&1 |"))){ close(PIPE_LOGFILE); $$message_ref = "\n\[420\]sub $test_name_string cannot " . "open a pipe for $cmd 2>&1 |\n"; return (EXIT_FAILURE); }

Added a dump of $! to $$message_ref error string. Gave me

# [420]sub pp_hello_1 cannot open a pipe for ./a.out 2>&1 | # ($! = Permission denied) #

Permission denied? Why would you get a permission denied from the open command? -Andrew.


Andrew Tomazos  |  andrew@tomazos.com  |  www.tomazos.com

Replies are listed 'Best First'.
Re^3: PAR::Heavy failed to map segment
by mugwumpjism (Hermit) on Jul 14, 2005 at 23:31 UTC

    You will find the meaning of UTSL at http://www.dictionary.com/.

    Beats me on the pipe opening issue; put $! into the message to get the system error message - and if that doesn't help, try putting this before the code;

    print "strace -fae -p $$\n"; sleep 10;

    When it prints the "strace" command, cut and paste the line into another window, and you will see all the system calls the program executes over the part you are interested in. There should be one that is failing (will have ESOMETHING in the last column). That should give you a hint as to what is going wrong.

    $h=$ENV{HOME};my@q=split/\n\n/,`cat $h/.quotes`;$s="$h/." ."signature";$t=`cat $s`;print$t,"\n",$q[rand($#q)],"\n";