Skip to content

Conversation

@m-hume
Copy link
Contributor

@m-hume m-hume commented Nov 4, 2017

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 variable
You need to pass it a reference to the reference

To test firstly see what you're mysql timeouts are set to using

SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';

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 repeat

At least this is so in php v5.6.32
mh

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` variable
You need to pass it a reference to the reference

To test firstly see what you're mysql timeouts are set to using
```
SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';
```
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 repeat

At least this is so in php v5.6.32
mh
@coveralls
Copy link

coveralls commented Nov 4, 2017

Coverage Status

Coverage remained the same at 56.604% when pulling 4ecb581 on m-hume:patch-3 into 144777b on anorgan:master.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage remained the same at 56.604% when pulling 4ecb581 on m-hume:patch-3 into 144777b on anorgan:master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants