PAYONE-GmbH / magento-1

PAYONE Payment Extension for Magento 1
22 stars 41 forks source link

Cron error and wrong status #434

Closed dbachmann closed 1 month ago

dbachmann commented 4 years ago

Hello,

since 2 days a customer has some problems with payone. He gets the following error when the cron is executed:

Cron error while executing payone_core_cronjob_transactionstatus_process:

exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (id='14472')' at line 1' in /html/magento/lib/Zend/Db/Statement/Pdo.php:228 Stack trace:

0 /html/magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)

1 /html/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)

2 /html/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)

3 /html/magento/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)

4 /html/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_AdapterAbstract->query('UPDATE `payone...', Array)

5 /html/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_PdoAbstract->query('UPDATE `payone...', Array)

6 /html/magento/lib/Zend/Db/Adapter/Abstract.php(635): Varien_Db_Adapter_PdoMysql->query('UPDATE `payone...', Array)

7 /html/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(433): Zend_Db_Adapter_Abstract->update('payone_protocol...', Array, 'id='14472'')

8 /html/magento/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

9 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(205): Mage_Core_Model_Abstract->save()

10 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(74): Payone_Core_Model_Service_TransactionStatus_Execute->execute(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

11 /html/magento/app/code/community/Payone/Core/Model/Cronjob/TransactionStatus/Worker.php(49): Payone_Core_Model_Service_TransactionStatus_Execute->executePending()

12 [internal function]: Payone_Core_Model_Cronjob_TransactionStatus_Worker->execute(Object(Aoe_Scheduler_Model_Schedule))

13 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(196): call_user_func_array(Array, Array)

14 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(582): Aoe_Scheduler_Model_Schedule->runNow(true)

15 /html/magento/app/code/community/Aoe/Scheduler/Model/Observer.php(39): Aoe_Scheduler_Model_Schedule->process()

16 /html/magento/app/code/core/Mage/Core/Model/App.php(1374): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer))

17 /html/magento/app/code/core/Mage/Core/Model/App.php(1353): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer))

18 /html/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('default', Array)

19 /html/magento/cron.php(83): Mage::dispatchEvent('default')

20 {main}

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (id='14472')' at line 1, query was: UPDATE payone_protocol_transactionstatus SET WHERE (id='14472')' in /html/magento/lib/Zend/Db/Statement/Pdo.php:235 Stack trace:

0 /html/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)

1 /html/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)

2 /html/magento/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)

3 /html/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_AdapterAbstract->query('UPDATE `payone...', Array)

4 /html/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_PdoAbstract->query('UPDATE `payone...', Array)

5 /html/magento/lib/Zend/Db/Adapter/Abstract.php(635): Varien_Db_Adapter_PdoMysql->query('UPDATE `payone...', Array)

6 /html/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(433): Zend_Db_Adapter_Abstract->update('payone_protocol...', Array, 'id='14472'')

7 /html/magento/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

8 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(205): Mage_Core_Model_Abstract->save()

9 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(74): Payone_Core_Model_Service_TransactionStatus_Execute->execute(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

10 /html/magento/app/code/community/Payone/Core/Model/Cronjob/TransactionStatus/Worker.php(49): Payone_Core_Model_Service_TransactionStatus_Execute->executePending()

11 [internal function]: Payone_Core_Model_Cronjob_TransactionStatus_Worker->execute(Object(Aoe_Scheduler_Model_Schedule))

12 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(196): call_user_func_array(Array, Array)

13 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(582): Aoe_Scheduler_Model_Schedule->runNow(true)

14 /html/magento/app/code/community/Aoe/Scheduler/Model/Observer.php(39): Aoe_Scheduler_Model_Schedule->process()

15 /html/magento/app/code/core/Mage/Core/Model/App.php(1374): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer))

16 /html/magento/app/code/core/Mage/Core/Model/App.php(1353): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer))

17 /html/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('default', Array)

18 /html/magento/cron.php(83): Mage::dispatchEvent('default')

19 {main}

`In the magento backend the order is set as "pending" and the transaction has the status "redirect". But my customer received the money.

After that I've updated the extension to the latest version from github. Magento 1 was updated to the latest version two weeks ago.

Any ideas?

fjbender commented 4 years ago

Hi,

does this only affect one particular transaction, or are multiple transactions affected? Only one payment method, or various? Which versions of Magento and the extension were you running when the error occurred? Now you are running the latest versions?

Additionally, could you send me the TXID of one affected transaction to integrations@payone.com?

Thanks Florian

dbachmann commented 4 years ago

There are several transactions with creditcard and sofortüberweisung which are not processed right. Magento runs at 1.9.4.5 and the extension runs at 4.6.0. I'll send you the requested ids.

fjbender commented 4 years ago

Thanks for sending over the IDs. From our logs everything looks well. So we'll need to dig into Magento.

Is there more information in die payone_cron.log file?

dbachmann commented 4 years ago

The cron.log looks fine. There are no errors or any other issues. Even the magento cron.log looks good. It just says the following from time to time

2019-09-25T08:41:24+00:00 DEBUG (7): Pending schedule for "payone_core_cronjob_transactionstatus_process" at "2019-09-25 08:45" already exists 1 times. Skipping.

Today I've got another mail from my customer with the following error

Cron error while executing payone_core_cronjob_transactionstatus_process:

exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (id='14482')' at line 1' in /html/magento/lib/Zend/Db/Statement/Pdo.php:228 Stack trace:

0 /html/magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)

1 /html/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)

2 /html/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)

3 /html/magento/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)

4 /html/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_AdapterAbstract->query('UPDATE `payone...', Array)

5 /html/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_PdoAbstract->query('UPDATE `payone...', Array)

6 /html/magento/lib/Zend/Db/Adapter/Abstract.php(635): Varien_Db_Adapter_PdoMysql->query('UPDATE `payone...', Array)

7 /html/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(433): Zend_Db_Adapter_Abstract->update('payone_protocol...', Array, 'id='14482'')

8 /html/magento/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

9 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(205): Mage_Core_Model_Abstract->save()

10 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(74): Payone_Core_Model_Service_TransactionStatus_Execute->execute(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

11 /html/magento/app/code/community/Payone/Core/Model/Cronjob/TransactionStatus/Worker.php(49): Payone_Core_Model_Service_TransactionStatus_Execute->executePending()

12 [internal function]: Payone_Core_Model_Cronjob_TransactionStatus_Worker->execute(Object(Aoe_Scheduler_Model_Schedule))

13 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(196): call_user_func_array(Array, Array)

14 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(582): Aoe_Scheduler_Model_Schedule->runNow(true)

15 /html/magento/app/code/community/Aoe/Scheduler/Model/Observer.php(39): Aoe_Scheduler_Model_Schedule->process()

16 /html/magento/app/code/core/Mage/Core/Model/App.php(1374): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer))

17 /html/magento/app/code/core/Mage/Core/Model/App.php(1353): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer))

18 /html/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('default', Array)

19 /html/magento/cron.php(83): Mage::dispatchEvent('default')

20 {main}

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (id='14482')' at line 1, query was: UPDATE payone_protocol_transactionstatus SET WHERE (id='14482')' in /html/magento/lib/Zend/Db/Statement/Pdo.php:235 Stack trace:

0 /html/magento/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)

1 /html/magento/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)

2 /html/magento/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)

3 /html/magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_AdapterAbstract->query('UPDATE `payone...', Array)

4 /html/magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(504): Zend_Db_Adapter_PdoAbstract->query('UPDATE `payone...', Array)

5 /html/magento/lib/Zend/Db/Adapter/Abstract.php(635): Varien_Db_Adapter_PdoMysql->query('UPDATE `payone...', Array)

6 /html/magento/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(433): Zend_Db_Adapter_Abstract->update('payone_protocol...', Array, 'id='14482'')

7 /html/magento/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Resource_Db_Abstract->save(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

8 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(205): Mage_Core_Model_Abstract->save()

9 /html/magento/app/code/community/Payone/Core/Model/Service/TransactionStatus/Execute.php(74): Payone_Core_Model_Service_TransactionStatus_Execute->execute(Object(Payone_Core_Model_Domain_Protocol_TransactionStatus))

10 /html/magento/app/code/community/Payone/Core/Model/Cronjob/TransactionStatus/Worker.php(49): Payone_Core_Model_Service_TransactionStatus_Execute->executePending()

11 [internal function]: Payone_Core_Model_Cronjob_TransactionStatus_Worker->execute(Object(Aoe_Scheduler_Model_Schedule))

12 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(196): call_user_func_array(Array, Array)

13 /html/magento/app/code/community/Aoe/Scheduler/Model/Schedule.php(582): Aoe_Scheduler_Model_Schedule->runNow(true)

14 /html/magento/app/code/community/Aoe/Scheduler/Model/Observer.php(39): Aoe_Scheduler_Model_Schedule->process()

15 /html/magento/app/code/core/Mage/Core/Model/App.php(1374): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer))

16 /html/magento/app/code/core/Mage/Core/Model/App.php(1353): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer))

17 /html/magento/app/Mage.php(451): Mage_Core_Model_App->dispatchEvent('default', Array)

18 /html/magento/cron.php(83): Mage::dispatchEvent('default')

19 {main}

It seems to me that a field in the query is empty.

fjbender commented 4 years ago

Thank you for the additional info. I have given this issue to the development team to analyze.

dbachmann commented 4 years ago

Great, thank you.