Sequence number mismatch and Frame Syntax problem of BEEP Frame

Rajesh Madabhushi <[email protected]> Fri, 16 Aug 2002 14:55:38 +0530
Newsgroups gmane.network.beep.roadrunner.general
Message-ID <[email protected]>
Hi,

I will be using both RoadRunner Beep Core and Road Runner IDXP to test my 
software.
Established session with RoadRunner and created an 'Alert' 
channel.  Sending 'Alert' messages continuously in a loop on the channel.

But after some time, I am getting seqno mismatch error and connection got 
disconnected.
For  debugging purpose, did following.
1.added printf statement after updating of the channel incoming sequence 
sequence number, that is after 'channel->seq_in += frame->size' statement 
of frame_divider() function definitions of rr-tcpconnection.c file, added 
printf("#####Next seq no %d\r\n, channel->seq_in).
2.ALSO KEPT sleep(1) in 'in_event()' function definition, just in a trail 
to  know the problem.

Here is portion of output of debug statements near the problem  occurred on 
Server Side

#####Next seq no 13463
idxp: identify_frame called
c(idxp)->i_config is (nil)
c(idxp)->g_config is 0x8049c80
idxp->config is 0x8086110
MSG HANDLER IS 0x8086130
   ->consumer (nil)
   ->aggregate 1
IDXPMessage::process_frame: Processing incoming frame
IDXPMessage::process_frame: Payload size: 13  MIME Body size: 1007
IDXPMessage::process_frame: No frame consumer set for message type 'IDMEF'
idxp: identify_frame called
c(idxp)->i_config is (nil)
c(idxp)->g_config is 0x8049c80
idxp->config is 0x8086110
MSG HANDLER IS 0x8086130
   ->consumer (nil)
   ->aggregate 1
IDXPMessage::process_frame: Processing incoming frame
IDXPMessage::process_frame: Payload size: 13  MIME Body size: 1007
IDXPMessage::process_frame: No frame consumer set for message type 'IDMEF'
idxp: identify_frame called
c(idxp)->i_config is (nil)
c(idxp)->g_config is 0x8049c80
idxp->config is 0x8086110
MSG HANDLER IS 0x8086130
   ->consumer (nil)
   ->aggregate 1
IDXPMessage::process_frame: Processing incoming frame
IDXPMessage::process_frame: Payload size: 13  MIME Body size: 1007
IDXPMessage::process_frame: No frame consumer set for message type 'IDMEF'
  We need more data
connection::frame_divider parsed frame: chan=1 msgno=18 seq=13463


#####Next seq no 14483
connection::frame_divider parsed frame: chan=1 msgno=18 seq=14483


#####Next seq no 14496
connection::frame_divider parsed frame: chan=1 msgno=19 seq=14496


#####Next seq no 15516
connection::frame_divider parsed frame: chan=1 msgno=19 seq=15516


#####Next seq no 15529
  We need more data
idxp: identify_frame called
c(idxp)->i_config is (nil)
c(idxp)->g_config is 0x8049c80
idxp->config is 0x8086110
MSG HANDLER IS 0x8086130
   ->consumer (nil)
   ->aggregate 1
IDXPMessage::process_frame: Processing incoming frame
IDXPMessage::process_frame: Payload size: 13  MIME Body size: 1007
IDXPMessage::process_frame: No frame consumer set for message type 'IDMEF'
idxp: identify_frame called
c(idxp)->i_config is (nil)
c(idxp)->g_config is 0x8049c80
idxp->config is 0x8086110
MSG HANDLER IS 0x8086130
   ->consumer (nil)
   ->aggregate 1
IDXPMessage::process_frame: Processing incoming frame
IDXPMessage::process_frame: Payload size: 13  MIME Body size: 1007
IDXPMessage::process_frame: No frame consumer set for message type 'IDMEF'
connection::frame_divider parsed frame: chan=1 msgno=18 seq=13463
report_error_and_disconnect : seqno missmatch 13463 != 15529 frame_divider

PLEASE NOTE THAT frame with sequence number 13463 was received already. It 
is not actually the current frame sequence number. Current window pointer 
is already progressed.
------------------------------------------------------------------------------------------------------------------------------------------------
Here is output of partial frame header contents after successful write to 
socket call on my side(Client). I am sending message in two frames of sizes 
1020 and 13 bytes.
-> sp IdxpSendAlertTest,100
task spawned: id = 0x3a3bcf0, name = t2
value = 61062384 = 0x3a3bcf0

SendPayLoadOnTransport:channel 1 msg 5 seqno 34 size 1020
SendPayLoadOnTransport:channel 1 msg 5 seqno 1054 size 13
SendPayLoadOnTransport:channel 1 msg 6 seqno 1067 size 1020
<*><*> Time out on write
SendPayLoadOnTransport:channel 1 msg 6 seqno 2087 size 13
SendPayLoadOnTransport:channel 1 msg 7 seqno 2100 size 1020
SendPayLoadOnTransport:channel 1 msg 7 seqno 3120 size 13
SendPayLoadOnTransport:channel 1 msg 8 seqno 3133 size 1020
SendPayLoadOnTransport:channel 1 msg 8 seqno 4153 size 13
SendPayLoadOnTransport:channel 1 msg 9 seqno 4166 size 1020
SendPayLoadOnTransport:channel 1 msg 9 seqno 5186 size 13
SendPayLoadOnTransport:channel 1 msg 10 seqno 5199 size 1020
SendPayLoadOnTransport:channel 1 msg 10 seqno 6219 size 13
SendPayLoadOnTransport:channel 1 msg 11 seqno 6232 size 1020
SendPayLoadOnTransport:channel 1 msg 11 seqno 7252 size 13
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
SendPayLoadOnTransport:channel 1 msg 12 seqno 7265 size 1020
SendPayLoadOnTransport:channel 1 msg 12 seqno 8285 size 13
SendPayLoadOnTransport:channel 1 msg 13 seqno 8298 size 1020
SendPayLoadOnTransport:channel 1 msg 13 seqno 9318 size 13
SendPayLoadOnTransport:channel 1 msg 14 seqno 9331 size 1020
SendPayLoadOnTransport:channel 1 msg 14 seqno 10351 size 13
SendPayLoadOnTransport:channel 1 msg 15 seqno 10364 size 1020
SendPayLoadOnTransport:channel 1 msg 15 seqno 11384 size 13
SendPayLoadOnTransport:channel 1 msg 16 seqno 11397 size 1020
SendPayLoadOnTransport:channel 1 msg 16 seqno 12417 size 13
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
SendPayLoadOnTransport:channel 1 msg 17 seqno 12430 size 1020
SendPayLoadOnTransport:channel 1 msg 17 seqno 13450 size 13
SendPayLoadOnTransport:channel 1 msg 18 seqno 13463 size 1020
SendPayLoadOnTransport:channel 1 msg 18 seqno 14483 size 13
SendPayLoadOnTransport:channel 1 msg 19 seqno 14496 size 1020
SendPayLoadOnTransport:channel 1 msg 19 seqno 15516 size 13
SendPayLoadOnTransport:channel 1 msg 20 seqno 15529 size 1020
SendPayLoadOnTransport:channel 1 msg 20 seqno 16549 size 13
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window
<*><*>Unable to Send Frame on Channel 1- No Space in Out Window

---------------------------------------------------------------------------------------------------------------------------------

I ALSO GETTING SOME TIMES 'FRAME SYNTAX ERROR' - Failed  in checking of
conditional statement 'if (strncmp(body + frame->size, "END",3) != 0)' in 
'parse' function of
rr-frame.c file. But as for as my knowledge is concerted, there is no 
chance for my side to miss any payload portion between BEEP header and 
'END'  But right now I don't have debug output for this error. If you want 
I can try to capture the results and send to you.

HOWEVER IN CASE OF SENDING JUST ONE FRAME AT A TIME INSTEAD IN A LOOP, NOT 
GETTING ANY ERRORS,

Could any body  suggest, reason for getting the above errors?

Thank you,
Rajesh