Re: [PATCH v5 06/15] index-helper: add --detach
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Apr 20, 2016, 09:33 UTC
- Message-ID
- <CACsJy8DbA6Es3-Kb5XXad0+6Mm2VkMtbNCo6rmEio_180L-G0w@mail.gmail.com>
- In-Reply-To
- <1461114267.5540.161.camel@twopensource.com>
On Wed, Apr 20, 2016 at 8:04 AM, David Turner <dturner@twopensource.com> wrote:
Show 26 quoted lines
> On Wed, 2016-04-20 at 06:50 +0700, Duy Nguyen wrote:
>> On Wed, Apr 20, 2016 at 6:28 AM, David Turner <
>> dturner@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