Skip to contentSkip to conversation

uretprobe occasionally fires twice

DISCUSSION Benjamin King 1 participant 1 message Aug 8, 2017

lore
Share & tools
lore
#0 lore raw

Hi,

I have placed a uprobe and a uretprobe on the same function in libc. When perf record'ing a larger test where the function is called from multiple threads, I can occasionally see the following sequence of events in a 'perf script':

1) uretprobe fires
2) uprobe fires
3) uretprobe fires again

More specifically, I am tracing libc's realloc. Since I trace the size of the memory in question, I think that the uretprobe in 1) is called at function entry.

This only happens occasionally and I unfortunately I could not reproduce it with a small testcase yet.

'perf script' prints two warnings:
* Processed 17216221 events and lost 2 chunks!
* 114 out of order events recorded.

Could this explain the duplicated output? Are there other known circumstances where a uretprobe could be unreliable in some way?

Cheers,
Benjamin