invalid data on distribution channel, offending packet

Hector Rivas Gandara <>
Fri Dec 3 12:49:45 CET 2004


Hi,

I'm working with EI library, using it in C++, but I have some problems:

I'm using ei_rpc function family, and I'm trying to call this funcion in 
the erlang node:

-module(replyserv).
-export[imprime/1]).
imprime(X) ->
   io:format("print: ~w~n",[X]),
   {echo, X}.

I send the rpc (using ei_rpc_to or ei_rpc), but it does not call the 
function (No print), and fails in ei_rpc_from (if using ei_rpc_to), 
printint the following message in the erlang console:

Got invalid data on distribution channel, offending packet is: 
<<112,131,104,4,97,6,103,100,0,24,112,101,112,105,116,111,64,116,114,97,110,116,111,114,46,108,102,99,105,97,46,112,114,105,0,0,0,3,0,0,0,0,0,100,0,0,100,0,3,114,101,120,131,104,2,103,100,0,24,112,101,112,105,116,111,64,116,114,97,110,116,111,114,46,108,102,99,105,97,46,112,114,105,0,0,0,3,0,0,0,0,0,104,5,100,0,4,99,97,108,108,100,0,9,114,101,112,108,121,115,101,114,118,100,0,7,105,109,112,114,105,109,101,131,108,0,0,0,1,100,0,4,72,111,108,97,106,100,0,4,117,115,101,114>>

Setting the EI_TRACELEVEL=100 the output is:
ei_xconnect: Fri Dec  3 12:38:48 2004: -> CONNECT attempt to connect to 
pepita
ei_epmd_r4_port: Fri Dec  3 12:38:48 2004: -> PORT2_REQ alive=pepita 
ip=192.168.41.68
ei_epmd_r4_port: Fri Dec  3 12:38:48 2004: <- PORT2_RESP result=0 (ok)
ei_epmd_r4_port: Fri Dec  3 12:38:48 2004:    port=46537 ntype=77 
proto=0 dist-high=5 dist-low=5
ei_xconnect: Fri Dec  3 12:38:49 2004: -> CONNECT connected to remote
recv_status: Fri Dec  3 12:38:49 2004: <- RECV_STATUS (ok)
recv_challenge: Fri Dec  3 12:38:49 2004: <- RECV_CHALLENGE (ok) node = 
, version = 5, flags = 254, challenge = -1457110599
send_challenge_reply: Fri Dec  3 12:38:49 2004: -> SEND_CHALLENGE_REPLY 
(ok) challenge = -1143731390, digest = 81600edc
recv_challenge_ack: Fri Dec  3 12:38:49 2004: <- RECV_CHALLENGE_ACK (ok) 
digest = 7c0557fb
ei_xconnect: Fri Dec  3 12:38:49 2004: -> CONNECT (ok) remote = pepita
-> REG_SEND From: #Pid<> To: rex
    {#Pid<>, {call,  replyserv, imprime, 
[hola], user}}
<-- failed ei_rpc_from -->

What does that mean? Where is the problem?

I've only found a reference a google, and the binary stream seems to be 
the serialized message.

I also get that message **sometimes** with simple send/receive, but that 
is not deterministic: If I change the name of a variable, it works :?

-- 
Saudos
Héctor



More information about the erlang-questions mailing list