Hi, Sree If I didn't drain the CQ. If it is possible to behave like that?
Thanks, Yihao On Tuesday, September 19, 2017 at 2:32:08 PM UTC-7, Sree Kuchibhotla wrote: > > Thanks for the info Yihao. This does look like a bug but I am not sure > what might be happening. > > We did fix a bug in completion queue shutdown path ( > https://github.com/grpc/grpc/pull/11703) but that is in version 1.6.0 and > later *- *Would you mind upgrading to the latest release *1.6.1 *and > retry your test ? > > thanks, > Sree > > On Sat, Sep 16, 2017 at 4:27 PM, yihao yang <[email protected] > <javascript:>> wrote: > >> Hi, Sree, >> >> I do not have a minimum code snippet that can reproduce (and I only >> encountered the assertion once). I can only discribe the scenario: >> 1. I am using bidirectional async stream to maintain the heartbeat >> between server and client. >> 2. The assertion is in client side exiting phase. >> 3. The client stream will periodically send msg to server (around 500ms a >> msg). The test case will first try cancel client stream and when there is >> no inflight-read/write, it will try to shutdown the client CQ. (Notice at >> that time the server stream and CQ are still running) >> >> In the log above, the ThreadId 14901 is using to process the server >> completion queue; 14886 is using to process the client completion queue. >> >> Hope you can get some information from my description. >> >> Thanks, >> Yihao >> >> 在 2017年9月15日星期五 UTC-7上午7:12:23,Sree Kuchibhotla写道: >>> >>> It does look like a bug in the completion queue shutdown path. Can you >>> share the test program you have been using to reproduce this ? >>> >>> thanks, >>> Sree >>> >>> On Thu, Sep 14, 2017 at 6:23 PM, yihao yang <[email protected]> wrote: >>> >>>> I0914 12:05:40.258058747 14907 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x7fa87c004af0, deadline=gpr_timespec { >>>> tv_sec: 10, tv_nsec: 0, clock_type: 3 }, reserved=(nil)) >>>> I0914 12:05:40.262040844 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: QUEUE_TIMEOUT >>>> I0914 12:05:40.262107598 14901 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fca250, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 362102878, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.262387036 14886 completion_queue.c:861] >>>> RETURN_EVENT[0x1fd21e0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.262416496 14886 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fd21e0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 362410478, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.288670933 8291 completion_queue.c:861] >>>> RETURN_EVENT[0x1fc20c0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.288740234 8291 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fc20c0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 388734668, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.362347155 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: QUEUE_TIMEOUT >>>> I0914 12:05:40.362500837 14901 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fca250, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 462491875, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.362647536 14886 completion_queue.c:861] >>>> RETURN_EVENT[0x1fd21e0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.362678953 14886 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fd21e0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 462672886, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.388942072 8291 completion_queue.c:861] >>>> RETURN_EVENT[0x1fc20c0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.389056726 8291 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fc20c0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 489047123, clock_type: 1 }, reserved=(nil)) >>>> D0914 12:05:40.392114240 14901 connectivity_state.c:135] CONWATCH: >>>> 0x7fa80c01eed8 server_transport: from IDLE [cur=READY] >>>> notify=0x7fa80c01a138 >>>> D0914 12:05:40.392180813 14901 connectivity_state.c:135] CONWATCH: >>>> 0x7fa80c01eed8 server_transport: from READY [cur=READY] >>>> notify=0x7fa80c01a138 >>>> I0914 12:05:40.462920251 14886 completion_queue.c:861] >>>> RETURN_EVENT[0x1fd21e0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.463057779 14886 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fd21e0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 563049680, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.463475112 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: QUEUE_TIMEOUT >>>> I0914 12:05:40.463502256 14901 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fca250, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 563497963, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.489336198 8291 completion_queue.c:861] >>>> RETURN_EVENT[0x1fc20c0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.489426090 8291 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fc20c0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 589417977, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.563312610 14886 completion_queue.c:861] >>>> RETURN_EVENT[0x1fd21e0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.563392795 14886 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fd21e0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 663385808, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.563684056 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: QUEUE_TIMEOUT >>>> I0914 12:05:40.563706730 14901 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fca250, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 663702959, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.589633763 8291 completion_queue.c:861] >>>> RETURN_EVENT[0x1fc20c0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.589719300 8291 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fc20c0, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 689710645, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.663776 14906 single_thread_worker.cpp:84] >>>> SingleThreadWorker stop: HeartbeatClient >>>> >>>> // stop bidirectional stream >>>> I0914 12:05:40.663796024 8267 call.c:583] >>>> grpc_call_cancel(call=0x1fdb758, reserved=(nil)) >>>> I0914 12:05:40.664022389 8267 client_channel.c:1300] >>>> OP[client-channel:0x1fdbe10]: [UNCOVERED] CANCEL:"Cancelled" >>>> I0914 12:05:40.664053075 8267 http_client_filter.c:435] >>>> OP[http-client:0x1fe0900]: [UNCOVERED] CANCEL:"Cancelled" >>>> I0914 12:05:40.664066269 8267 connected_channel.c:70] >>>> OP[connected:0x1fe0930]: [UNCOVERED] CANCEL:"Cancelled" >>>> I0914 12:05:40.664119609 8267 completion_queue.c:564] >>>> cq_end_op_for_next(exec_ctx=0x7fffc824c4b0, cc=0x1fd21e0, tag=0x1fdc078, >>>> error="No Error", done=0x552280, done_arg=0x1fe1778, storage=0x1fe1780) >>>> I0914 12:05:40.664163094 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: QUEUE_TIMEOUT >>>> I0914 12:05:40.664193123 14901 completion_queue.c:764] >>>> grpc_completion_queue_next(cc=0x1fca250, deadline=gpr_timespec { tv_sec: >>>> 1505415940, tv_nsec: 764188067, clock_type: 1 }, reserved=(nil)) >>>> I0914 12:05:40.664274513 14901 completion_queue.c:564] >>>> cq_end_op_for_next(exec_ctx=0x7fa86f7fdb80, cc=0x1fca250, >>>> tag=0x7fa87c01d138, error="No Error", done=0x552280, >>>> done_arg=0x7fa80c010f58, storage=0x7fa80c010f60) >>>> D0914 12:05:40.664341644 14901 call.c:706] >>>> get_final_status SVR >>>> D0914 12:05:40.664383484 14901 call.c:709] 1: >>>> {"created":"@1505415940.664334949","description":"Error received from >>>> peer","file":"src/core/lib/surface/call.c","file_line":955,"grpc_message":"Received >>>> >>>> RST_STREAM with error code 8","grpc_status":1} >>>> I0914 12:05:40.664424456 14901 completion_queue.c:564] >>>> cq_end_op_for_next(exec_ctx=0x7fa86f7fdb80, cc=0x1fca250, >>>> tag=0x7fa80c005dc0, error="No Error", done=0x552280, >>>> done_arg=0x7fa80c010e88, storage=0x7fa80c010e90) >>>> >>>> I0914 12:05:40.664525623 14901 completion_queue.c:861] >>>> RETURN_EVENT[0x1fca250]: OP_COMPLETE: tag:0x7fa87c01d138 OK >>>> I0914 12:05:40.664557682 14901 call.c:634] >>>> grpc_call_cancel_with_status(c=0x7fa80c00f7f8, status=1, >>>> description=Cancelled on the server side, reserved=(nil)) >>>> >>>> >>>> // start to shutdown CQ >>>> I0914 12:05:40.664123966 14886 completion_queue.c:861] >>>> RETURN_EVENT[0x1fd21e0]: QUEUE_TIMEOUT >>>> I0914 12:05:40.664660 14886 completion_queue_manager.cpp:103] Client >>>> CompletionQueue (0x1fd6670) quit. >>>> I0914 12:05:40.664697968 8267 completion_queue.c:1086] >>>> grpc_completion_queue_shutdown(cc=0x1fd21e0) >>>> I0914 12:05:40.664711547 8267 completion_queue.c:1105] >>>> grpc_completion_queue_destroy(cc=0x1fd21e0) >>>> I0914 12:05:40.664717709 8267 completion_queue.c:1086] >>>> grpc_completion_queue_shutdown(cc=0x1fd21e0) >>>> E0914 12:05:40.664723704 8267 completion_queue.c:1112] assertion >>>> failed: cq_event_queue_num_items(&cc->data.queue) == 0 >>>> >>>> Hi, all >>>> >>>> When testing upgradation of the grpc to version 1.4.2. I encountered >>>> assertion in CQ shutdown. 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/32b0826a-ea6f-4188-85d8-1435c134f0ab%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/grpc-io/32b0826a-ea6f-4188-85d8-1435c134f0ab%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> 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/a63b6995-596f-4426-a137-bd130683698a%40googlegroups.com >> >> <https://groups.google.com/d/msgid/grpc-io/a63b6995-596f-4426-a137-bd130683698a%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/91e10b93-6d62-4944-9f27-6a2a1e59a6c2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
