mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-06 21:51:30 +00:00
various fastrouter fixes
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
[uwsgi]
|
||||
xml = false
|
||||
ini = true
|
||||
yaml = false
|
||||
json = false
|
||||
sqlite3 = false
|
||||
zeromq = false
|
||||
snmp = false
|
||||
sctp = false
|
||||
spooler = true
|
||||
embedded = true
|
||||
udp = true
|
||||
multicast = false
|
||||
threading = true
|
||||
sendfile = true
|
||||
minterpreters = true
|
||||
async = true
|
||||
evdis = false
|
||||
ldap = false
|
||||
pcre = true
|
||||
routing = true
|
||||
debug = false
|
||||
unbit = false
|
||||
xml_implementation = libxml2
|
||||
yaml_implementation = auto
|
||||
malloc_implementation = libc
|
||||
extras =
|
||||
plugins =
|
||||
bin_name = uwsgi
|
||||
append_version =
|
||||
plugin_dir = .
|
||||
embedded_plugins =
|
||||
as_shared_library = false
|
||||
|
||||
locking = auto
|
||||
event = auto
|
||||
timer = auto
|
||||
filemonitor = auto
|
||||
|
||||
blacklist =
|
||||
whitelist =
|
||||
|
||||
embed_files =
|
||||
|
||||
embed_config =
|
||||
|
||||
[python]
|
||||
paste = true
|
||||
web3 = true
|
||||
@@ -37,6 +37,7 @@ struct uwsgi_fastrouter {
|
||||
int has_subscription_sockets;
|
||||
|
||||
int processes;
|
||||
int quiet;
|
||||
|
||||
struct rb_root *timeouts;
|
||||
|
||||
@@ -203,6 +204,7 @@ struct uwsgi_option fastrouter_options[] = {
|
||||
{"fastrouter-to", required_argument, 0, "forward requests to the specified uwsgi server (you can specify it multiple times for load balancing)", uwsgi_opt_add_string_list, &ufr.static_nodes, 0},
|
||||
{"fastrouter-gracetime", required_argument, 0, "retry connections to dead static nodes after the specified amount of seconds", uwsgi_opt_set_int, &ufr.static_node_gracetime, 0},
|
||||
{"fastrouter-events", required_argument, 0, "set the maximum number of concurrent events", uwsgi_opt_set_int, &ufr.nevents, 0},
|
||||
{"fastrouter-quiet", required_argument, 0, "do not report failed connections to instances", uwsgi_opt_true, &ufr.quiet, 0},
|
||||
{"fastrouter-cheap", no_argument, 0, "run the fastrouter in cheap mode", uwsgi_opt_true, &ufr.cheap, 0},
|
||||
{"fastrouter-subscription-server", required_argument, 0, "run the fastrouter subscription server on the spcified address", uwsgi_opt_fastrouter_ss, NULL, 0},
|
||||
{"fastrouter-subscription-slot", required_argument, 0, "*** deprecated ***", uwsgi_opt_deprecated, (void *) "useless thanks to the new implementation", 0},
|
||||
@@ -293,8 +295,6 @@ static struct uwsgi_rb_timer *reset_timeout(struct fastrouter_session *);
|
||||
|
||||
static void close_session(struct fastrouter_session *fr_session) {
|
||||
|
||||
if (fr_session->tmp_socket_name)
|
||||
free(fr_session->buf_file_name);
|
||||
|
||||
if (fr_session->instance_fd != -1) {
|
||||
close(fr_session->instance_fd);
|
||||
@@ -304,15 +304,17 @@ static void close_session(struct fastrouter_session *fr_session) {
|
||||
if (fr_session->instance_failed) {
|
||||
|
||||
if (fr_session->soopt) {
|
||||
uwsgi_log("unable to connect() to uwsgi instance \"%.*s\": %s\n", fr_session->instance_address_len, fr_session->instance_address, strerror(fr_session->soopt));
|
||||
if (!ufr.quiet)
|
||||
uwsgi_log("unable to connect() to uwsgi instance \"%.*s\": %s\n", (int) fr_session->instance_address_len, fr_session->instance_address, strerror(fr_session->soopt));
|
||||
}
|
||||
else if (fr_session->timed_out) {
|
||||
if (fr_session->instance_address_len > 0) {
|
||||
if (fr_session->status == FASTROUTER_STATUS_CONNECTING) {
|
||||
uwsgi_log("unable to connect() to uwsgi instance \"%.*s\": timeout\n", fr_session->instance_address_len, fr_session->instance_address);
|
||||
if (!ufr.quiet)
|
||||
uwsgi_log("unable to connect() to uwsgi instance \"%.*s\": timeout\n", (int) fr_session->instance_address_len, fr_session->instance_address);
|
||||
}
|
||||
else if (fr_session->status == FASTROUTER_STATUS_RESPONSE) {
|
||||
uwsgi_log("timeout waiting for instance \"%.*s\"\n", fr_session->instance_address_len, fr_session->instance_address);
|
||||
uwsgi_log("timeout waiting for instance \"%.*s\"\n", (int) fr_session->instance_address_len, fr_session->instance_address);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,6 +349,11 @@ static void close_session(struct fastrouter_session *fr_session) {
|
||||
}
|
||||
|
||||
|
||||
if (fr_session->tmp_socket_name) {
|
||||
free(fr_session->tmp_socket_name);
|
||||
fr_session->tmp_socket_name = NULL;
|
||||
}
|
||||
|
||||
if (ufr.fallback) {
|
||||
// ok let's try with the fallback nodes
|
||||
if (!fr_session->fallback) {
|
||||
@@ -393,6 +400,10 @@ static void close_session(struct fastrouter_session *fr_session) {
|
||||
|
||||
end:
|
||||
|
||||
if (fr_session->tmp_socket_name) {
|
||||
free(fr_session->tmp_socket_name);
|
||||
}
|
||||
|
||||
if (fr_session->buf_file)
|
||||
fclose(fr_session->buf_file);
|
||||
|
||||
|
||||
@@ -339,7 +339,8 @@ int connect_to_unix(char *socket_name, int timeout, int async) {
|
||||
uwsgi_poll.events = POLLIN;
|
||||
|
||||
if (timed_connect(&uwsgi_poll, (const struct sockaddr *) &uws_addr, un_size, timeout, async)) {
|
||||
uwsgi_error("connect()");
|
||||
// avoid error storm
|
||||
//uwsgi_error("connect()");
|
||||
close(uwsgi_poll.fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user