Commit graph

99 commits

Author SHA1 Message Date
c2bcf7691f Separate watchdog & stats timer signals 2019-08-11 16:47:29 +02:00
2a49fb1c00 Worker PID storage enhancement 2019-08-11 15:46:04 +02:00
f2c44b9b6d Bugfix for worker creation with small execution time
When running dummy scripts the sem_timedwait was unable to detect that the
pool was busy...
2019-08-11 15:22:46 +02:00
26f05d869b Fix #28 add a watchdog for the stats server 2019-08-11 15:10:42 +02:00
42ecf1d35a Bugfix in watchdog killer timer delay calculation 2019-08-11 15:06:29 +02:00
9256b383b1 Fix #29 limiting SHM updates to 1 per second 2019-08-11 14:29:39 +02:00
b3af92459e Add worker count & load to stats : solve #24 solve #20 solve #19 2019-08-11 14:19:48 +02:00
a9d6e1100e Patching average stats function 2019-08-11 12:57:30 +02:00
21acb49751 Begin SHM support implementation for stats server process 2019-08-11 12:29:54 +02:00
a1f5517fe5 Signal handling enhancement 2019-08-11 11:12:52 +02:00
15e396778b Rollback average function 2019-08-10 17:24:34 +02:00
831f1ebcb4 New average implementation 2019-08-10 17:14:56 +02:00
fc0945d891 Removed useless argument to average calculation function
Defining a PYFCGI_STATS_SZ = 15 * 60s = 900
2019-08-10 16:00:26 +02:00
98162eb2bc Average function enhancement 2019-08-10 15:48:19 +02:00
f715ee5381 Extract average calculation in separated function 2019-08-10 15:34:16 +02:00
d106364638 Monitor server enhancement
- send buffer formated by stats functions to clients
- close client socket if needed
- allow bind to reuse an address if nobody listen on it
2019-08-10 15:17:29 +02:00
87c0efb4ba Add a stats format buffer & functions 2019-08-10 15:16:47 +02:00
2953f2feee Add an uptime field to conf context 2019-08-10 15:15:51 +02:00
7b99f5f48f Use the new stats features in PyFCGI
The worker indicate each new request using semaphore
2019-08-10 02:41:48 +02:00
dffe441065 Starting stats collection implementation : request counter 2019-08-10 02:41:15 +02:00
1762b5a272 Deleted useles comment in responder.c 2019-08-10 02:40:04 +02:00
5db32eb990 Add a way to know if an IPC component is initialized or not 2019-08-10 02:39:11 +02:00
bd6267330a Add a todo for a POSIX semaphore problem :'( 2019-08-09 18:17:13 +02:00
9e0d3f34f5 Add sighandler for monitor server 2019-08-09 18:01:13 +02:00
7829c1c019 Add monitor server handling & new process handling for master 2019-08-09 17:53:59 +02:00
6b9634c843 Continuing monitor server
Implementing a dummy stream response loop sending PyFCGI version
2019-08-09 17:24:12 +02:00
5c42fde3a4 Add ipv6 parse function tests 2019-08-09 16:06:45 +02:00
e3477561ee Write some tests for monitor URL parsing functions + bugfixes 2019-08-09 16:01:57 +02:00
23ca05c04a Starts UDP stats/status server implementation 2019-08-09 14:16:51 +02:00
4daea42c44 Replacing old sysV sem by new POSIX solves #25
Creating new files to handle IPC stuffs : include/ipc.h src/ipc.c
2019-08-08 18:13:47 +02:00
6913e228b8 Deleted old TODO 2019-08-08 15:19:45 +02:00
fe56265ecd Enhancement in timeout logging
Now logging a python traceback
2019-08-07 18:45:38 +02:00
47a4e99e5b Idle timeout counter updated value
7 seems better than 5.
2019-08-07 17:39:03 +02:00
710ab8281c Pool handling enhancement + bugfix in worker sighandling
The responder_loop handle better child creation & deletion. A conf struct
member indicates the number of seconds the pool have to be idle before deleting
a worker.
In a same way, the pool has to be busy for at least 1s before a new
process can be added (the -f flag indicate if the counter has to be reseted
when a new process is created, allowing spawn burst).
The spawn() function call sigaction 2 times for SIGINT & SIGTERM in order
to catch both.
2019-08-07 17:13:57 +02:00
5466d9c575 Modification of workers making them always exist busy
Adds a global flag for worker indicating their status (add checks for
each semaphore change)
The pool handler will no longer have to decrease the semaphore value when
a child exit.
2019-08-07 17:12:19 +02:00
5ad51d95fb Add two options + status2str function
Add a -t --timeout and a -f --fast-spawn option for further commit
2019-08-07 17:11:30 +02:00
7411301254 Logger ident allignement 2019-08-07 15:19:57 +02:00
bcbbb99770 Add timeout & watchdog for pool & workers 2019-08-07 15:15:04 +02:00
7c81ca411d Add 120s siege benchmarks 2019-08-06 18:45:19 +02:00
1456e35e96 Bugfix foo_pep333.py for uwsgi
uwsgi do not handle str, only bytes.
2019-08-06 18:44:33 +02:00
7b22e9278c Add a --verbose option
Add --verbose -v option to log on stderr
2019-08-06 18:12:55 +02:00
7004f544e4 Add a todo + some commented debug lines + foo_pep333.py enhancement 2019-08-06 17:20:54 +02:00
d3c9e2de42 Add sys.stdout & sys.stderr logging for pep333 worker 2019-08-06 17:18:47 +02:00
0506b7824e Debugging libpyfcgi.IoIn.read()
A '\0' need to be added to read string if read exactly the expected ammount of
bytes.
2019-08-06 16:23:37 +02:00
7c1bcc2fcc Debug in libpyfcgi.IoIn.read() method
read buffer was dropped
2019-08-06 15:59:09 +02:00
512580c924 Implement partial support for wsgi.* environ
The url_scheme is static to "http" for the moment...
2019-08-05 16:45:48 +02:00
ccb4234906 Now log_expt() logs a traceback 2019-08-04 16:50:52 +02:00
cc0af1abb2 Bugfix in PEP333 worker when application trigger an exception 2019-08-04 16:19:12 +02:00
81a8bb752e Add support for virtualenv & site packages
Note : segfault on virtualenv tests...
2019-08-04 16:03:36 +02:00
11df1455cf Add signal handling and clean exiting 2019-08-04 16:02:42 +02:00