helloweishi / ostinato

Automatically exported from code.google.com/p/ostinato
GNU General Public License v3.0
1 stars 2 forks source link

ostinato/drone crash when conencting from remote machine #136

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. run ostinato on machine A and B
2. Click disconnect portgroup on machine A (in order to be able to connnect 
from machine B)
3. On machine B connect to the machine A ip:7878 portgroup (create new)

I see that the indication on machine B see green on the above portgroup, but 
after few seconds machine A throws an exception and the program crash

Machine A is Ubuntu 14.04.1
Machine B is Windows 7.

This the machine A console output.

connection closed from 127.0.0.1: 35570
current is either invalid or not a port
current is now invalid
No selection
In when_portView_currentChanged
setting stacked widget to blank page
portGroupId = 0, portId = 65535
In when_portModel_dataChanged
current is either invalid or not a port
currentChanged ffff
state = unconnected|closing
No selection
In when_portView_currentChanged
accepting new connection from 1.1.1.2: 54181
[libprotobuf FATAL protocol.pb.cc:6917] CHECK failed: (method->service()) == 
(descriptor()): 
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 
'google::protobuf::FatalException'
  what():  CHECK failed: (method->service()) == (descriptor()): 

Original issue reported on code.google.com by asi.yeh...@gmail.com on 21 Oct 2014 at 1:56

GoogleCodeExporter commented 9 years ago
On Machine A, which process crashes - ostinato or drone?

What Ostinato version are you using on Machine A and B?

Original comment by pstav...@gmail.com on 30 Oct 2014 at 1:54

GoogleCodeExporter commented 9 years ago
I have identical situation. My versions of software:

Windows 7 x64 (machine B) version of ostinato: 0.6 Rev: 2aaa068dcb33@
Qt: 4.3.3

Ubuntu 14.04 LTS x64 (Machine A) version of ostinato: 0.5.1 Rev 74c9dcf830e3@
Qt: 4.8.6

Also there is issue when trying to connect to Windows drone (B) from Ubuntu 
client (A). Ostinato fails on Ubuntu, with console output:

In establish
In on_mpSocket_stateChanged
state changed 1
portGroupId = 1, portId = 65535
In when_portModel_dataChanged
In on_mpSocket_stateChanged
state changed 2
portGroupId = 1, portId = 65535
In when_portModel_dataChanged
In on_mpSocket_stateChanged
state changed 3
portGroupId = 1, portId = 65535
In when_portModel_dataChanged
In on_mpSocket_connected
connected

portGroupId = 1, portId = 65535
In when_portModel_dataChanged
requesting portlist ...
client(CallMethod) sending 8 bytes encoding <>
0001000000000000
void PbRpcChannel::on_mpSocket_readyRead(): unexpected type 4
The remote host closed the connection (1)
connection closed from 127.0.0.1: 41348

Original comment by rzeg...@gmail.com on 24 Dec 2014 at 6:28

GoogleCodeExporter commented 9 years ago
Ostinato 0.6 added check for version compatibility. When the client connects to 
the server, the server performs this check.

Connecting from 0.6 client to 0.5.1 server fails (and crashes) because 0.5.1 
doesn't understand this new version check RPC. 

Connecting from 0.5.1 client to 0.6 server would fail because 0.5.1 client 
won't be invoking the version check compat RPC and the server won't proceed 
without doing this check - ideally, it shouldn't crash but it doesn't matter 
because you won't be able to get this working anyway.

The solution is to use the same version on both machines.

Original comment by pstav...@gmail.com on 25 Dec 2014 at 4:18