面向 Nack 的可靠组播 (NORM)

发布于 2024-11-30 01:02:40 字数 4182 浏览 2 评论 0原文

我有一个关于“面向 Nack 的可靠多播”(NORM) 的问题。有时,接收器会出现以下堆栈跟踪段错误:

2011/08/16 11:38:55 - signals.cpp:73: Segmentation Fault!
2011/08/16 11:38:55 - signals.cpp:74: PID = 467
2011/08/16 11:38:55 - signals.cpp:75: info.si_signo = 11
2011/08/16 11:38:55 - signals.cpp:76: info.si_errno = 0
2011/08/16 11:38:55 - signals.cpp:78: info.si_code  = 1 [SEGV_MAPERR]
2011/08/16 11:38:55 - signals.cpp:83: info.si_addr  = 0x1f51
2011/08/16 11:38:55 - signals.cpp:159: reg[00] = 0xe7b6c70816994fb2
2011/08/16 11:38:55 - signals.cpp:159: reg[01] = 0xb6c70868e94f1391
2011/08/16 11:38:55 - signals.cpp:159: reg[02] = 0x0000003fa5be8121
2011/08/16 11:38:55 - signals.cpp:159: reg[03] = 0x0000000000000000
2011/08/16 11:38:55 - signals.cpp:159: reg[04] = 0x00000000102c1e10
2011/08/16 11:38:55 - signals.cpp:159: reg[05] = 0x0000000000000170
2011/08/16 11:38:55 - signals.cpp:159: reg[06] = 0x000000001020ae20
2011/08/16 11:38:55 - signals.cpp:159: reg[07] = 0x0000000000000002
2011/08/16 11:38:55 - signals.cpp:159: reg[08] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[09] = 0x0000000044367b8c
2011/08/16 11:38:55 - signals.cpp:159: reg[10] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:159: reg[11] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[12] = 0x00000000000000ea
2011/08/16 11:38:55 - signals.cpp:159: reg[13] = 0x00000000102c1e80
2011/08/16 11:38:55 - signals.cpp:159: reg[14] = 0x00000000000001ea
2011/08/16 11:38:55 - signals.cpp:159: reg[15] = 0x0000000044367b40
2011/08/16 11:38:55 - signals.cpp:159: reg[16] = 0x0000003ce5a53f52
2011/08/16 11:38:55 - signals.cpp:159: reg[17] = 0x0000000000010202
2011/08/16 11:38:55 - signals.cpp:159: reg[18] = 0x0000000000000033
2011/08/16 11:38:55 - signals.cpp:159: reg[19] = 0x0000000000000004
2011/08/16 11:38:55 - signals.cpp:159: reg[20] = 0x000000000000000e
2011/08/16 11:38:55 - signals.cpp:159: reg[21] = 0x0000000000006a07
2011/08/16 11:38:55 - signals.cpp:159: reg[22] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:93: Stack trace:
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720eb10]
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSegmentPool::Get()+0x1a
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormStreamObject::WriteSegment(NormBlockId, unsigned short, char const*)+0x590
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormObject::HandleObjectMessage(NormObjectMsg const&, NormMsg::Type, NormBlockId, unsigned short)+0xf79
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSenderNode::HandleObjectMessage(NormObjectMsg const&)+0xfb1
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::ReceiverHandleObjectMessage(timeval const&, NormObjectMsg const&, bool)+0x2b4
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::HandleReceiveMessage(NormMsg&, bool, bool)+0xfd
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::RxSocketRecvHandler(ProtoSocket&, ProtoSocket::Event)+0x87
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::LISTENER_TYPE<NormSession>::on_event(ProtoSocket&, ProtoSocket::Event)+0x33
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::OnNotify(ProtoSocket::Flag)+0x1c8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:ispatch()+0xb2
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher::Run(bool)+0x1a8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:oThreadStart(void*)+0x94
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720673d]
2011/08/16 11:38:55 - signals.cpp:143:   /lib64/libc.so.6 : clone()+0x6d
2011/08/16 11:38:55 - signals.cpp:154: End of stack trace.
(END)

该库配置为在流模式下工作。 安装的版本有: 规范-静态-1.4b4-0 规范-1.4b4-0 protolib-2.1b1-0 protolib-static-2.1b1-0

你能分享一些关于这个库的信息吗?生产环境可靠吗?它有任何替代实现吗?

I have a question about "Nack Oriented Reliable Multicast" (NORM). Sometimes The receiver segfaults with the following stacktrace:

2011/08/16 11:38:55 - signals.cpp:73: Segmentation Fault!
2011/08/16 11:38:55 - signals.cpp:74: PID = 467
2011/08/16 11:38:55 - signals.cpp:75: info.si_signo = 11
2011/08/16 11:38:55 - signals.cpp:76: info.si_errno = 0
2011/08/16 11:38:55 - signals.cpp:78: info.si_code  = 1 [SEGV_MAPERR]
2011/08/16 11:38:55 - signals.cpp:83: info.si_addr  = 0x1f51
2011/08/16 11:38:55 - signals.cpp:159: reg[00] = 0xe7b6c70816994fb2
2011/08/16 11:38:55 - signals.cpp:159: reg[01] = 0xb6c70868e94f1391
2011/08/16 11:38:55 - signals.cpp:159: reg[02] = 0x0000003fa5be8121
2011/08/16 11:38:55 - signals.cpp:159: reg[03] = 0x0000000000000000
2011/08/16 11:38:55 - signals.cpp:159: reg[04] = 0x00000000102c1e10
2011/08/16 11:38:55 - signals.cpp:159: reg[05] = 0x0000000000000170
2011/08/16 11:38:55 - signals.cpp:159: reg[06] = 0x000000001020ae20
2011/08/16 11:38:55 - signals.cpp:159: reg[07] = 0x0000000000000002
2011/08/16 11:38:55 - signals.cpp:159: reg[08] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[09] = 0x0000000044367b8c
2011/08/16 11:38:55 - signals.cpp:159: reg[10] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:159: reg[11] = 0x000000001028b268
2011/08/16 11:38:55 - signals.cpp:159: reg[12] = 0x00000000000000ea
2011/08/16 11:38:55 - signals.cpp:159: reg[13] = 0x00000000102c1e80
2011/08/16 11:38:55 - signals.cpp:159: reg[14] = 0x00000000000001ea
2011/08/16 11:38:55 - signals.cpp:159: reg[15] = 0x0000000044367b40
2011/08/16 11:38:55 - signals.cpp:159: reg[16] = 0x0000003ce5a53f52
2011/08/16 11:38:55 - signals.cpp:159: reg[17] = 0x0000000000010202
2011/08/16 11:38:55 - signals.cpp:159: reg[18] = 0x0000000000000033
2011/08/16 11:38:55 - signals.cpp:159: reg[19] = 0x0000000000000004
2011/08/16 11:38:55 - signals.cpp:159: reg[20] = 0x000000000000000e
2011/08/16 11:38:55 - signals.cpp:159: reg[21] = 0x0000000000006a07
2011/08/16 11:38:55 - signals.cpp:159: reg[22] = 0x0000000000001f51
2011/08/16 11:38:55 - signals.cpp:93: Stack trace:
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720eb10]
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSegmentPool::Get()+0x1a
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormStreamObject::WriteSegment(NormBlockId, unsigned short, char const*)+0x590
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormObject::HandleObjectMessage(NormObjectMsg const&, NormMsg::Type, NormBlockId, unsigned short)+0xf79
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSenderNode::HandleObjectMessage(NormObjectMsg const&)+0xfb1
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::ReceiverHandleObjectMessage(timeval const&, NormObjectMsg const&, bool)+0x2b4
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::HandleReceiveMessage(NormMsg&, bool, bool)+0xfd
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : NormSession::RxSocketRecvHandler(ProtoSocket&, ProtoSocket::Event)+0x87
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::LISTENER_TYPE<NormSession>::on_event(ProtoSocket&, ProtoSocket::Event)+0x33
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoSocket::OnNotify(ProtoSocket::Flag)+0x1c8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:ispatch()+0xb2
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher::Run(bool)+0x1a8
2011/08/16 11:38:55 - signals.cpp:138:   /usr/lib64/libnorm_wrapper.so.2.0 : ProtoDispatcher:oThreadStart(void*)+0x94
2011/08/16 11:38:55 - signals.cpp:148:   /lib64/libpthread.so.0 [0x37c720673d]
2011/08/16 11:38:55 - signals.cpp:143:   /lib64/libc.so.6 : clone()+0x6d
2011/08/16 11:38:55 - signals.cpp:154: End of stack trace.
(END)

The library is configured to work in stream mode.
The installed versions are:
norm-static-1.4b4-0
norm-1.4b4-0
protolib-2.1b1-0
protolib-static-2.1b1-0

Can you share some info about this library? Is it reliable for production environment? Does it have any alternative implementation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唐婉 2024-12-07 01:02:40

Planète Broadcast 还提供了另一种 NORM 实现,但这并不是什么新鲜事。

http://planete-bcast.inrialpes.fr/rubrique.php3?id_rubrique=4

我建议尝试使用受支持的主动可靠多播协议,并提供 100% 偏差:

http://en.wikipedia.org/wiki/Pragmatic_General_Multicast

我的协议实现:

http://code.google.com/p/openpgm/

There is another implementation of NORM available from Planète Broadcast, but it isn't new.

http://planete-bcast.inrialpes.fr/rubrique.php3?id_rubrique=4

I would recommend trying a supported active reliable multicast protocol instead, presented with 100% bias:

http://en.wikipedia.org/wiki/Pragmatic_General_Multicast

My implementation of the protocol:

http://code.google.com/p/openpgm/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文