Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-8834

Indirect recursion between `send` and `_send` in libprocess may cause stack overflow.

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      如果某个process while(true)发消息,将导致大量消息缓存在outgoing[socket]里,而在底层由internal::send和internal::_send去执行消息的发送,那么就会出现递归调用:
      _send -> send -> _send ->send -> ... ->_send -> send -> ....

      导致调用栈不断增加,最终栈耗尽发生core dump问题.

      我本地测试,发现当栈层次达到40,000+时发生core dump

      为了解决这个问题,需要修改底层消息发送机制

       

      请关注这个问题,谢谢

       

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            general liwuqi
            Benjamin Mahler Benjamin Mahler
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment