Project

General

Profile

Actions

Bug #1754

closed

Missing Forwarder::setUnsatisfyTimer in some cases

Added by Alex Afanasyev over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Forwarding
Target version:
Start date:
07/10/2014
Due date:
% Done:

100%

Estimated time:

Description

There are at least two cases when setUnsatisfyTimer is never called inside Outgoing Interest pipeline:

  • when something wrong with face id
  • when interest violates scope

More troublesome case is the fact that onOutgoingInterest may not be even called from the strategy.
At the same time, when we receive Interest we cancel all timers before forwarding Interest to the strategy.
This is wrong and I would suggest setting at least unsatisfy timer within Incoming Interest pipeline, not inside outgoing.

Actions #1

Updated by Alex Afanasyev over 9 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50
Actions #2

Updated by Alex Afanasyev over 9 years ago

  • Status changed from In Progress to Code review
Actions #3

Updated by Junxiao Shi over 9 years ago

  • Description updated (diff)

It's semantically CORRECT to set unsatisfy timer in incoming Interest pipeline, because this timer fires when all in-records expires.
Previously I decided to place this step in outgoing Interest pipeline, because I wanted to avoid cancelling timers in Interest reject pipeline (because unsatisfy timer and straggler timer cannot be set together on the same PIT entry), and I didn't recognize the risk of doing that.

I'll follow up with the pending commit, and update Developer Guide as well.

Actions #4

Updated by Junxiao Shi over 9 years ago

  • Category changed from Faces to Forwarding
  • % Done changed from 50 to 100

Code and Developer Guide are updated.

Actions #5

Updated by Junxiao Shi over 9 years ago

  • Status changed from Code review to Closed
Actions

Also available in: Atom PDF