Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/12739


Change subject: [subprocess] use RAW_LOG() in child process
......................................................................

[subprocess] use RAW_LOG() in child process

Ideally, in the phase between fork() and exec() for a newly forked
process only async-signal safe functions should be called.  At least,
LOG() should not be called since it involves taking a lock while
flushing the message into the log sink.  Otherwise, the child process
can deadlock on attempt to write a log message via GLOG if the glog's
mutex has been copied from the parent's address space in locked state.

TODO: add a test scenario to simulate the deadlock and make sure
      it passes with this patch

Change-Id: Ic9dca4ca8b1a6d72c9fc818ea41109c80ace3e39
---
M src/kudu/util/signal.cc
M src/kudu/util/subprocess.cc
2 files changed, 57 insertions(+), 17 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/39/12739/1
--
To view, visit http://gerrit.cloudera.org:8080/12739
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic9dca4ca8b1a6d72c9fc818ea41109c80ace3e39
Gerrit-Change-Number: 12739
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <[email protected]>

Reply via email to