Skip to content

Directory File Listing errors on received NAK #13

@0lionelzhang0

Description

@0lionelzhang0

Steps to reproduce:

  • Turn off destination CFDP entity
  • Make directory listing request
    indications = cfdp_directory_listing(remote_entity_id: 1, directory_name: ".", directory_file_name: "my_listing.txt")
  • Wait a couple seconds
  • Turn on destination CFDP entity
  • See this error from the CFDP microservice
TypeError : no implicit conversion of nil into String
/tmp/d20250514-172-2v0pi/app/models/cfdp_mib.rb:241:in `join'
/tmp/d20250514-172-2v0pi/app/models/cfdp_mib.rb:241:in `get_source_file'
/tmp/d20250514-172-2v0pi/app/models/cfdp_source_transaction.rb:404:in `handle_nak'
/tmp/d20250514-172-2v0pi/app/models/cfdp_source_transaction.rb:387:in `handle_pdu'
/tmp/d20250514-172-2v0pi/app/models/cfdp_user.rb:77:in `block (2 levels) in start'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:184:in `block (3 levels) in read_topics'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:182:in `each'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:182:in `block (2 levels) in read_topics'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:181:in `each'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:181:in `block in read_topics'
/usr/lib/ruby/gems/3.3.0/gems/connection_pool-2.5.3/lib/connection_pool.rb:110:in `block (2 levels) in with'
/usr/lib/ruby/gems/3.3.0/gems/connection_pool-2.5.3/lib/connection_pool.rb:109:in `handle_interrupt'
/usr/lib/ruby/gems/3.3.0/gems/connection_pool-2.5.3/lib/connection_pool.rb:109:in `block in with'
/usr/lib/ruby/gems/3.3.0/gems/connection_pool-2.5.3/lib/connection_pool.rb:106:in `handle_interrupt'
/usr/lib/ruby/gems/3.3.0/gems/connection_pool-2.5.3/lib/connection_pool.rb:106:in `with'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:61:in `with'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:177:in `read_topics'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:89:in `public_send'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/utilities/store_autoload.rb:89:in `method_missing'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/topics/topic.rb:29:in `public_send'
/usr/lib/ruby/gems/3.3.0/gems/openc3-6.4.0/lib/openc3/topics/topic.rb:29:in `method_missing'
/tmp/d20250514-172-2v0pi/app/models/cfdp_user.rb:57:in `block in start'

CFDP plugin destination entity options

  OPTION destination_entity_id 1
  OPTION cmd_info CFDP CFDP_PDU PDU
  OPTION crcs_required false
  OPTION enable_eof_nak true
  OPTION default_transmission_mode ACKNOWLEDGED
  OPTION enable_keep_alive false
  OPTION ack_timer_interval 10
  OPTION ack_timer_expiration_limit 10
  OPTION nak_timer_interval 10
  OPTION nak_timer_expiration_limit 10

This is what my destination CFDP entity is logging (not COSMOS related)

Event: ENTERED_STATE, State: WAIT_FOR_EOF
Event: RECEIVED_EOF_NO_ERROR, State: WAIT_FOR_EOF
Send Ack EOF
Event: ENTERED_STATE, State: GET_MISSING_DATA
Send Nak

Things that work

  • directory listing while destination CFDP entity is on (no NAKs sent)
  • file uplink transaction when destination CFDP entity starts off (sends NAK)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions