You are right about parent exiting. Sorry, that might have caused confusion. Actually the child becomes daemon now. Does that change how secure handshake in grpc behaves ? The builder.BuildAndStart() returns std::unqiue_ptr. Your suggested changes seems to make no difference to process state.
On Tuesday, March 7, 2017 at 1:47:52 PM UTC-8, Ken Payson wrote: > > I'm not familiar with the interaction of unique_ptr<> and exit(). > > What happens if you try the following: > > grpc::Server* server_ptr = builder.BuildAndStart(); > int childpid = fork(); > if ( childpid ) > exit(0); > server = std::unique_ptr<grpc::Server>(server_ptr); > > > Also, in the problem you stated, it sounded like you were forking and > exiting the child immediately. The code provided exits the parent process > immediately. > > > > On Tue, Mar 7, 2017 at 1:32 PM, AK <[email protected] <javascript:>> > wrote: > >> No. The child does nothing but exit. Below is an example of what I am >> doing. If I move the server startup line to the end, everything works fine. >> >> server = std::unique_ptr<grpc::Server>(builder.BuildAndStart()); >> int childpid = fork(); >> if ( childpid ) >> exit(0); >> >> >> On Tuesday, March 7, 2017 at 1:03:01 PM UTC-8, Ken Payson wrote: >>> >>> Are you calling any destructors in the forked process before exit? >>> Destroying the server will call shutdown() on the underlying sockets, which >>> will cause problems for the parent process. >>> >>> Ken >>> >>> On Tue, Mar 7, 2017 at 12:19 PM, AK <[email protected]> wrote: >>> >>>> The forked child simply exits leaving the parent as daemon. I am doing >>>> it in C++ on Ubuntu. >>>> >>>> On Tuesday, March 7, 2017 at 12:07:40 PM UTC-8, Nicolas Noble wrote: >>>>> >>>>> Does the forked child do any gRPC call at all ? Also, which language ? >>>>> >>>>> On Tue, Mar 7, 2017 at 9:40 AM, AK <[email protected]> wrote: >>>>> >>>>>> >>>>>> I am trying to make grpc server a daemon by forking a child and >>>>>> making it exit. But after that the client handshake starts to fail. >>>>>> >>>>>> E0307 01:15:58.221786152 27094 handshake.c:128] Security >>>>>> handshake failed: >>>>>> {"created":"@1488878158.221756436","description":"Handshake read >>>>>> failed","file":"src/core/lib/security/transport/handshake.c","file_line":237,"referenced_errors":[{"created":"@1488878158.221740996","description":"FD >>>>>> >>>>>> shutdown","file":"src/core/lib/iomgr/ev_epoll_linux.c","file_line":948}]} >>>>>> >>>>>> This happens if fork() is called after the call to BuildAndStart(). >>>>>> If the same fork is done before BuildAndStart() everything works fine. >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "grpc.io" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at https://groups.google.com/group/grpc-io. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/grpc-io/1d59f06c-bdad-4a00-9f01-1abcd59a7cbc%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/grpc-io/1d59f06c-bdad-4a00-9f01-1abcd59a7cbc%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "grpc.io" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/grpc-io. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/grpc-io/c2f99403-4ac5-43bf-b9cf-cfdc3eb149da%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/grpc-io/c2f99403-4ac5-43bf-b9cf-cfdc3eb149da%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "grpc.io" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/grpc-io. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/grpc-io/d951fc71-6415-465a-9f56-bf4112c926e1%40googlegroups.com >> >> <https://groups.google.com/d/msgid/grpc-io/d951fc71-6415-465a-9f56-bf4112c926e1%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/653cb90f-2322-4032-be3b-fa202469ac2d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
