Bug #460
opentt: batadv_tt_local_resize_to_mtu() causes size_dec() without matching size_inc()
0%
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.
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