On 8/14/07, Perrin Harkins <[EMAIL PROTECTED]> wrote:
> On 8/14/07, John Siracusa <[EMAIL PROTECTED]> wrote:
> > Doesn't Apache::DBI just care that $dbh->{AutoCommit} is false at the
> > time it checks in the cleanup handler?
>
> Look further up in the code.  It never pushes the handler unless
> AutoCommit is off.

I looked for that and didn't see it, and still don't see it.  I'm looking here:

if (!$Rollback{$Idx} and Apache->can('push_handlers')) {
    debug(2, "$prefix push PerlCleanupHandler");
    if (MP2) {
        my $s = Apache2::ServerUtil->server;
        $s->push_handlers("PerlCleanupHandler", sub { cleanup($Idx) });
    }
    else {
        Apache->push_handlers("PerlCleanupHandler", sub { cleanup($Idx) });
    }
    # make sure, that the rollback is called only once for every
    # request, even if the script calls connect more than once
    $Rollback{$Idx} = 1;
}

As far as I can tell, $Rollback{$Idx} is not set elsewhere based on
the AutoCommit connect option.  This block seems to be entered once
for every $dbh.  What am I missing?

> Probably a mistake in my opinion.  If others agree, I'll submit a patch to
> change it.

Yeah, I don't think it should care about the connect options, only
about the state of the dbh at the time the cleanup is called.

-John

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Rose-db-object mailing list
Rose-db-object@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rose-db-object

Reply via email to