Hello Carsten, I'm back in my office now. Your patch seems to work for as expected. Thanks.
BTW(1): What is the meaning of the erase operation to the destination string in the GroupMCastConnection::disconnect() function? line 156: _destination.erase(_destination.begin()+index); BTW(2): I was wondering why your patch includes additonal brackes around line 533: for(m = ack ; m != send && dgram[m]->getId() != response.getId() ; m = (m+1) % _windowSize); { send = m; } There's a semicolon closing the for loop in line 531. Just wanted to make sure the brackets are not intented for that... BTW(3): How about the network stuff in OpenSG 2. Is it completely new delevoped or may these changes also need to be applied to the 2.0 code? Thanks, Michael -------- Original-Nachricht -------- > Datum: Wed, 28 Sep 2011 12:47:58 -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/28/2011 06:48 AM, Michael Raab wrote: > > I'm quite sure that the right socket is removed from the socket list and > closed. I've prepared a quick and dirty example that should help you to > reproduce the problem. > > The example includes our OSGExt library that contains our specific class > implementations of ClusterWindow and RenderServer. Additionlly there are a > ClusterClient and a ClusterServer application based on the OSGExt lib > included. > > Usage: > > - run startClient, startServer1, startServer2 from the run folder > > - by pressing '1' or '2' you can disconnect either the first or the > second render server > > > > By default the connectiontype is set to Multicast. Using this mode > client and server freeze after one server has been disconnected. If you change > the connectiontype to "StreamSock" (ClusterClient: line 105), the connection > is still ok, after disconnecting one server. > > > > I'm sending the complete source code offside the mailing list. > > > > Hope this will help you to find the problem. > > yes, it is of great help, thank you! I believe I've found the problem: > GroupMCastConnection keeps two additional vectors of SocketAdresses > (_receiver and _waitFor) and the latter is used to determine which > machine has outstanding ack packages. On a disconnect these vectors > where not updated so that the connection was still waiting for ack > packages from the disconnected machine. > I've attached a patch that corrects this and makes your examples work > for me. Would you mind giving it a try and letting me know if it fixes > the problem at your end as well? Thanks! > > Cheers, > Carsten -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users