Re: disksup crashing when spawned/forked from process
Luke Bakken <[email protected]> Thu, 23 Nov 2017 14:21:55 -0800
| Newsgroups | gmane.comp.lang.erlang.general,gmane.comp.lang.erlang.bugs |
|---|---|
| Message-ID | <CADFEJuf6+-WQ-K5rJ56-qhrsrbFB9RqaTeH-vLM6ug7uGhiNGg@mail.gmail.com> |
--===============7347248791536701965== Content-Type: multipart/alternative; boundary="001a11402ef229579b055eaddd44" --001a11402ef229579b055eaddd44 Content-Type: text/plain; charset="UTF-8" Hi Chris - What is "path_to_app_executable"? erl itself or a relx-type shell script sort of thing? On Nov 23, 2017 1:54 PM, "Christopher Meiklejohn" < [email protected]> wrote: I've got an Erlang/Elixir application that's being invoked via child_process in Node.js. Outside of Node.js, it's fine. Inside, the node crashes on startup with a badarg from disksup -- this is because the application requires that os_mon be started. A trivial reproducer is the following: var child_process = require('child_process'); child_process.spawn(path_to_app_executable, ['foreground'], { stdio: ignore, detached: true }); Included is the crash: 2017-11-23 21:26:04 =ERROR REPORT==== ** Generic server disksup terminating ** Last message in was timeout ** When Server state == [{data,[{"OS",{unix,linux}},{"Timeout",1800000},{"Threshold",80},{"D iskData",[]}]}] ** Reason for termination == ** {badarg,[{erlang,port_close,[#Port<0.2000>],[]},{disksup,terminate,2,[{file,"disksup.erl" },{line,169}]},{gen_server,try_terminate,3,[{file,"gen_server.erl"},{line,629}]},{gen_server ,terminate,7,[{file,"gen_server.erl"},{line,795}]},{proc_lib,init_p_do_apply,3,[{file,"proc_ lib.erl"},{line,247}]}]} 2017-11-23 21:26:04 =CRASH REPORT==== crasher: initial call: disksup:init/1 pid: <0.913.0> registered_name: disksup exception exit: {{badarg,[{erlang,port_close,[#Port<0.2000>],[]},{disksup,terminate,2,[{ file,"disksup.erl"},{line,169}]},{gen_server,try_terminate,3,[{file,"gen_server.erl"},{line, 629}]},{gen_server,terminate,7,[{file,"gen_server.erl"},{line,795}]},{proc_lib,init_p_do_app ly,3,[{file,"proc_lib.erl"},{line,247}]}]},[{gen_server,terminate,7,[{file,"gen_server.erl"} ,{line,800}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]} ancestors: [os_mon_sup,<0.911.0>] messages: [] links: [<0.912.0>] dictionary: [] trap_exit: true status: running heap_size: 610 stack_size: 27 reductions: 368 neighbours: 2017-11-23 21:26:04 =SUPERVISOR REPORT==== Supervisor: {local,os_mon_sup} Context: child_terminated Reason: {badarg,[{erlang,port_close,[#Port<0.2000>],[]},{disksup,terminate,2,[{file ,"disksup.erl"},{line,169}]},{gen_server,try_terminate,3,[{file,"gen_server.erl"},{line,629} ]},{gen_server,terminate,7,[{file,"gen_server.erl"},{line,795}]},{proc_lib,init_p_do_apply,3 ,[{file,"proc_lib.erl"},{line,247}]}]} Offender: [{pid,<0.913.0>},{id,disksup},{mfargs,{disksup,start_link,[]}},{restart_typ e,permanent},{shutdown,2000},{child_type,worker}] _______________________________________________ erlang-questions mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-questions --001a11402ef229579b055eaddd44 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto"><div>Hi Chris -<div dir=3D"auto"><div dir=3D"auto"><br></= div><div dir=3D"auto">What is "path_to_app_executable"? erl itsel= f or a relx-type shell script sort of thing?</div></div><div class=3D"gmail= _extra"><br><div class=3D"gmail_quote">On Nov 23, 2017 1:54 PM, "Chris= topher Meiklejohn" <<a href=3D"mailto:christopher.meiklejohn@gmail.= com">[email protected]</a>> wrote:<br type=3D"attribution= "><blockquote class=3D"quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c= cc solid;padding-left:1ex"><div dir=3D"ltr">I've got an Erlang/Elixir a= pplication that's being invoked via child_process in Node.js.=C2=A0 Out= side of Node.js, it's fine.=C2=A0 Inside, the node crashes on startup w= ith a badarg from disksup -- this is because the application requires that = os_mon be started.<div><br></div><div>A trivial reproducer is the following= :</div><div><br></div><div>var child_process =3D require('child_process= ');</div><div>child_process.spawn(path_to_<wbr>app_executable, ['fo= reground'],=C2=A0</div><div>=C2=A0{ stdio: ignore,=C2=A0</div><div>=C2= =A0 =C2=A0detached: true });</div><div><br></div><div>Included is the crash= :</div><div><pre style=3D"word-wrap:break-word;white-space:pre-wrap">2017-1= 1-23 21:26:04 =3DERROR REPORT=3D=3D=3D=3D ** Generic server disksup terminating ** Last message in was timeout ** When Server state =3D=3D [{data,[{"OS",{unix,linux}},{"<w= br>Timeout",1800000},{"Threshold"<wbr>,80},{"D iskData",[]}]}] ** Reason for termination =3D=3D ** {badarg,[{erlang,port_close,[#<wbr>Port<0.2000>],[]},{disksup,<wbr= >terminate,2,[{file,"disksup.<wbr>erl" },{line,169}]},{gen_server,<wbr>try_terminate,3,[{file,"gen_<wbr>serve= r.erl"},{line,629}]},{<wbr>gen_server ,terminate,7,[{file,"gen_<wbr>server.erl"},{line,795}]},{<wbr>pro= c_lib,init_p_do_apply,3,[{<wbr>file,"proc_ lib.erl"},{line,247}]}]} 2017-11-23 21:26:04 =3DCRASH REPORT=3D=3D=3D=3D crasher: initial call: disksup:init/1 pid: <0.913.0> registered_name: disksup exception exit: {{badarg,[{erlang,port_close,[<wbr>#Port<0.2000>]= ,[]},{disksup,<wbr>terminate,2,[{ file,"disksup.erl"},{line,169}<wbr>]},{gen_server,try_terminate,<= wbr>3,[{file,"gen_server.erl"},{<wbr>line, 629}]},{gen_server,terminate,<wbr>7,[{file,"gen_server.erl"},{<wb= r>line,795}]},{proc_lib,init_p_<wbr>do_app ly,3,[{file,"proc_lib.erl"},{<wbr>line,247}]}]},[{gen_server,<wbr= >terminate,7,[{file,"gen_<wbr>server.erl"} ,{line,800}]},{proc_lib,init_<wbr>p_do_apply,3,[{file,"proc_lib.<wbr>e= rl"},{line,247}]}]} ancestors: [os_mon_sup,<0.911.0>] messages: [] links: [<0.912.0>] dictionary: [] trap_exit: true status: running heap_size: 610 stack_size: 27 reductions: 368 neighbours: 2017-11-23 21:26:04 =3DSUPERVISOR REPORT=3D=3D=3D=3D Supervisor: {local,os_mon_sup} Context: child_terminated Reason: {badarg,[{erlang,port_close,[#<wbr>Port<0.2000>],[]}= ,{disksup,<wbr>terminate,2,[{file ,"disksup.erl"},{line,169}]},{<wbr>gen_server,try_terminate,3,[{<= wbr>file,"gen_server.erl"},{line,<wbr>629} ]},{gen_server,terminate,7,[{<wbr>file,"gen_server.erl"},{line,<w= br>795}]},{proc_lib,init_p_do_<wbr>apply,3 ,[{file,"proc_lib.erl"},{line,<wbr>247}]}]} Offender: [{pid,<0.913.0>},{id,disksup},<wbr>{mfargs,{disksup,= start_link,[]<wbr>}},{restart_typ e,permanent},{shutdown,2000},{<wbr>child_type,worker}]</pre></div></div> <br>______________________________<wbr>_________________<br> erlang-questions mailing list<br> <a href=3D"mailto:[email protected]">[email protected]<= /a><br> <a href=3D"http://erlang.org/mailman/listinfo/erlang-questions" rel=3D"nore= ferrer" target=3D"_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-qu= estions</a><br> <br></blockquote></div><br></div></div></div> --001a11402ef229579b055eaddd44-- --===============7347248791536701965== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline