Opened 6 years ago

Closed 2 years ago

#10701 closed New feature (wontfix)

manage.py runfcgi dies in response to SIGHUP/SIGUSR1, disallows log rotation

Reported by: robbyd Owned by: nobody
Component: Core (Management commands) Version: 1.0
Severity: Normal Keywords: runfcgi, fastcgi, SIGHUP, log rotation
Cc: robbyd@…, alexkoshelev, spoof@…, mateusz@… Triage Stage: Design decision needed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Thanks to #6687, daemonized fastcgi processes can now log their stderr and stdout. In our environment we would like to capture these logs, and rotate them (via the standard method of using logrotate). However, from looking in the code, it appears that runfcgi does not support closing/reopening its log file (which would allow logrotate to rotate the log out from under it). Sending a SIGUSR1 or SIGHUP to the master fcgi PID simply kills it instead of causing it to do this. Unless I'm missing something, it looks like the only way to do this at the time is to stop and then restart the processes, which is unacceptable in a production environment.

A necessary patch would handle a SIGUSR1 and/or SIGHUP to close() and then re open() the files specified in errlog and outlog.

I can write a patch if necessary using the python signal module.

Change History (10)

comment:1 Changed 6 years ago by robbyd

  • Cc robbyd@… added
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

comment:2 Changed 6 years ago by alexkoshelev

  • Cc alexkoshelev added

comment:3 Changed 6 years ago by Alex

  • Triage Stage changed from Unreviewed to Design decision needed

comment:4 Changed 6 years ago by anonymous

  • Cc spoof@… added

comment:5 Changed 6 years ago by munhitsu

  • Cc mateusz@… added

comment:6 Changed 4 years ago by sethtrain

  • Severity set to Normal
  • Type set to New feature

comment:7 Changed 4 years ago by aaugustin

  • UI/UX unset

Change UI/UX from NULL to False.

comment:8 Changed 4 years ago by aaugustin

  • Easy pickings unset

Change Easy pickings from NULL to False.

comment:9 Changed 2 years ago by aaugustin

  • Component changed from Core (Other) to Core (Management commands)

comment:10 Changed 2 years ago by aaugustin

  • Resolution set to wontfix
  • Status changed from new to closed

Development of the fastcgi interface has mostly stopped (not sure why we haven't deprecated it yet).

This is best handled externally by syslog, as explained in http://hynek.me/articles/taking-some-pain-out-of-python-logging/

Note: See TracTickets for help on using tickets.
Back to Top