Project

General

Profile

Actions

Bug #460

open

tt: batadv_tt_local_resize_to_mtu() causes size_dec() without matching size_inc()

Added by Sven Eckelmann 11 days ago. Updated 4 days ago.

Status:
In Progress
Priority:
Normal
Target version:
-
Start date:
07/30/2026
Due date:
% Done:

0%

Estimated time:

Description

Some new report about TT:

batadv_tt_local_purge_list() (:1458-1469) skips NOPURGE and PENDING entries but not BATADV_TT_CLIENT_NEW, so it can set PENDING on a never-counted entry.

On the normal worker path that's harmless, because batadv_tt_local_commit_changes_nolock() runs transition_new() before purge_pending_clients(), so the entry gets counted and then uncounted. But batadv_tt_local_resize_to_mtu() (:4284, reached from hard-interface.c:719) calls batadv_tt_local_purge() and batadv_tt_local_purge_pending_clients() directly with no transition_new() in between - and its timeout halves from 30 min down towards 0, so it will eventually match freshly added entries. That's a size_dec() with no matching size_inc(), i.e. the undercount direction, in the one code path that is specifically entered when the counter is already too high.

Actions #1

Updated by Sven Eckelmann 4 days ago

  • Status changed from New to In Progress

This should be handled by the three last commits in https://patchwork.open-mesh.org/project/b.a.t.m.a.n./list/?series=851

Actions

Also available in: Atom PDF