Project

General

Profile

Actions

Bug #540

closed

Multiple issues in defrag code

Added by Eric Leblond about 12 years ago. Updated about 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Affected Versions:
Effort:
Difficulty:
Label:

Description

There is some issues in defrag code.

One is an error in Defrag4Reassemble and Defrag6Reassemble which clean the tracker which is used by the calling function.

An other one, is a possible use of invalid data by if two threads are using the same tracker and the first who get the lock on the tracker clean it.

This two bugs implies architecture problem and this part of the code need should be rewritten.


Subtasks 1 (0 open1 closed)

Bug #512: Fix logic of call to DefragTimeoutTracker()ClosedVictor Julien07/27/2012Actions
Actions #1

Updated by Victor Julien about 12 years ago

Looks like the defrag code uses Pool with the assumption of no extra allocs and frees. If the pool is a fixed size and the trackers are never freed (part of) the problem goes away it seems.

Actions #2

Updated by Eric Leblond about 12 years ago

Agree. We need at least a careful check and some comments.

Actions #3

Updated by Victor Julien about 12 years ago

  • Status changed from New to Assigned
  • Assignee set to Victor Julien
  • Target version set to 1.4beta2

Going to rewrite the hashing to match the flow and host tables.

Actions #4

Updated by Victor Julien about 12 years ago

  • Status changed from Assigned to Closed

Addressed by commit:

commit 7a044a99ee14101fbca0bc44ffa96b74ff88883d
Author: Victor Julien <victor@inliniac.net>
Date:   Tue Sep 18 18:13:09 2012 +0200

    Defrag engine

    Big rewrite of defrag engine to make it more scalable and fix some
    locking logic flaws.

    Now uses a hash of trackers similar to Flow and Host hashes.

Actions

Also available in: Atom PDF