zhaopuming / quickfast

Automatically exported from code.google.com/p/quickfast
Other
1 stars 0 forks source link

QuickFAST 1.5 fails to process PCap file containing single UDP packet #117

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Due to the changes introduced in release 1.5 (namely processing buffered output 
from PCap source), it seems that QuickFAST started to completely ignore data in 
PCap file if it contains a single UDP packet. There are no problems when there 
is 2 or more UDP datagrams.

The issue is non-specific to particular template or exchange as it is at the 
PCap reader level. I can supply a test case if required, however.

Original issue reported on code.google.com by and...@nazarenko.net on 6 Jul 2013 at 12:20

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Addressing my own issue above. I have found the commit that broke the correct 
behaviour: http://goo.gl/hxE3dE

The changed logic in Receiver.h's startReceive() affected the following:

1) PCapReader::read() is now called TWICE every time the buffer needs to be 
refilled (not sure if this is a bug or a feature, to be honest, looks like a 
bug to me).

2) When PCap contains single UDP packet, it will be "ignored" (maybe because of 
1 above).

Reverting Receiver.h's code to the one from QuickFAST v1.4 restores correct 
behaviour.

Unfortunately complete logic behind the changed code in v1.5 is beyond my 
understanding at the moment, so it would be very helpful to get a comment from 
the authors to at least explain why that change was made (i.e., does it attempt 
fix another bug or improve performance?) If this was made in order to 
accommodate the changes for A/B feeds arbitration and we are not using that at 
the moment, would it be OK to assume that v1.4 code is still OK?

Original comment by and...@nazarenko.net on 26 Jul 2013 at 1:41

GoogleCodeExporter commented 9 years ago
Did you revert just Receiver.h or did you revert the entire change set that 
contains the modification to Receiver.h?

Original comment by dale.wil...@gmail.com on 9 Aug 2013 at 8:28

GoogleCodeExporter commented 9 years ago
I only reverted Receiver.h and that seems to have restored the original v 1.4 
behaviour with regards to calling PCapReader::read() only once.

Original comment by and...@nazarenko.net on 9 Aug 2013 at 8:30