chenBright commented on issue #3132:
URL: https://github.com/apache/brpc/issues/3132#issuecomment-3545775578

   >  [E1008]Reached timeout=60000ms @Socket{id=13 fd=1160 addr=xxx:xx} 
(0x0x7f957c964ec0) rdma info={rdma_state=ON, handshake_state=ESTABLISHED, 
rdma_remote_rq_window_size=63, rdma_sq_window_size=0, 
rdma_local_window_capacity=125, rdma_remote_window_capacity=125, 
rdma_sbuf_head=57, rdma_sbuf_tail=120, rdma_rbuf_head=36, rdma_unacked_rq_wr=0, 
rdma_received_ack=0, rdma_unsolicited_sent=0, rdma_unsignaled_sq_wr=1, 
rdma_new_rq_wrs=0, }
   
   
我们使用rdma_sq_window_size来表示本地SQ大小,遇到这样的case:rdma_sq_window_size是0,似乎是一直没poll到IBV_WC_SEND
 WC。超时后重试多次也还是超时,此时数据已经发不出去了。
   
   原因应该是:solicited_only=1时,IBV_WC_SEND WC不会生成CQE。如果没有IBV_WC_RECV CEQ触发comp 
channel事件,就没法poll到IBV_WC_SEND WC,更新rdma_sq_window_size。
   
   我们验证了以下两种方案可以解决这个问题:
   1. solicited_only=0
   2. 将CQ拆成send CQ(solicited_only=0)和recv CQ(solicited_only=1)。
   
   @legionxiong 
提到https://github.com/apache/brpc/pull/3145#issuecomment-3544927795 
使用一个CQ即可。那在solicited_only=1时,怎么感知IBV_WC_SEND WC的生成呢?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to