VirtueMart Forum

VirtueMart 2 + 3 + 4 => Plugins: Payment, Shipment and others => Topic started by: biltong on September 25, 2020, 17:08:42 PM

Title: Checkout page "Request Timeout" error
Post by: biltong on September 25, 2020, 17:08:42 PM
Hi,

URL of site with problem: https://www.trendco.co.uk/index.php?option=com_virtuemart&view=cart

When clicking button 'Confirm & Pay', the ajax spinner image is displayed for a few minutes and then the page refreshes with server error message:



Request Timeout
This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase 'Connection Timeout'.



The expected result should be that the page refreshes displaying the PayPal (Hosted) payment page.

Versions: VirtueMart 3.8.4 10335, Joomla 3.9.21, PHP 7.3.22, mysql 10.3.24-MariaDB-log-cll-lve

I have disabed the VirtuePlanet One Page Checkout plugin and the same problem occurs.

The Order record (see attached screenshot) is created and viewing it in the backend, it contains strange information with about 40 invoice numbers, no Billing details and no Ship To details. So it look like there is a corruption of VirtueMart somewhere.

Any advice in resolving this would be greatly appreciated!
Title: Re: Checkout page "Request Timeout" error
Post by: biltong on September 25, 2020, 18:56:13 PM
To see if there is maybe a database corruption causing the problem, I have attempted to 'Optimise Database' using the utility on VirtueMart->Tools & Migration->DB Tools->Optimise Database page and this times out, with this error message on a white page:



Request Timeout

This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase 'Connection Timeout'.

Title: Re: Checkout page "Request Timeout" error
Post by: biltong on September 26, 2020, 16:00:17 PM
Still searching for a fix for this  :'(

Looking at the RAW access logs, there's 9 minutes between these two (apparently related) events where after clicking Confirm & Pay the spinner is displayed for several minutes until the server returns Request Timeout error and the PayPal payment page is not displayed:

1. Click Confirm & Pay on the checkout page

82.19.195.80 - - [25/Sep/2020:15:41:28 +0100] "POST /index.php?option=com_virtuemart&view=cart HTTP/2" 500 296 "https://www.trendco.co.uk/index.php?option=com_virtuemart&view=cart" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"

2. IPN notification received from PayPal

173.0.81.1 - - [25/Sep/2020:15:50:13 +0100] "POST /index.php?option=com_virtuemart&view=pluginresponse&task=pluginnotification&tmpl=component&lang= HTTP/1.1" 200 14048 "-" "PayPal IPN ( https://www.paypal.com/ipn )"

Does anyone know what happens in between these two events in the code that could be causing the process to 'hang' / Request timeout on the front-end.
Title: Re: Checkout page "Request Timeout" error
Post by: biltong on October 06, 2020, 12:57:09 PM
The cause of this problem was that there were a couple of locked mysql processes which in turn were causing other mysql processes to get stuck and this was then causing the number of user connections to exceed the max value. Killing these processes resolved the poblem.
Title: Re: Checkout page "Request Timeout" error
Post by: pinochico on October 06, 2020, 13:47:30 PM
QuoteKilling these processes resolved the poblem.

The classic misconception of the developer: solving the consequences instead of finding the problem and solving the cause.
It will work until mysql tables are locked again.