Am 09.09.2011 16:12, schrieb Carsten Neumann: > Hello Michael, > > On 09/09/2011 04:31 AM, Michael Raab wrote: >> the current approach in general seems to work well with StreamSock >> connection between client and servers. >> The difficulties seem to appear when using Multicast. I was able to fix the >> problem of the server shutdown when trying to close the (Mcast) connection. >> The patch is attached, please have a look. Thanks. > thanks for the patch. So the recvQueue() thread blocked in recvNextDgram()?
Yes! > >> So for now the server side seems to connect, run and close stable, but I >> still have a deadlock on client side after disconnecting a single server. >> >> This is what I'm doing in the client: > [SNIP - code] > > that looks reasonable to me. OK. > >> I'm disconnecting all unnecessary render channels after syncing all changes >> to the servers. Then the frame becomes rendered. After that I try to swap in >> sync with the servers but the connection waits forever for the server >> signals. I have looked at the code for a long time but I have no clue why it >> should. May be it waits for the disconnected server... >> This is the stack were all gets stuck: >> >> ntdll.dll!76f4f8c1() >> [Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder >> fehlen, keine Symbole geladen für ntdll.dll] >> ntdll.dll!76f4f8c1() >> mswsock.dll!74506f0f() >> mswsock.dll!74506d30() >> ntdll.dll!76f63ca3() >> OSGSystem.dll!osg::DrawActionBase::stop(osg::Action::ResultE >> res=Continue) Zeile 259 C++ >> msvcp80.dll!std::basic_filebuf<char,std::char_traits<char> >> >::overflow(int _Meta=64) Zeile 304 + 0x5 Bytes C++ >> ws2_32.dll!74c76a28() >> OSGBase.dll!osg::SocketSelection::select(double >> duration=-1.0000000000000000) Zeile 236 C++ >> OSGBase.dll!osg::SocketSelection::select(double >> duration=-1.0000000000000000, osg::SocketSelection& result={...}) Zeile >> 265 + 0x2d Bytes C++ >> OSGBase.dll!osg::GroupSockConnection::wait(double >> timeout=-1.0000000000000000) Zeile 336 + 0x15 Bytes C++ >>> OSGBase.dll!osg::GroupMCastConnection::wait(double >>> timeout=-1.0000000000000000) Zeile 205 C++ >> OSGExt.dll!osg::VDTMultiDisplayWindow::clientSwap() Zeile 546 C++ >> OSGExt.dll!osg::VDTMultiDisplayWindow::render(osg::RenderActionBase * >> action=0x0c6b7958) Zeile 303 C++ >> >> I don't know how the DrawAction stuff comes into the stack, maybe its a >> visualization bug in VS... > yeah, that looks bogus ;) > Hmm, the interesting information would be, which sockets are in the > SocketSelection and if a disconnected server is still in there what and > why it was placed there? As far as I have seen today the correct sockets were closed and removed from the socket list. > > Cheers, > Carsten > > ------------------------------------------------------------------------------ > Why Cloud-Based Security and Archiving Make Sense > Osterman Research conducted this study that outlines how and why cloud > computing security and archiving is rapidly being adopted across the IT > space for its ease of implementation, lower cost, and increased > reliability. Learn more. http://www.accelacomm.com/jaw/sfnl/114/51425301/ > _______________________________________________ > Opensg-users mailing list > Opensg-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensg-users ------------------------------------------------------------------------------ Why Cloud-Based Security and Archiving Make Sense Osterman Research conducted this study that outlines how and why cloud computing security and archiving is rapidly being adopted across the IT space for its ease of implementation, lower cost, and increased reliability. Learn more. http://www.accelacomm.com/jaw/sfnl/114/51425301/ _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users