Bug 203969

Summary: ODEBUG: memorize full stack traces
Product: Memory Management Reporter: Dmitry Vyukov (dvyukov)
Component: SanitizersAssignee: MM/Sanitizers virtual assignee (mm_sanitizers)
Status: NEW ---    
Severity: normal CC: kasan-dev
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: ALL Subsystem:
Regression: No Bisected commit-id:

Description Dmitry Vyukov 2019-06-24 10:52:51 UTC
This is related to CONFIG_DEBUG_OBJECTS but may be relevant for other debug configs as well. We should use lib/stackdepot.c (CONFIG_STACKDEPOT) in more debugging facilities to memorize full stack traces. stackdepot maps a full stack trace to an u32 (i.e. smaller than memorizing a single PC).

In particular come up in the context of:
https://syzkaller.appspot.com/bug?extid=c4521ac872a4ccc3afec
https://groups.google.com/forum/#!msg/syzkaller-bugs/0T-seeO7cwc/X82YaRNWBAAJ

which contains just:

------------[ cut here ]------------ 
ODEBUG: free active (active state 0) object type: timer_list hint: 
delayed_work_timer_fn+0x0/0x90 arch/x86/include/asm/paravirt.h:767 

and then Thomas says:

"One of the cleaned up devices has left an active timer which belongs to a 
delayed work. That's all I can decode out of that splat. :("

Presumably having a full stack for the timer allocation would make this actionable.