uperl/Mojolicious-Plugin-TtRenderer

t/deep_recursion.t hangs on *BSD systems

Closed this issue · 4 comments

The test suite of Mojolicious-Plugin-TtRenderer-1.32 hangs on my FreeBSD systems. The hang happens while executing deep_recursion.t. Devel::Trace shows this line as the last one:

/home/cpansand/var/ctps/5160RC0/install/perl-5.16.0-RC0/lib/site_perl/5.16.0/Mojo/Log.pm:66:   flock $handle, LOCK_EX;

This is usually happening on *BSD/Darwin systems if a temporary file created with File::Temp::tempfile() is locked later with flock(). On *BSD/Darwin systems temporary files are created with O_EXLOCK (other operating systems like Linux don't have this flag) and are already locked. To prevent this problem, use File::Temp::tempfile() with EXLOCK => 0.

Regards, Slaven

abh commented

That's from the Mojolicious code rather than in this module, no?

Thanks, I've actually run into that before (and thus should have known better) I should be able to whip up a fix soon.

fixed in 1.33

Confirmed, tests pass now (FreeBSD 9.0, FreeBSD 8.0).