Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stop uwsgi performing harakiri (seriously)

I've been trying to track down a problem with uwsgi where the uwsgi process kills itself.

The oh-so-helpful log files just say...

F*CK !!! i must kill myself (pid: 9984 app_id: 0)...

A little Googling led me to this line in the source code...

void harakiri() {
    uwsgi_log("\nF*CK !!! i must kill myself (pid: %d app_id: %d)...\n", uwsgi.mypid, uwsgi.wsgi_req->app_id);
    //Some other stuff
    exit(0);
}

Whether it dies or not varies but seems (from Googling) to be tied to how long a request takes. In this instance, the request is streaming back a dynamically generated Pdf. The generation happens in the background but once it's complete, a new request comes in to retrieve it. The Pdf can be potentially quite large (worst-case, 50-60MB) which - depending on the connection - speed explains why requests might reach a timeout threshold.

How can I configure uwsgi to either never time out or have extremely high timeouts? The app is being used on private networks and I'd rather it was slow and succeeded than died.

like image 680
Basic Avatar asked Jan 27 '26 23:01

Basic


1 Answers

harakiri is something you voluntary enable with --harakiri, by default there is no such feature. Check your configuration for it.

Another possibility could be you are running without the master process (you should have a warning about it) and set an alarm() without defining a signal handler for SIGALRM

like image 146
roberto Avatar answered Jan 29 '26 12:01

roberto



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!