Project

General

Profile

Task #4642

Update producers across platform to unregister prefixes instead of shutting down face

Added by Eric Newberry over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Base
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:

Description

Per #4636, to ensure that the last transmitted Data is not lost, producers need to unregister prefixes to cause Face::processEvents() to return, instead of calling Face::shutdown(). These changes need to be made to producers across the entire platform.


Related issues

Related to ndn-cxx - Task #4636: Modify docs to show producers unregistering prefixes to shut down facesClosedEric Newberry

Actions
#1

Updated by Eric Newberry over 2 years ago

  • Related to Task #4636: Modify docs to show producers unregistering prefixes to shut down faces added
#2

Updated by Eric Newberry over 2 years ago

  • Status changed from New to In Progress
#3

Updated by Eric Newberry over 2 years ago

  • % Done changed from 0 to 10

It appears that the following producers already utilize the unregisterPrefix() mechanism to halt their faces (or potentially some other mechanism that doesn't utilize shutdown() right after sending a Data packet):

  • ndnpingserver
  • ndnputchunks
  • ndn-pib
  • name-based-access-control producers
  • repo-ng
  • ChronoShare
  • ndncert
  • ndn-autoreg
  • ndn-autoconfig-server

Meanwhile, the follow producers utilize the shutdown() mechanism and need to modified to utilize it (if they're still in use):

  • ndnpoke
  • ndn-traffic-server
  • ndn-atmos cxx-producer
#4

Updated by Eric Newberry over 2 years ago

I removed ndnputchunks from the list of producers needing to be modified, since it only calls Face::shutdown() in response to a prefix registration error.

#5

Updated by Eric Newberry over 2 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 10 to 70

Patches for ndnpoke and ndn-traffic-server have been pushed to Gerrit for review.

#6

Updated by Eric Newberry over 2 years ago

Note that I will not be changing instances where Face::shutdown() is called in response to a SIGINT, as exiting immediately seems likely to be the intended behavior in response to that signal.

#7

Updated by Eric Newberry over 2 years ago

  • % Done changed from 70 to 100

Susmit told me not to worry about cxx-producer in ndn-atmos, as ndn-atmos is unable to compile against current versions of ndn-cxx (because it still uses C++11).

#8

Updated by Eric Newberry over 2 years ago

The fix for ndn-traffic-server has been merged.

#9

Updated by Eric Newberry over 2 years ago

  • Status changed from Code review to Closed

The fix for ndnpoke has been merged.

#10

Updated by Davide Pesavento over 2 years ago

  • Status changed from Closed to Feedback

Reopening. Eric reports that the fix for ndn-traffic-server is not working as expected.

#11

Updated by Eric Newberry over 2 years ago

  • Status changed from Feedback to Code review

I discovered that this was caused by the asio SIGTERM handler not being cleared properly. A change has been pushed to Gerrit: https://gerrit.named-data.net/#/c/ndn-traffic-generator/+/4832/

#12

Updated by Eric Newberry over 2 years ago

Eric Newberry wrote:

I discovered that this was caused by the asio SIGTERM handler not being cleared properly. A change has been pushed to Gerrit: https://gerrit.named-data.net/#/c/ndn-traffic-generator/+/4832/

Correction: Actually it's the handler for SIGINT and SIGTERM.

#13

Updated by Davide Pesavento over 2 years ago

  • Status changed from Code review to Closed

Also available in: Atom PDF