I managed to crash :observer, which ended up crashing my development server. I’m not sure where to report this. Please direct me to the correct location. In any case, here’s what I did:
on macOS Sierra, startup phoenix (e.g., Rumbl app) using iex -S mix phoenix.server
run :observer.start
click on Applications tab and navigate to your app name. Mine is Rumbl.
make observer fullscreen.
go to the following child process: Elixir.Rumbl.Endpoint > Elixir.Rumbl.Endpoint.Server > pid# > pid# > pid#
Been having this too. I managed to recreate this just by steps 1, 2, 3, double click on any process–step 6 (I’ve tried on my Elixir.MyApp.Endpoint.Config), 7, 8, 9. Basically what you did without fullscreen and specific process.
The output of my terminal:
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
[info] Running MyApp.Endpoint with Cowboy using http://localhost:4000
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :observer.start
:ok
iex(2)> [1] 62019 segmentation fault iex -S mix phoenix.server
Funny thing is, I find that the trigger is doing step 7 and 8 consecutively. The solution (?) is: after you click on X, with the tab still there, lose focus of the Observer window (by clicking on other parts of your desktop, another app’s window, or just via Cmd+Tab switch tabs). It’ll disappear after. Just don’t click the close button twice.
Not a solution to your problem but I found it useful to prevent crashing an important node when Observer occasionally crashes is to run it on a different node.
To accomplish that you need to start your server node in distributed mode. For example by iex --sname my@localhost --cookie my -S mix phoenix.server and start another node by iex --sname observer@localhost --cookie my where you launch observer and use the Nodes menuitem on the GUI to connect to your server node (my@localhost). Make sure both nodes use the same cookie. Observer might still crash but it will not crash your server node.
This method is also the production safe way of using Observer.