Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Trying to recreate a task after a long running process ends in a race condition in the pdo module (actually any db calls through the pdo module for this task)
When you pass the pdo object to the
_testConnection(\PDO $pdo)
function its actually receives the value of the reference to the pdo object.Setting it to null in the catch statement doesn't set
$this->_pdo = null;
only the local$pdo
variableYou need to pass it a reference to the reference
To test firstly see what you're mysql timeouts are set to using
put a sleep in your test task longer than the largest one (its in seconds)
see a race condition as
$this->_testConnection()
calls$this->_getPdo();
while$this->_pdo
stays not null.... and repeatAt least this is so in php v5.6.32
mh