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()?

> 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.

> 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?

        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

Reply via email to