chenBright commented on PR #2256:
URL: https://github.com/apache/brpc/pull/2256#issuecomment-1565971504

   > > @smbzhang 服务端支持progressive reader的话,好像会走这个分支。
   > > 
https://github.com/apache/brpc/blob/72ed304311ffec746f85bc80d9fd3e0a7938756f/src/brpc/input_messenger.cpp#L317-L322
   > > 
   > > 这时候这个fix会生效吗?
   > 
   > 我没用过服务端progressive功能,只用过客户端读取http chunked消息的功能。所以这块不太熟悉没法给你构造一个demo。 
不过我看brpc逻辑是把消息放到另外的bthread中处理去了,传递的msg也是原生指针。没有通过析构last_msg来处理http消息(调起callmethod),所以这种情况应该不属于我这个case,整个新的bthread调用栈上没有通过析构函数调起Echo函数,也就不会出现栈缺失了
   
   
https://github.com/apache/brpc/blob/72ed304311ffec746f85bc80d9fd3e0a7938756f/src/brpc/input_messenger.cpp#L283-L285
   一次OnNewMessages解出多个协议包,只有最后一个包才通过InputMessageClosure的析构函数调起Echo函数,其他包都是通过 
QueueMessage起协程调起Echo函数。
   
   我验证了一下,如你所说,`整个新的bthread调用栈上没有通过析构函数调起Echo函数,也就不会出现栈缺失了`。
   
   学习了,感谢 @smbzhang 


-- 
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