Skip to main content
added 199 characters in body
Source Link
Fabian Blechschmidt
  • 35.4k
  • 8
  • 75
  • 182

I'm not sure about the following. I describe what I observe. I didn't debug it, because it went away after raising the memory_limit to 256MB (and there are still a lot of open tickets here :-()

We had the problem, that a memory_limit fatal error occured, this errors was "catched" by

\Varien_Db_Adapter_Pdo_Mysql::__destruct
public function __destruct()
{
    if ($this->_transactionLevel > 0) {
        trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);
    }
}

and because the transactionLevel > 0 the error was triggered, this error can be catched(?)... whatever...

It ended here in one of the ifs I think:

public function successAction()
{
    $session = $this->getOnepage()->getCheckout();
    if (!$session->getLastSuccessQuoteId()) {
        $this->_redirect('checkout/cart');
        return;
    }

    $lastQuoteId = $session->getLastQuoteId();
    $lastOrderId = $session->getLastOrderId();
    $lastRecurringProfiles = $session->getLastRecurringProfileIds();
    if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
        $this->_redirect('checkout/cart');
        return;
    }

In the end the order was written, the mail was send, but the cart was not cleared.

Turn on debug mode, then you see hopefully the

trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);

And as I said, in our case, this was triggered by a low memory_limit.

We had the problem, that a memory_limit fatal error occured, this errors was "catched" by

\Varien_Db_Adapter_Pdo_Mysql::__destruct
public function __destruct()
{
    if ($this->_transactionLevel > 0) {
        trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);
    }
}

and because the transactionLevel > 0 the error was triggered, this error can be catched(?)... whatever...

It ended here in one of the ifs I think:

public function successAction()
{
    $session = $this->getOnepage()->getCheckout();
    if (!$session->getLastSuccessQuoteId()) {
        $this->_redirect('checkout/cart');
        return;
    }

    $lastQuoteId = $session->getLastQuoteId();
    $lastOrderId = $session->getLastOrderId();
    $lastRecurringProfiles = $session->getLastRecurringProfileIds();
    if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
        $this->_redirect('checkout/cart');
        return;
    }

In the end the order was written, the mail was send, but the cart was not cleared.

Turn on debug mode, then you see hopefully the

trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);

And as I said, in our case, this was triggered by a low memory_limit.

I'm not sure about the following. I describe what I observe. I didn't debug it, because it went away after raising the memory_limit to 256MB (and there are still a lot of open tickets here :-()

We had the problem, that a memory_limit fatal error occured, this errors was "catched" by

\Varien_Db_Adapter_Pdo_Mysql::__destruct
public function __destruct()
{
    if ($this->_transactionLevel > 0) {
        trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);
    }
}

and because the transactionLevel > 0 the error was triggered, this error can be catched(?)... whatever...

It ended here in one of the ifs I think:

public function successAction()
{
    $session = $this->getOnepage()->getCheckout();
    if (!$session->getLastSuccessQuoteId()) {
        $this->_redirect('checkout/cart');
        return;
    }

    $lastQuoteId = $session->getLastQuoteId();
    $lastOrderId = $session->getLastOrderId();
    $lastRecurringProfiles = $session->getLastRecurringProfileIds();
    if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
        $this->_redirect('checkout/cart');
        return;
    }

In the end the order was written, the mail was send, but the cart was not cleared.

Turn on debug mode, then you see hopefully the

trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);

And as I said, in our case, this was triggered by a low memory_limit.

Source Link
Fabian Blechschmidt
  • 35.4k
  • 8
  • 75
  • 182

We had the problem, that a memory_limit fatal error occured, this errors was "catched" by

\Varien_Db_Adapter_Pdo_Mysql::__destruct
public function __destruct()
{
    if ($this->_transactionLevel > 0) {
        trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);
    }
}

and because the transactionLevel > 0 the error was triggered, this error can be catched(?)... whatever...

It ended here in one of the ifs I think:

public function successAction()
{
    $session = $this->getOnepage()->getCheckout();
    if (!$session->getLastSuccessQuoteId()) {
        $this->_redirect('checkout/cart');
        return;
    }

    $lastQuoteId = $session->getLastQuoteId();
    $lastOrderId = $session->getLastOrderId();
    $lastRecurringProfiles = $session->getLastRecurringProfileIds();
    if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
        $this->_redirect('checkout/cart');
        return;
    }

In the end the order was written, the mail was send, but the cart was not cleared.

Turn on debug mode, then you see hopefully the

trigger_error('Some transactions have not been committed or rolled back', E_USER_ERROR);

And as I said, in our case, this was triggered by a low memory_limit.