Project

General

Profile

Actions

Bug #124

closed

batman-adv 0.2-alpha: possible[tm] regression in packet aggregation

Added by Simon Wunderlich about 15 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Assume we have 2 "threads":

Thread1:

add_packet_list()

-> set_outstanding_packets_timer()

calls spin_trylock(&packets_timer_lock), acquires the lock, and calls

-> cancel_delayed_work_sync(&send_outstanding_packets_wq);

Thread 2:

Workqueue threads, calls

-> set_oustanding_packets()

Assumption:

Thread 2 jumps between the spin_trylock() and cancel_delayed_work_sync(). Then Thread 1 holds, Thread 2 tries to acquire it and waits. Thread 1 then waits for Thread 2 to complete within cancel_delayed_work_sync(). This is a deadlock/lifelock.

Its not very likely that it happens, but it might happen, so i'm opening this ticket. ;)

Actions #1

Updated by Marek Lindner almost 15 years ago

  • Status changed from New to Closed

has been fixed in r1247

Actions #2

Updated by Anonymous about 13 years ago

  • Category set to 2
  • Assignee deleted (Anonymous)
Actions #3

Updated by Sven Eckelmann about 7 years ago

  • Target version set to 0.2
Actions

Also available in: Atom PDF