dantswain

dantswain

Hi! Does anyone have any recommendation on how to debug my application seemingly completely randomly shutting down? The only diagnostic information I seem to get is that it logs

[notice] Application my_app exited: shutdown

AFAIK there’s nothing else weird going on with the app. This is my dev machine so it’s entirely possible that it’s being caused by something there (OOM killer? Running out of file descriptors?) but I don’t know how to get at the underlying cause. I’m not seeing this in other environments like production.

Nothing else is being logged around it, it doesn’t seem to correlate to application errors (which I run into during development for sure) or anything else in particular. It just randomly shuts down and I have to restart it.

Showing Posts 1 to 8

dimitarvp

dimitarvp

You haven’t given us any information so I’d offer you to start disabling the supervised parts of your app one by one and trying to reproduce the problem until you pinpoint the guilty party.

dantswain

dantswain OP

You haven’t given us any information

This is all the information I have! That’s my point lol. I’m hoping to learn how to get more information.

It’s a pretty basic phoenix app. I can’t disable much from the supervision tree without making the app useless which isn’t really acceptable at the moment since I wouldn’t be able to get anything done.

If any part of my supervision tree was crashing, would I not see error logs? Is there a logger setting I’m forgetting about? I haven’t changed anything from the mix phx.new config. I’m going to try enabling SASL handling in the elixir logger.

dimitarvp

dimitarvp

TBF I am really not the right guy to help you here, just gave you one shot in the dark – I don’t do Phoenix for a while now.

I’d try enabling logging as much as possible indeed but otherwise no, parts of the apps falling down shouldn’t normally spam the stdout so yeah it can be a bit invisible.

How new is the app? If you just started you can also create it anew with mix phx.new and make a directory-wide diff?

dantswain

dantswain OP

Just following up here, I finally caught it. I enabled SASL logging and caught the supervisor’s crash message.

It’s not super relevant to the original question but in case anyone else stumbles upon this, the error I’m getting is:

[error] Child Plug.Cowboy.Drainer of Supervisor MyAppWeb.Endpoint shut down abnormally
** (exit) killed
Pid: #PID<0.1011.0>
Start Call: Plug.Cowboy.Drainer.start_link([refs: [MyAppWeb.Endpoint.HTTP]])
Restart: :permanent
Shutdown: 5000
Type: :worker

Without SASL logging enabled there was nothing else in the logs to indicate why the app had crashed.

dimitarvp

dimitarvp

Cool! And did you find out why was it failing?

dantswain

dantswain OP

Not yet but I opened an issue :slight_smile:

ream88

ream88

Thanks for this, helped me debugging a similar issue :blush:

jazzgarcha

jazzgarcha

Hi all, for anyone else running into this.

Make sure your ENV values are loaded before starting your server.

I was experiencing the “Application ABC exited: shutdown”, loading my env resolved the process that was getting killed.

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
psy-q
I’m trying to set up Emacs with elixir-ls via lsp-mode and credo via Flycheck. This should mostly be preconfigured as Flycheck picks up c...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews