From: <Mat...@dl...> - 2011-12-16 10:22:06
|
Hi, I will try to point it out without pasting a shipload of code here. The Interaction is using a handler-class derived from the "IVistaInteractionHandlerBase" (as in the 12IntentionSelectDemo). The events are handled in the "HandleContextChange" function. Events that are handled by the "HandleGraphUpdate" are just set handled without performing anything. No own events are created or handled, so the only handled source type of events are the "InteractionEvents" created by the DFN/interaction contexts. The Interaction context is using a 6DOF input device (Flystick) and setting the transformation of it to a TransformNode. When the event is handled the transformation of this node is read an saved to member variables(vector,quaternion). Based on the containing information a local member variable(double) is modified (adding a calculated value). Using the member variable a rotation is calculated and a TransformNode (with a textured cone as child) recieves the new rotation. In addition the value of the member variable is set as a text to a VistaTextNode. Each time an "InteractionEvent" occurs and is handled the double variable is modified and the new rotation of the TransformNode is calculated and set. I hope this helps to understand the context. If you need more information feel free to ask for it. Best regards Matthias Von: Dominik Rausch [mailto:ra...@vr...] Gesendet: Donnerstag, 15. Dezember 2011 20:50 An: vis...@li... Betreff: Re: [vistavrtoolkit-general] WG: Clustermode: slaves recieving socket errors Hi When yo say that your interaction isbased on events, do you mean native system events or external message events? If the latter is the case, what is the size of these messages? If they are too big, the tcp stack buffer might be overrun. Not sure if this can produce an EFAULT, however. If you could provide some more information or a code sample, maybe we could try repoducing the issue. Regards Dominik Dipl.-Inform. Dominik Rausch Virtual Reality Group, RWTH Aachen University Lehrstuhl für Informatik 12 (Hochleistungsrechnen) Rechen- und Kommunikationszentrum Seffenter Weg 23, 52074 Aachen Tel. +49 241 80 29732 ra...@vr...<mailto:ra...@vr...> www.vr.rwth-aachen.de<http://www.vr.rwth-aachen.de> Am 15.12.2011 19:01, schrieb Mat...@dl...:<mailto:Mat...@dl...:> The setup: Clustermode, 1 Master, 3 Slaves. The connection between the Master and the Slaves does only rely on the Clustermode, i.e. there is no self-coded connection between them and no code relating connections at all. The interaction is based on events and each slave is interpreting the events hisself (reading values from the SG, doing some calculations, changing values on the SG). This works fine and is also in sync. The problem: While using the setup, the Slaves sometimes get a Socket-error and close their application. This happens independent for each Slave and also independent of the time or number of events. The master does not crash in this way at any time. The errormessage is printed after the Slave has finished his interpretation of the event (he is not doing his fancy stuff anymore). The only way to reproduce it is to interact and wait until the problem occurs. Sometimes it happens fast, sometimes it takes a longer period of time. The error message: [EFAULT] The socket structure address is outside the user's addressspace. VistaTCPSocket[690df0]::CloseSocket(0) VistaExceptionBase() -- Exception [258] =============================================== IVistaSocket::ReceiveRaw -- Exception =============================================== Location: /research/modules/installs/ViSTA/ViSTA-1.12.0-debug/SETUP/VistaCoreLibs/VistaInterProcComm/IPNet/VistaSocket.cpp Line: 1085 =============================================== VistaExceptionBase() -- Exception [258] =============================================== IVistaSocket::ReceiveRaw -- Exception =============================================== Location: /research/modules/installs/ViSTA/ViSTA-1.12.0-debug/SETUP/VistaCoreLibs/VistaInterProcComm/IPNet/VistaSocket.cpp Line: 1085 =============================================== I have already tried removing all the dynamic generated Variables and replacing them with private members of the class they are in. (avoid memory leaks or something like this) -> did not have any result Have you any suggestions to solve this problem? Thanks for your help. Best regards Matthias |