Hi Yihao,
Looks like some bug in the completion queue shutdown path. This code has 
changed quite a bit since v1.0. So I recommend upgrading to the recent 
version of grpc.

-Sree

On Friday, September 8, 2017 at 7:41:32 PM UTC-7, yihao yang wrote:
>
> // get channel state first
> I0711 11:31:07.631235663   15477 channel_connectivity.c:53] 
>  grpc_channel_check_connectivity_state(channel=0x21d94b0, try_to_connect=1
> )
>
> // create cq and call grpc_completion_queue_next
> D0711 11:31:07.631243561   15477 connectivity_state.c:92]    CONWATCH: 
> 0x21d95f8 client_channel: get TRANSIENT_FAILURE
> I0711 11:31:07.631251411   15477 init.c:193]                 grpc_init(
> void)
> I0711 11:31:07.631258629   15477 completion_queue.c:139]     
> grpc_completion_queue_create(reserved=(nil))
> I0711 11:31:07.631267808   15477 channel_connectivity.c:196] 
> grpc_channel_watch_connectivity_state(channel=0x21d94b0, 
> last_observed_state=3, deadline=gpr_timespec { tv_sec: 1499797868, tv_nsec
> : 630269237, clock_type: 1 }, cq=0x7f2c3800be60, tag=0x7f2c00001860)
> D0711 11:31:07.631278808   15477 connectivity_state.c:109]   CONWATCH: 
> 0x21d95f8 client_channel: from TRANSIENT_FAILURE [cur=TRANSIENT_FAILURE] 
> notify=0x7f2c000015b8
> I0711 11:31:07.631288664   15477 completion_queue.c:333]     
> grpc_completion_queue_next(cc=0x7f2c3800be60, deadline=gpr_timespec { 
> tv_sec: 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>
>
> // Here inside grpc_completion_queue_next, it blocked for 1 seconds. and 
> then when destroyed the cq, assertoin failed.
> *I0711 **11:31:08.630851834   15477 completion_queue.c:394]     
> RETURN_EVENT[0x7f2c3800be60]: OP_COMPLETE: tag:0x7f2c00001860*
> * ERROR*I0711 11:31:08.630867090   15477 completion_queue.c:561]     
> grpc_completion_queue_destroy(cc=0x7f2c3800be60)
> I0711 11:31:08.630871804   15477 completion_queue.c:541]     
> grpc_completion_queue_shutdown(cc=0x7f2c3800be60)
> D0711 11:31:08.630887317   15467 tcp_client_posix.c:305]     
> CLIENT_CONNECT: ipv6:[::1]:19998: asynchronously connecting
> E0711 11:31:08.630888449   15477 ev_epoll_linux.c:1296]      assertion 
> failed: pollset->polling_island == NULL
>
> Hi, all,
>
> The grpc version is v1.0.0. The scenario is like this: I was using a 
> channel in a TRANSIENT_FAILURE state, and calling 
> channel.WaitStateForConnected in the background.
> But something error happened in the cq, it returns an ERROR event (I don't 
> know the inside logic), and when destroy the cq, an assertion failed.
> I think this may be a bug. Can anyone give me some hint?
>
> Thanks,
> Yihao
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/0c6b6234-ed5b-43f8-b23a-9b90129c1d2b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to