-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
File Source/Sink Dropping Samples #2530
Comments
If However, if |
Interesting, I think I've probably also stopped it in the GNU Radio UI which I probably shouldn't do. My guess is that halted things more abruptly as well. Sounds like the scheduling engine may need one more check to work the last samples through? |
I would also like to raise another question for the core devs that I believe may be related to this one: In this case, if I set the However, this is not the case if |
Both issues sound like a bug that needs fixing. |
@fmagno I think the reason why your 2nd flowgraph example does not finish cleanly when the File Source is done, is because you have a block with a msg input, and there's no way for GNU Radio to know when that block is done getting an input (it doesn't realize that Tagged Steam to PDU converts a stream to msgs). So I think it makes sense that GNU Radio doesn't halt, because if you had a flowgraph that was just a bunch of blocks connected with msg ports (which is not uncommon), you wouldn't want GNU Radio to stop. |
That being said, we really need to fix the issue that GNU Radio has always had, where the last few thousand samples from a File Source (or any block) get stuck in buffers unless you are using Run to Completion mode. Need a way to flush them through. |
Can you please test this again with the most recent master branch. I'm not able to reproduce this behavior and the discussion is getting a bit confusing. Regarding the flow graph (file source -> throttle -> file sink):
Regarding the flow graph that converts to PDU in between:
Regarding run to completion with message ports:
Regarding stalled samples:
|
Summary: I managed to test this with the GR version: Legend:
File Source -> Throttle -> File Sink
File Source -> S to TS -> TS to PDU -> PDU to TS -> File Sink
|
As far as I see, the build you are using does not include the commits that are supposed to fix this. It would be great if you could test it with a more recent version. |
Tested with |
@bastibl do you remember what commits were suppose to fix this? If we can, it'd make sense to back port to 3.7, but if not, we should close out this issue. |
@devnulling @bastibl I tried to see if I could find this, and I have a candidate without understanding the issue fully, but just reading the discussions briefly, that candidate is: #2806 This has been backported and merged to both maint-3.7 and maint-3.8. @fmagno could you re-test it on maint-3.7 if that is what you are running? It looks like it is included in 3.7.14.0 and not fixed in 3.7.13.5, if the pull request I mentioned is the fix. |
For the case where there's a MSG between 2 streaming sections: It's not a huge surprise that one has to force quit, since the DONE signal from the source doesn't get propagated through the MSG connection, and hence the sink never receives it. This is a weakness of GR: no control channel that's regardless of the connection type. Fixing this case will not be trivial or easy, though it would be great to see it happen for some next GR version! |
Or ... at least I think that's the way this works ... have to look at the code to be fully 100% sure! |
I just tested 3.8.0.0 and I see this for the three test cases: Options: Generate Options = QT GUI
Options: Generate Options = No GUI - Run to Completion
I see this as an indicator that the issue is likely fixed. |
Closing as based on my test above and earlier comment. |
@Shruthi-Venkata-Sai-Shruthi you are better off posting your query to the GNU Radio users email group. This issue was fixed a long time ago & posting extra here will not result in more discussion. If you believe the issue was not fixed, then reopen the issue & provide specific evidence, and then folks will I'm sure jump in to debug / assist. |
If you connect a file source block through a throttle to a file sink block and set the file source to not repeat, the resulting output file does not contain all of the samples in the original file. This was confirmed running GNURadio 3.7.13.4 on Ubuntu 16.04.
The text was updated successfully, but these errors were encountered: