Hi,
we are designing a block that receives multiple streams of bursts of data and produces in return other bursts of data. there is no correlation on the amount of data at the input and at the output and it's not possible to tell in advance how much data it will be arriving.
the input stream is tagged with rx_eob as it consists in variable length packets each of which is tag terminated
we are seeing a number of odd behaviours:
1) sometimes the general_work will receive, at the end of the buffer, an incomplete packet. the issue with this is that the packet that has been broken in two pieces ends up having a rx_eob tag at the interruption point, thus splitting it effectively in two packets
2) if we don't consume all the input data immediately in a call to general_work we correctly see data we left being resent with next buffer however we see a memory leak
3) if we consume ninput_items passed to general_work for each stream we see memory leak. odd enough memory leak does not show up if we consume noutput_items which may be bigger than ninput_items
4) if we produce less than noutput_items by calling the produce function and returning WORK_CALLED_PRODUCE we see a memory leak
we are currently using Release 3.7.13.3 (git hash 3fef6dc5d9174c172f75d97b0e332171b5a53f18).
any help on this would be greatly appreciated...
thanks,
Francesco.
No comments:
Post a Comment