uretprobe occasionally fires twice
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