You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need this to prevent synchronous signals received in the syscall buffer from blowing up the world, and to better handle buffer overflows when we buffer variable-sized output data.
I have the original branch rebased and cleaned up a bit (with some of my own riders) at https://github.com/cgjones/rr/tree/syscall-buffer-cleanup . The change to filtering semantics requires double-checking WRAP_SYSCALLS_CALLSITE_IN_WRAPPER() and its users, which I'll do before merging.
I think signals/context-switches inside the buffer library are still completely broken with this patch (but no worse than the state I had it in). I assume fixing that will be a followup patch.
Errm yeah :). I never claimed our test coverage for the buffer was there yet ;).
I think signals/context-switches inside the buffer library are still completely broken with this patch (but no worse than the state I had it in). I assume fixing that will be a followup patch.
Well, this code is off by default, and even then all the broken syscalls were already disabled before your patch. There's existing signal brokenness that your patch didn't change. The only "regression" here AFAIK is temporarily disabling futex, which I'd like to un-regress before landing. But since it's effectively dead code atm, I'm not in a huge hurry. But also no big hurry to get on upstream/master.
It turns out that the futex code isn't used, because glibc directly traps to the kernel. So except for the CALLSITE_IN_LIB issue, I think we're back to where we were functionality-wise with a nice cleanup on top. Then the hard work begins :).
We're back to (actually, as opposed to apparently, #145) passing all tests and recording firefox. We fail replaying FF, but so does master. I think we're about ready to merge. Would like to get the lib rename in for 0.0 to reduce future hassle.
Activity
joneschrisg commentedon Jun 24, 2013
We need this to prevent synchronous signals received in the syscall buffer from blowing up the world, and to better handle buffer overflows when we buffer variable-sized output data.
joneschrisg commentedon Jun 25, 2013
I have the original branch rebased and cleaned up a bit (with some of my own riders) at https://github.com/cgjones/rr/tree/syscall-buffer-cleanup . The change to filtering semantics requires double-checking WRAP_SYSCALLS_CALLSITE_IN_WRAPPER() and its users, which I'll do before merging.
rocallahan commentedon Jun 25, 2013
+#define SYSCALL_BUFFER_LIB_FILENAME "librr_wrap_syscalls.so"
Change to "buffer"?
I think signals/context-switches inside the buffer library are still completely broken with this patch (but no worse than the state I had it in). I assume fixing that will be a followup patch.
joneschrisg commentedon Jun 25, 2013
Errm yeah :). I never claimed our test coverage for the buffer was there yet ;).
Well, this code is off by default, and even then all the broken syscalls were already disabled before your patch. There's existing signal brokenness that your patch didn't change. The only "regression" here AFAIK is temporarily disabling
futex, which I'd like to un-regress before landing. But since it's effectively dead code atm, I'm not in a huge hurry. But also no big hurry to get on upstream/master.joneschrisg commentedon Jun 25, 2013
It turns out that the
futexcode isn't used, because glibc directly traps to the kernel. So except for the CALLSITE_IN_LIB issue, I think we're back to where we were functionality-wise with a nice cleanup on top. Then the hard work begins :).joneschrisg commentedon Jun 25, 2013
We're back to (actually, as opposed to apparently, #145) passing all tests and recording firefox. We fail replaying FF, but so does master. I think we're about ready to merge. Would like to get the lib rename in for 0.0 to reduce future hassle.
joneschrisg commentedon Jun 26, 2013
Resolved by #148. What landed was mostly a cleanup, lots more work remains.
The last two tests; Not yet fixed, still failing if enabled.
The last two tests; Not yet fixed, still failing if enabled.
The last two tests; Not yet fixed, still failing if enabled.
The last two tests; Not yet fixed, still failing if enabled.
The last two tests; Not yet fixed, still failing if enabled.
Run asan-enabled test and test clone_cleartid_coredump with detect_le…
Avoid assert which is now more likely after recent commit.
Avoid assert which is now more likely after recent commit.
Avoid assert which is now more likely after recent commit.
Avoid assert which is now more likely after recent commit.
Avoid assert which is now more likely after recent commit.
Avoid assert which is now more likely after recent commit.