Closed daniestevez closed 4 days ago
The cause of this seems to be the same as #13:
ConsumableInputRange(.., 38912, 4160)
_buffer->_claimStrategy._publishCursor.value() = 7120960, _readIndexCached = 7116800, _readIndex->value() = 7116800
_buffer->_claimStrategy._publishCursor.value() = 7120960, _readIndexCached = 7116800, _readIndex->value() = 7116800
Writer::tryReserve(0), _offset = 7120960
WARNING: PublishableOutputRange(parent) setting _index and _offset to 0
PublishableOutputRange calling _claimStrategy.publish(0, 0)
_buffer->_claimStrategy._publishCursor.value() = 0, _readIndexCached = 7120960, _readIndex->value() = 7120960
getPortLimits() result.maxAvailable = 18446744073702430656, available = 18446744073702430656
gr::packet_modem::FileSink<std::__1::complex<float>>::workInternal() processedIn = 18446744073702430656, availableToProcess = 18446744073702430656, maxSyncAvailableIn = 18446744073702430656
ConsumablePortInputRange::get(18446744073702430656)
Probably this bug has been fixed by https://github.com/fair-acc/gnuradio4/pull/406. Closing.
This bug is easier to replicate when writing to
/dev/null
instead of a FIFO that goes to a GNU Radio 3.10 flowgraph.Compiling with
-DTRACE
and running as./examples/packet_transmitter_sdr /dev/null 1 | grep -v TunSource
gives the following:After
FileSink
is called withinSpan.size() = 4160
(which is what thePacketCounter
has produced immediately before),FileSink
is called again withinSpan.size() = 18446744073700898048
. This is completely wrong, and apparently happens even thoughPacketCounter
(which is connected to theFileSink
input) hasn't been called again. Note that18446744073700898048 = 2**64 - 8653568
.