USNavalResearchLaboratory / norm

NACK-Oriented Reliable Multicast (NORM) implementation & tools (RFCs 5740, 5401)
https://www.nrl.navy.mil/Our-Work/Areas-of-Research/Information-Technology/NCS/NORM/
Other
100 stars 36 forks source link

Sending an empty file (0 Bytes) does not trigger TX_OBJECT_SENT event #49

Open sidloki opened 2 years ago

sidloki commented 2 years ago

If I send an empty file (e.g. with the normFileSend or normCast example) the file is sent and received correctly, but the TX_OBJECT_SENT event is not triggered. The TX_QUEUE_EMPTY event is raised correctly after the file is sent.

I tried to dig into the code, but I could not found the right place to fix the problem.

bebopagogo commented 2 years ago

Does the file have "INFO" content associated with it?

sidloki commented 2 years ago

Yes, it has. This is the Output using the normFileSend/normFileReceive examples:

Reciever:

$ ./normFileRecv received/
trace>08:15:23.886450 node>2 src>192.168.1.45/34825 inst>56765 seq>0 CMD(CC)  seq>0  rate>25605.468750 len>28 
normFileRecv: NORM_REMOTE_SENDER_NEW event ...
normFileRecv: NORM_REMOTE_SENDER_ACTIVE event ...
trace>08:15:23.886815 node>2 src>192.168.1.45/34825 inst>56765 seq>1 INFO obj>0 len>37 
trace>08:15:23.886970 node>2 src>192.168.1.45/34825 inst>56765 seq>2 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
normFileRecv: NORM_RX_OBJECT_NEW event ...
normFileRecv: NORM_RX_OBJECT_INFO event ...
normFileRecv: NORM_RX_OBJECT_COMPLETED event ...
normFileRecv: Done.

Sender:

$ ./normFileSend empty.txt 
trace>08:15:23.886455 node>1 dst>224.1.2.3/6003 inst>56765 seq>0 CMD(CC)  seq>0  rate>25605.468750 len>28 
trace>08:15:23.886741 node>1 dst>224.1.2.3/6003 inst>56765 seq>1 INFO obj>0 len>37 
trace>08:15:23.886789 node>1 dst>224.1.2.3/6003 inst>56765 seq>2 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
normFileSend: NORM_TX_QUEUE_EMPTY event...
trace>08:15:24.419556 node>1 dst>224.1.2.3/6003 inst>56765 seq>3 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:24.887243 node>1 dst>224.1.2.3/6003 inst>56765 seq>4 CMD(CC)  seq>1  rate>25605.468750 len>28 
trace>08:15:24.952373 node>1 dst>224.1.2.3/6003 inst>56765 seq>5 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:25.485550 node>1 dst>224.1.2.3/6003 inst>56765 seq>6 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:26.018264 node>1 dst>224.1.2.3/6003 inst>56765 seq>7 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:26.387209 node>1 dst>224.1.2.3/6003 inst>56765 seq>8 CMD(CC)  seq>2  rate>25605.468750 len>28 
trace>08:15:26.551375 node>1 dst>224.1.2.3/6003 inst>56765 seq>9 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:27.084257 node>1 dst>224.1.2.3/6003 inst>56765 seq>10 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:27.617125 node>1 dst>224.1.2.3/6003 inst>56765 seq>11 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:28.149799 node>1 dst>224.1.2.3/6003 inst>56765 seq>12 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:28.637137 node>1 dst>224.1.2.3/6003 inst>56765 seq>13 CMD(CC)  seq>3  rate>25605.468750 len>28 
trace>08:15:28.682957 node>1 dst>224.1.2.3/6003 inst>56765 seq>14 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:29.216224 node>1 dst>224.1.2.3/6003 inst>56765 seq>15 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:29.749032 node>1 dst>224.1.2.3/6003 inst>56765 seq>16 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:30.281898 node>1 dst>224.1.2.3/6003 inst>56765 seq>17 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:30.815240 node>1 dst>224.1.2.3/6003 inst>56765 seq>18 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:31.347968 node>1 dst>224.1.2.3/6003 inst>56765 seq>19 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:31.881539 node>1 dst>224.1.2.3/6003 inst>56765 seq>20 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:32.011857 node>1 dst>224.1.2.3/6003 inst>56765 seq>21 CMD(CC)  seq>4  rate>25605.468750 len>28 
trace>08:15:32.414692 node>1 dst>224.1.2.3/6003 inst>56765 seq>22 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:32.948376 node>1 dst>224.1.2.3/6003 inst>56765 seq>23 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:33.481800 node>1 dst>224.1.2.3/6003 inst>56765 seq>24 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
trace>08:15:34.014722 node>1 dst>224.1.2.3/6003 inst>56765 seq>25 CMD(FLUSH)  obj>0 blk>16777215 seg>255 len>20 
normFileSend: NORM_TX_FLUSH_COMPLETED event ...
normFileSend: Done.