6 messages in com.mysql.lists.perlRe: DBD::mysql fork() problem| From | Sent On | Attachments |
|---|---|---|
| H. Steuer | 15 Sep 2003 04:41 | |
| Ulrich Borchers | 15 Sep 2003 05:15 | |
| H. Steuer | 15 Sep 2003 05:20 | |
| Jochen Wiedmann | 15 Sep 2003 05:33 | |
| Ulrich Borchers | 15 Sep 2003 05:40 | |
| Rudy Lippan | 15 Sep 2003 07:29 |
| Subject: | Re: DBD::mysql fork() problem![]() |
|---|---|
| From: | Rudy Lippan (rlip...@remotelinux.com) |
| Date: | 09/15/2003 07:29:24 AM |
| List: | com.mysql.lists.perl |
On Mon, 15 Sep 2003, H. Steuer wrote:
hello guys,
after upgrading DBD::mysql from 2.1026 to 2.9002 i ran into the problem that after a fork(), the child looses connection to the database. i've read the discussion on this list about multiple access on a single db handle, but this is how fork() is working. due to internal issues, i cant connect to the database AFTER the fork(). i dont see why this
This behaviour was not changed, per se; however, It might be that the chage to the auto-reconnect behaviour is exposing a bug in your code. In 2.1026 if DBD::mysql got a "Server has goin away" error message, DBD::mysql would just go and reconnect to the database for you and basically ignore the error. The problem with this is that any locks would be lost and the application would not know it.
behaviour was changed, as if one just lets the parent die to daemonize a process, things are fine. its how fork() works and if one would not like
Well did you set InactiveDestroy? Because if you do not, when that connection goes out of scope in the parrent, it will call the DESTROY method which will disconnect from the server.
And FWIW, I have seen weird behaviour when 2 processes try to access a shared $dbh concurrently.
Rudy




