Archived

This forum has been archived. Please start a new discussion on GitHub.

Network.cpp:1,159

I currently use IceStorm(version 3.3.0) to report some messages to the server ,after run a while,I got this exception below:

Network.cpp:1,159: Ice::SocketException:
socket exception: WSAENOBUFS!.

I found that the icebox server is running normal and the network is also ok(ping and telnet).
Can you tell on what reason cause this exception?

Thanks advance!

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Could you upgrade to Ice 3.3.1 and see if you still get this problem?

    This exception indicates an out-of-resources error condition. It's not clear to me why this happens. How many subscribers does your IceStorm service have? Is the IceBox server running other services beside IceStorm?

    Cheers,
    Benoit.
  • re

    Hi,

    Thanks for your reply.

    I currently have just one subscriber to handle all the topic messages,and the IceBox contains only the IceStorm service.Why did you just consider the server side problem? Is that because the IceStorm server can not suffer the message pressure?

    There is indeed sometimes the IceStorm service can not redirect the message because the server can not handle all the message in time. But I got this exception in condition that there are only few publishers.

    Can the publisher side's memory leak cause this exception?

    Thank u.

    Cheer,
    Sober
  • benoit
    benoit Rennes, France
    Hi,

    It's actually not clear to me which process raises this exception. Is it the publisher, the IceStorm service or the subscriber? If it's printed by the publisher, then yes a leak in the publisher code could cause this error.

    Cheers,
    Benoit.
  • re

    Hi,

    Sorry for not describing it clearly. Yes I got this error from the publisher side.

    If so,then I should just consider the publisher side,right?

    Is there other reasons can cause this?

    Thanks,
    Sober.
  • benoit
    benoit Rennes, France
    Yes, it's a problem with the publisher only. The exception occurs when the publisher tries to establish a new connection. According to this page, the WSAENOBUFS occurs when:
    An operation on a socket cannot be performed because the system lacked sufficient buffer space or because a queue was full.

    So you should check your publisher and make sure it doesn't leak any memory or handles. I recommend using a memory leak detector such as Purify to search for potential leaks.

    Cheers,
    Benoit.
  • re

    Hi,

    Thanks for your reply,and I try the Purify tools, still I can not get the result.

    Is that because ICE kernel exists memory leak? I got the analysis as follows:
    Summary of all memory leaks... {2560 bytes, 8 blocks}
    [W] MLK: Memory leak of 256 bytes from 1 block allocated in _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT)

    [MSVCR80.dll]
    Distribution of leaked blocks
    256 bytes from 1 block of 256 bytes (0x02067d50)
    Allocation location
    realloc_crt [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT) [C:\WINDOWS\WinSxS

    \x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    LDunscale [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCP80.dll]
    LDunscale [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCP80.dll]
    LZero [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCP80.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in StaticMutex::IceUtil IceUtil::globalMutex [iceutil33.dll]
    Distribution of leaked blocks
    128 bytes from 1 block of 128 bytes (0x02068058)
    Allocation location
    IceUtil::UTFConversionException::ice_print(basic_ostream<char,char_traits<char>::std>::std&)const [C:\Ice-3.3.0\bin\iceutil33.dll]
    StaticMutex::IceUtil IceUtil::globalMutex [C:\Ice-3.3.0\bin\iceutil33.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in BZ2_bzclose [bzip2.dll]
    Distribution of leaked blocks
    128 bytes from 1 block of 128 bytes (0x02068170)
    Allocation location
    BZ2_bzclose [C:\Ice-3.3.0\bin\bzip2.dll]
    BZ2_bzclose [C:\Ice-3.3.0\bin\bzip2.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 1024 bytes from 1 block allocated in _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT)

    [MSVCR80.dll]
    Distribution of leaked blocks
    1024 bytes from 1 block of 1024 bytes (0x020698c8)
    Allocation location
    realloc_crt [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT) [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    std::_Init_locks::=(_Init_locks::std const&) [C:\Ice-3.3.0\bin\ice33.dll]
    std::_Init_locks::=(_Init_locks::std const&) [C:\Ice-3.3.0\bin\ice33.dll]
    Service::Ice * Ice::Service::_instance [C:\Ice-3.3.0\bin\ice33.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in OSSL_DES_version [LIBEAY32.dll]
    Distribution of leaked blocks
    128 bytes from 1 block of 128 bytes (0x0206a050)
    Allocation location
    ENGINE_load_ubsec [C:\Ice-3.3.0\bin\LIBEAY32.dll]
    OSSL_DES_version [C:\Ice-3.3.0\bin\LIBEAY32.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in const char const* IcePatch2::logFile [icepatch233.dll]
    Distribution of leaked blocks
    128 bytes from 1 block of 128 bytes (0x0206a0f8)
    Allocation location
    OS::getcwd(basic_string<char,char_traits<char>::std,allocator<char>::std>::std&) [C:\Ice-3.3.0\bin\icepatch233.dll]
    const char const* IcePatch2::logFile [C:\Ice-3.3.0\bin\icepatch233.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 256 bytes from 1 block allocated in _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT)

    [MSVCR80.dll]
    Distribution of leaked blocks
    256 bytes from 1 block of 256 bytes (0x0206b140)
    Allocation location
    realloc_crt [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT) [C:\WINDOWS\WinSxS

    \x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    ?@std@@PBV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?

    $char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?

    $allocator@D@2@@std@@V12@@2@@5@@Z [C:\Ice-3.3.0\bin\icestorm33.dll]
    ?@std@@PBV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?

    $char_traits@D@std@@V?$allocator@D@2@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?

    $allocator@D@2@@std@@V12@@2@@5@@Z [C:\Ice-3.3.0\bin\icestorm33.dll]
    const IceStorm::TopicManager::`VbTable' [C:\Ice-3.3.0\bin\icestorm33.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    [W] MLK: Memory leak of 512 bytes from 1 block allocated in _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT)

    [MSVCR80.dll]
    Distribution of leaked blocks
    512 bytes from 1 block of 512 bytes (0x0206d540)
    Allocation location
    realloc_crt [C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    _invalid_parameter(WORD const*,WORD const*,WORD const*,UINT,UINT) [C:\WINDOWS\WinSxS

    \x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll]
    uci::FileServer::shut(void) [G:\memory leak\ucitest\release\uci.dll]
    uci::FileServer::shut(void) [G:\memory leak\ucitest\release\uci.dll]
    const uci::communicator::`VfTable' [G:\memory leak\ucitest\release\uci.dll]
    LdrFindResourceDirectory_U [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    RtlLookupElementGenericTable [C:\WINDOWS\system32\ntdll.dll]
    KiUserApcDispatcher [C:\WINDOWS\system32\ntdll.dll]
    Exiting with code 1 (0x00000001)
    Process time: 265 milliseconds
    Program terminated at 2009-06-01 16:58:52

    Can u tell the reason?