Skip to content
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

SF: PC: Spurious CFDP transaction finished event when sending a batch of files #20

Open
iondev33 opened this issue Dec 21, 2023 · 0 comments
Assignees
Labels
bug Something isn't working Source Forge - bug bug report migrated from SF
Milestone

Comments

@iondev33
Copy link
Collaborator

I am using an updated version of cfdp_test to send a batch of files from one node to another. I am using cfdplisten to monitor the cfdp events on the receiving node. When multiple files are sent, older 'transaction finished' events seem to be generated once in a while a bit later. In attached log file, from Transaction ID: 1.30, transaction finished event is first generated at: 2021-02-18T21:35:00.668. Another similar event is generated again at 2021-02-18T21:35:05.421. You will need to ignore the cfdpFileName which is captured from last metadata received event.
It is also not clear why the EOF received event for transaction 1.30 is printed at 2021-02-18T21:35:01.078 after transaction finished is printed at 2021-02-18T21:35:00.668. Are the event orders not preserved?
This is a little confusing. Thanks.

------ comment --------
I am looking into this a little more. I am currently using a simple cfdp command file like this:

d {nodeNumber} f {sourceName} t {destName} &

So this would use a default mode 0, criticality 0, closure latency 0???, It is possible that some packets get dropped... not sure why transaction finished event would get out of order (which is bad since I need to match it with info in metadata).
May be I can try with additional parameters to get to a reliable file transfer?
like:
a 60
m 2
c 1

Is there a recommendation for CFDP file transfers?

--------comment---------
When the file already exists on remote system, the behavior becomes problematic with weird events being generated out of order and duplicated. When the file does not exist, behavior seems to be as advertised in all modes. This was troubleshooted by adding fileStatus and deliveryCode in print statements of cfdp_listen.

-------comment----------
After a weekend of testing, CFDP batch transfers are still problematic. Events do not seem to be caught (or generated) in order. Transfer finished may occur before the metadata event. In mode 0, the metadata event can even be missing. In mode 2, with version 3.7.2, it is not working with more than one file transfer

-------comment----------
In ION, CFDP events are delivered to the CFDP user application program in the order in which they are detected. But we don't want a stuck CFDP user application program to torpedo the whole node, letting unlimited growth in the queue of unhandled events consume all resources in the system. So the length of the CFDP queue of not-yet-handled events is limited, and when appending an event to the queue causes that limit to be exceeded the oldest events in the queue are deleted, in order, until the queue length is again within its limit. The limit defaults to 20 but you can change it in cfdpadmin by using the "m maxevents" command (see the cfdprc(5) man page).

@iondev33 iondev33 added bug Something isn't working Source Forge - bug bug report migrated from SF labels Dec 21, 2023
@iondev33 iondev33 added this to the ION 4.1.4 milestone Dec 21, 2023
@iondev33 iondev33 self-assigned this Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Source Forge - bug bug report migrated from SF
Projects
None yet
Development

No branches or pull requests

1 participant