David, Ivan replied to my ticket. None of this makes any sense to me as I am not that technical. I have a very small site compared to some, and I have a better hosting account than many. I don’t think the issue is that I don’t have a good enough hosting account. Over 1 million people use your plugin, and I’m sure a ton of them are on SiteGround. anyways, here’s what he said:
I would like to share a bit more information that what I said in my post in the www.remarpro.com forum.
You are using a GrowBig hosting account which is hosted in a shared environment. There are certain limitations that apply to this plan (which I am sure, you are aware of) that will stop the execution of a given process if it exceed the execution timeout value.
Following my tests (in an isolated environment, not your account) I noticed that the the process of creating a backup (regardless of where it will be saved) will start many admin-ajax.php execution processes. Some might timeout due to the aforementioned limit.
I am assuming that you are OK with us reproducing the issue, taking into consideration the fact that you shared a step-by-step guide in this ticket.
It is why I tool the liberty of performing several tests on your application.
I logged in your WordPress Dashboard – Settings -> UpdraftPlus Backups -> Settings. It appears that the Google Drive Api is set correctly in your case.
Then, the previously observed admin-ajax.php execution processes were observed. I believe that the developers of the plugin ensured that the backup will be created in batches and will be passed through the execution of the admin-ajax.php file, which will help with such hosting limitations (to some extent) such as the execution time since a new admin-ajax.php execution can be started as a separate process.
During one of these executions, your plugin recorded the following:
1567.637 (5) Free space on disk containing Updraft's temporary directory: 892729.3 MB
1567.639 (5) Backup run: resumption=5, nonce=873657a5b6b6, begun at=1486479613 (1568s ago), job type=backup
1567.640 (5) Scheduling a resumption (6) after 300 seconds (1486481481) in case this run gets aborted
1567.643 (5) Checking if we have a zip executable available
1567.643 (5) Zip engine: found/will use a binary zip: /usr/bin/zip
1567.643 (5) Creation of backups of directories: had begun; will resume
1567.644 (5) Beginning creation of dump of plugins (split every: 400 MB)
1567.646 (5) Terminate: backup_2017-02-07-0800_mydomainname.com_873657a5b6b6-plugins.zip.tmp exists with activity within the last 30 seconds (time_mod=1486481180, time_now=1486481181, diff=1, size=33548.3KB). This likely means that another UpdraftPlus run is at work; so we will exit.
1567.647 (5) Rescheduling resumption 6: moving to 420 seconds from now (1486481601)
This means that the process was restarted and will proceed from where it left off with a timeout of 420 seconds (Rescheduling resumption 6: moving to 420 seconds from now) for the rescheduled event.
After each such log entry, there is a process for the wp-cron.php file which could be how the rescheduling is done.
I expect that a backup can be completed with this setup, however, it is very likely that due to the big number of executions that are done, your hosting can reach another limitation – CPU Seconds/Program Script Executions (which you can check if you click here).
Having said this, I would like to mention that I completed the backup successfully on my end, it should be uploaded in your Google Drive.
(screenshot)
To sum up the information provided until now:
The plugin is very good as it has a procedure to follow if the execution of a given process is terminated
The plugin will perform a lot of admin-ajax.php executions which could lead to issues with some of the limits imposed with our shared hosting plans
The plugin will complete a backup successfully if allowed enough time
As a solution, I can offer you to add the following code in an .htaccess file created in your wp-admin/ directory:
<IfModule mod_dtimeout.c>
<Files admin-ajax.php>
SetEnv DynamicTimeout 300
</Files>
</IfModule>
It should allow more time for the execution of your admin-ajax.php file which should lower the number of times that the process will be terminated.
The only other alternative would be to upgrade your account to a Cloud where such limits will not be imposed by us.
(Of course, please give a chance to the plugin developers to update your post as well)
David, can you shed any light on this? I don’t know what to do.