Question about rr alternative design

Yichun Zhang (agentzh) agentzh at gmail.com
Thu Feb 22 20:59:21 UTC 2018


Hello!

On Wed, Feb 21, 2018 at 8:45 AM, Octav Chipara <ochipara at gmail.com> wrote:
> Thanks that works great. It is a bit difficult to stop the recording, but I guess the best way is to send a SIGKILL. I hope that rr does a graceful exit saving the needed data.
>
> On the replay side, how do you trace both the parent and child processes (or at least the child). I have tried to use set follow-fork-mode to child with and without setting follow-exec-mode to both.
>

Maybe you should consider configuring "daemon off; master_process off;
worker_processes 1;" in your nginx.conf while recording? This
essentially disables the nginx master process and uses the "single
process" mode suitable for development and debugging.

You can always send a QUIT signal to the nginx (master) process to let
the process quit gracefully. SIGKILL can be sloppy.

Hope these tips help. That was exactly what I did last year when I
used rr to successfully track down a deep bug in LuaJIT's JIT compiler
while recording the whole nginx process (with our ngx_lua module
compiled in).

To Robert: The ability of attaching rr to any running process would be
really awesome, which makes online recording possible. Is there any
concrete plan on that yet? ;)

Best regards,
Yichun


More information about the rr-dev mailing list