[dancer-users] Dancer app in production on Starman : Dancer::Plugin::Database Child process cannot use database handle created in parent

Scott Penrose scottp at dd.com.au
Mon Feb 10 22:29:23 GMT 2014


Without any actual internal knowledge, my one guess would be forking.

If you make a database connection into a variable (e.g. database, or $dbh) then you fork, then you can no longer access that connection.

There is a way to share a pool of connections (in apache aka Apache::DBI) or I used to use PerChild directive on Apache to make a connection.

Now it should all be handled, but maybe it isn’t?

Scott

On 11 Feb 2014, at 9:23 am, Anthony Milan <anthony.milan at laposte.net> wrote:

> Le 10/02/2014 22:57, Anthony Milan a écrit :
>> Hi,
>> 
>> I tried to deploy my little app with Starman:
>> plackup -E deployment -s Starman  -p 5001 --workers=2  -a bin/app.pl
>> 
>> I had this error:
>> Child process cannot use database handle created in parent
>> 
>> I used Dancer::Plugin::Database to manage database
>> 
>> In this thread:
>> http://lists.preshweb.co.uk/pipermail/dancer-users/2011-July/001681.html
>> I read that Dancer::Plugin::Database  ensure that handles are not
>> shared between processes/threads.
>> 
>> Most probably, I do something wrong :(
> 
> I googled around starman and DBI and I execute
> Starman without plackup.
> 
> starman  -p 5000  --workers=2  -a ../bin/app.pl
> 
> It seems to work. Any idea?
> 
> Thanks
> -- 
> Anthony Milan
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users



More information about the dancer-users mailing list