Hi,

I think I solved this issue. Indeed the problem was that the OSGTreeRenderer 
calls win->frameInit() directly. In case of a ClusterWindow, frameInit means 
sending the sync packet from client to server. As ClusterWindow itself sends 
the packet before, the server is waiting for the swap command but receives the 
sync message. That caused the crash.

As I derive from ClusterWindow I simply separated the sync code from the 
frameInit call and now it works. Nevertheless may be someone who knows the 
ShadowViewport code may have a look if directly calling win->frameInit() there 
is necessary.

The bad news is I have another problem. I'm able turn on shadow rendering 
during run-time by creating new ShadowViewports. But when I try to turn shadow 
rendering off (by destroying the shadow viewports) the application crashes 
again. The crash arises when the sync arrives at the server side. The server 
tries to delete the appropriate shadow viewports. The shadow viewport 
destructor is called. The crash happens in function clearLights() line 1372 
(OSGShadowViewport.cpp)

getRoot()->subChild(_lightCamBeacons[i]);

Seems that either getRoot() or _lightCamBeacons[i] points to something wrong. 
Have someone ever tried to use ShadowViewports in cluster configurations (and 
tried to sync the destruction of such a viewport)? 

Hope someone may have an idea.


Thanks,
Michael

-------- Original-Nachricht --------
> Datum: Mon, 22 Aug 2011 16:19:13 +0200
> Von: "Michael Raab" <michael-r...@gmx.de>
> An: opensg-users@lists.sourceforge.net
> Betreff: [Opensg-users] OpenSG1.8 - Crash after veiwport replacement in       
> cluster mode

> Hi,
> 
> I'm trying to shadow on/off during the run-time of our application running
> in cluster mode. When switching shadow on, I remove all current viewports
> (on the client application) and replace them with ShadowViewports. After
> that I would expect the changes to synced to the render servers. That seems
> not work as expected as the connected render server crashes in
> RemoteAspect::recvSync() with RemoteSyncError() Exception! Seems that cmd 
> variable is 0,
> which should not happen...
> 
> Looking at the client side where the sync message is generated, it seems
> to me that ClusterWindow::frameInit is called twice. One time by
> ClusterWindow::render() and one time by
> ShadowViewport::render()->TreeRenderer::render()->ClusterWindow()->frameInit().
>  Maybe that is a problem?
> 
> Thanks & Best regards,
> Michael
> -- 
> NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!             
> Jetzt informieren: http://www.gmx.net/de/go/freephone
> 
> ------------------------------------------------------------------------------
> uberSVN's rich system and user administration capabilities and model 
> configuration take the hassle out of deploying and managing Subversion and
> the tools developers use with it. Learn more about uberSVN and get a free 
> download at:  http://p.sf.net/sfu/wandisco-dev2dev
> _______________________________________________
> 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

------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to