Comments inline. On Thu, Dec 9, 2010 at 2:13 PM, Matt Zagrabelny <mzagr...@d.umn.edu> wrote: > Greetings, > > I've got a bug report, which may be low on the totem pole, but thought > I ought to report nonetheless. > > When using the following code, perl segfaults: > > #!/usr/bin/env perl > > use Jifty::Everything; > BEGIN { Jifty->new() } > > use threads; > > my $use_threads = 1; > > if ($use_threads) { > my $insert_thread = threads->create(\&insert); > $insert_thread->join; > } else { > &insert; > } > > sub insert { > my $u = BTDT::Model::User->new( current_user => > BTDT::CurrentUser->superuser ); > my ( $id, $msg ) = $u->create( > id => 10, > name => 'admin', > ); > print $msg unless ($id); > } > > > If you change the variable $use_threads to false: > my $use_threads = 0; > > the program works. > > The issue does not seem to be with the Jifty::DBI::Handle creation, > the following works (does not segfault): > > #!/usr/bin/env perl > > use Jifty::DBI::Handle; > > use threads; > > my $use_threads = 1; > > if ($use_threads) { > my $insert_thread = threads->create(\&insert); > $insert_thread->join; > } else { > &insert; > } > > sub insert { > my $handle = Jifty::DBI::Handle->new(); > $handle->connect( > driver => 'Pg', > database => 'btdt', > host => 'localhost', > user => '', > password => '' > ); > } > > Any ideas or suggestions?
The segfault seems to come from: Jifty.pm use encoding 'utf8'; Which is not thread safe according to: http://perldoc.perl.org/encoding.html#KNOWN-PROBLEMS -matt _______________________________________________ jifty-devel mailing list jifty-devel@lists.jifty.org http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel