Mailing List Archive

More info on NETaa14303 (eval & format)
Excerpts from the mail message of Ilya Zakharevich:
)
) > Also, in testing that it was still a bug I find that trying to
) > eval an invalied "format" command locks up in the middle of eval
) > or in the middle of the next call to eval.
[...]
) I see no difference with
) perl -e 'format x ='
) This is hardly relevant to a debugger, is this in database?

Yes, it is. I hadn't had a chance to check that and wanted to get
the other debugger change to you before I forgot it.

NETaa14303 is the problem but I thought a little bit more
information might be worth adding to the record for it.

On UnixWare 1.1 this works fine:
% perl -e 'format x ='
Missing right bracket at -e line 1, at end of line
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
as do:
% perl -e 'eval "format"'
% perl -e 'eval "format x"'
but
% perl -e 'eval "format x ="'

hangs, making no system calls (contrary to the guess made in
the record based on CPU usage being low). It accumulates CPU
time without the process size increasing. It ran for over 9
minutes of CPU time without change.

Tests using the debugger show that 'eval "[...]\nformat x =\n"'
may not hang but instead cause the next eval ('eval "&DB::save";')
to hang. So it appears to be corrupting something (probably used
by the lexer) that causes the loop fairly quickly, but not quite
right-away.

This is all unpatched Perl5.001m (though newer versions of perl5db.pl
were used in some testing). I don't have a debuggable perl at this
point but if I get one I'll look further.
--
Tye McQueen tye@metronet.com || tye@doober.usu.edu
Nothing is obvious unless you are overlooking something
http://www.metronet.com/~tye/ (scripts, links, nothing fancy)