-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Increase script sleep in FPM process idle test #7561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Looks like it passes on azure now (including macos). There's a failure on Travis:
|
d936dcf
to
0c1ba54
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's give it a try ... will have to keep an eye on how flaky it will be.
0c1ba54
to
76f9520
Compare
After rebasing, it still seems a bit flaky as Travis failed again for this test with
Will take a look a bit more into it and play with the timeout in fcgi.inc that might need increasing. |
76f9520
to
d77b3c6
Compare
d77b3c6
to
6019922
Compare
It seems like this was merged already as 2f8407f but the test is still flaky. I see #7690 spuriously failed (it included that commit) as https://dev.azure.com/phpazuredevops/PHP/_build/results?buildId=21824&view=logs&jobId=0d3730b8-0d59-574b-ab4a-5e189a74d53b&j=0d3730b8-0d59-574b-ab4a-5e189a74d53b&t=492e5677-f211-533f-274d-3a4af39d4cce. This test case seems to be a common cause of spurious failures? Does removing it from CI runs make sense if it times out, even with a 7 second read timeout It looks like sapi/fpm/tests/tester.inc is trying to listen on a ipv4 TCP port on localhost. Could it be breaking if it's running in parallel with another fpm test which is already listening on the same port? (Would --CONFLICTS-- help?) // Each test may specify a list of conflict keys. While a test that conflicts with
// key K is running, no other test that conflicts with K may run. Conflict keys are
// specified either in the --CONFLICTS-- section, or CONFLICTS file inside a directory.
$dirConflictsWith = [];
$fileConflictsWith = [];
$sequentialTests = [];
foreach ($test_files as $i => $file) {
$contents = file_get_contents($file);
if (preg_match('/^--CONFLICTS--(.+?)^--/ms', $contents, $matches)) { public function getPort(string $type = 'ip', $pool = 'default', $useAsId = false)
{
if ($type === 'uds' && !$useAsId) {
return -1;
}
if (isset($this->ports['values'][$pool])) {
return $this->ports['values'][$pool];
}
$port = ($this->ports['last'] ?? 9000 + PHP_INT_SIZE - 1) + 1;
$this->ports['values'][$pool] = $this->ports['last'] = $port;
return $port;
} (Or if that isn't why, returning early if
|
See discussion on php#7561 fpm tests have been spuriously failing in CI, with 2 parallel workers on 2 CPUs. `make test TESTS='sapi/fpm/tests -j8'` fails locally for me without this change They're trying to listen on IPv4 on 127.0.0.1 on the same port as other tests (e.g. helper getPort()=9008 on 64-bit architecture (PHP_INT_SIZE=8)). So tests will fail if 1. php-fpm is still running from another test in parallel. 2. a request is sent to a server for a different test.
Yes I merged it already and forgot to close this so closing now. It's not because of conflicts because the error would be about port being already used. This timeout doesn't make much sense to me as those 7s should cover it. I will try to increase it to 10s and see if it helps. If it doesn't and I don't get another idea I will probably disable it in pipeline as the used containers are just too weak (resource limited and slow) to test all the things in FPM. |
At the end I decided to disable the test in the pipeline as I have been playing with it locally and noticed that |
No description provided.