Hello Carsten, 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.
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: VDTClusterWindow::frameInit() { // local view osg::Window::frameInit(); // sync remote aspects doSync(); // remove useless render channels if(getNetwork()->getMainConnection()) { while(!_channelsToDisconnect.empty()) { VDTRenderChannelPtr c = _channelsToDisconnect.front(); _channelsToDisconnect.pop_front(); if(c->_conChannelId > -1) { ((GroupConnection*)getNetwork()->getMainConnection())->disconnect(c->_conChannelId); c->_conChannelId = -1; } } if(getChannels().empty()) clearNetwork(); } } 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... Best regards, Michael -------- Original-Nachricht -------- > Datum: Thu, 08 Sep 2011 10:18:16 -0500 > Von: Carsten Neumann <carsten_neum...@gmx.net> > An: opensg-users@lists.sourceforge.net > Betreff: Re: [Opensg-users] OpenSG1.8 - Disconnecting > ClusterWindow and ClusterServer > Hello Michael, > > On 09/08/2011 10:01 AM, Michael Raab wrote: > > when shutting down the server using multicast communication the app > seems to stuck in the destructor of PointMCastConnection in line > > > > BaseThread::join(_recvQueueThread); > > > > When debugging, the recvThread of PointMCastConnection seems to be > running when I try to stop the server. Somehow the join& shutdown of this > thread seems not to work as expected. > > looking at PointMCastConnection::recvQueue() it should regularly test if > _recvQueueThreadStop is set and then leave the thread - can you check > if/were it blocks or why it does not reach that test? > > Cheers, > Carsten > > ------------------------------------------------------------------------------ > Doing More with Less: The Next Generation Virtual Desktop > What are the key obstacles that have prevented many mid-market businesses > from deploying virtual desktops? How do next-generation virtual desktops > provide companies an easier-to-deploy, easier-to-manage and more > affordable > virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/ > _______________________________________________ > Opensg-users mailing list > Opensg-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensg-users -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
OSGPointMCastConnection.cpp.patch
Description: Binary data
------------------------------------------------------------------------------ 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