On Wed, Apr 20, 2016 at 8:04 AM, David Turner <dturner@xxxxxxxxxxxxxxxx> wrote: > On Wed, 2016-04-20 at 06:50 +0700, Duy Nguyen wrote: >> On Wed, Apr 20, 2016 at 6:28 AM, David Turner < >> dturner@xxxxxxxxxxxxxxxx> wrote: >> > @@ -317,6 +320,8 @@ int main(int argc, char **argv) >> > if (fd < 0) >> > die_errno(_("could not set up index-helper >> > socket")); >> > >> > + if (detach && daemonize(&daemonized)) >> > + die_errno(_("unable to detach")); >> >> At the least, I think we need to redirect both stdout and stderr to a >> file, so we can catch errors. The watchman patch uses warning() to >> report errors, for example. And there is always a chance of die(). >> >> Then we need to report the errors back. I faced the same problem with >> daemonizing git-gc, but I'm not sure if we can do exactly the same >> here like in commit 329e6e8 (gc: save log from daemonized gc --auto >> and print it next time - 2015-09-19) > > I'll add in code to log errors. I'm not sure where it would make sense > to report the errors. Generally, for errors during a client operation, > we would like to report them to the client, but the client might have > already disconnected. I guess in that case it's OK if they just go to > the log? The client could warn on a timeout while waiting for index > -helper and direct people to the log. Yeah if the client already disconnects, we have no way but saving the errors somewhere. index-helper can pick up from the log and report to the next client, if you want to keep it simple. If we're building a more complicated protocol on top of unix socket, I suggest you use pkt-line to wrap/unwrap messages. Bonus point, we can trace what's sending/receiving with GIT_TRACE_PACKET. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html