On Wed, Apr 20, 2016 at 8:04 AM, David Turner <dtur...@twopensource.com> wrote:
> On Wed, 2016-04-20 at 06:50 +0700, Duy Nguyen wrote:
>> On Wed, Apr 20, 2016 at 6:28 AM, David Turner <
>> dtur...@twopensource.com> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to