-
Notifications
You must be signed in to change notification settings - Fork 10.4k
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
failed tests: php_linux_dbg_native:ChannelTest.php #12886
Comments
This seems to be broken 100% of cases. |
@ctiller Looks like this was caused by #12677 (which also caused a few other major breakages) (started at build https://kokoro.corp.google.com/job/grpc/job/ubuntu/job/master/job/grpc_basictests_multilang/408/) |
I see a similar issue for Node on mac also introduced by #12677:
|
I get log like this:
For watch connectivity state test, |
Increasing priority to P0. |
I think this is caused by #12677 . |
Can I get some steps on how to setup a VM and build PHP and run the tests in such a way that I can get gdb to break within C core? |
To install php,
|
it was posted before, but a similar issue is happening for Node too:
|
The php test is:
where inside it, the code related to c
Log is printed in previews comment. |
Does the php command listed also build grpc?
…On Mon, Oct 30, 2017 at 1:08 PM Zhouyihai Ding ***@***.***> wrote:
The php test is:
$this->channel = new Grpc\Channel('localhost:0',
['credentials' => Grpc\ChannelCredentials::createInsecure()]);
$time = new Grpc\Timeval(1000);
$state = $this->channel->watchConnectivityState(1, $time);
$this->assertTrue($state);
where inside it, the code related to c
completion_queue = grpc_completion_queue_create_for_pluck(NULL);
grpc_channel_watch_connectivity_state(channel->wrapper->wrapped,
(grpc_connectivity_state)last_state,
deadline->wrapped, completion_queue,
NULL);
grpc_event event =
grpc_completion_queue_pluck(completion_queue, NULL,
gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
RETURN_BOOL(event.success);
Log is printed in previews comment.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#12886 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AJpudXn1qqKDJhymIEfgSQSE8ni5dD7yks5sxizJgaJpZM4PxK3X>
.
|
It's probably better to post comments inline in the comment thread so they can be seen. I'm still having problems:
|
Sorry, I'll update the guides for php in grpc.io. It install php7 by default now. |
Btw, I took a look at the PHP test and the source codes and it looks like in this particular case it should be pretty easy to come up with a C-only repro: This is the PHP test:
This is the implementation of Channel.watchConnectivityState (written in C actually) grpc/src/php/ext/grpc/channel.c Line 370 in e5bca39
@ZhouyihaiDing, to speed up the fixing process, can you come up with a C-only repro? |
@ZhouyihaiDing actually, looking at what testWatchConnectivityState() is doing, it looks like it's not correct (I might be missing something):
|
@jtattermusch To my understanding, it just want to test whether it works or not.
When last_state = 1 but current states = 0,
From the log I pastes beofre, the C-core API does know that the status changed from Connecting to Idle:
|
@ZhouyihaiDing I think I get what's happening - looks like the test sets a very short timeout of 1ms and that doesn't play well with recent C core's timing changes (C core timing code now has resolution of 1ms). |
Set it to around 250ms can the test can pass in my PC without flaky. |
I think this magic number could have to do with the fact that passing GPR_TIMESPAN as a "timeout" to C-core might be currently broken (according to @ctiller). |
From PR #12760
The text was updated successfully, but these errors were encountered: