]> granicus.if.org Git - pgbouncer/commitdiff
version 1.0.5 - "enough for today" pgbouncer_1_0_5
authorMarko Kreen <markokr@gmail.com>
Wed, 11 Apr 2007 11:15:14 +0000 (11:15 +0000)
committerMarko Kreen <markokr@gmail.com>
Wed, 11 Apr 2007 11:15:14 +0000 (11:15 +0000)
  * Fix online-restart bugs:
    - Set ->ready for idle servers.
    - Remove obsolete code from use_client_socket()
    - Disable maintenance during the takeover.

NEWS
configure.ac
debian/changelog
src/janitor.c
src/main.c
src/objects.c

diff --git a/NEWS b/NEWS
index af20ea5fd98318a4c00324a976469d72b0336391..5a2980a64d72336f5bdf5cde2ee04e370f0b8d38 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,11 @@
 
+2007-04-11  -  PgBouncer 1.0.5  -  "Enough for today"
+
+  * Fix online-restart bugs:
+    - Set ->ready for idle servers.
+    - Remove obsolete code from use_client_socket()
+    - Disable maintenance during the takeover.
+
 2007-04-11  -  PgBouncer 1.0.4  -  "Last 'last' bug"
 
   * Notice from idle server tagged server dirty.
index aab76a71ae14f11a5dcb5bbfd64b36bb7ef6a7a9..48ee1a6d81ada5159ce7d1b2af9130f860e01a0a 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT(pgbouncer, 1.0.4)
+AC_INIT(pgbouncer, 1.0.5)
 AC_CONFIG_SRCDIR(src/bouncer.h)
 AC_CONFIG_HEADER(config.h)
 
index e26397a8b65cad93ec26fd6e88326038f1e79df6..97162fbc4da629b11a54ef8df1686939b7d83de1 100644 (file)
@@ -1,3 +1,9 @@
+pgbouncer (1.0.5-1) unstable; urgency=low
+
+  * fix online restart bugs.
+
+ -- Marko Kreen <marko.kreen@skype.net>  Wed, 11 Apr 2007 13:50:50 +0300
+
 pgbouncer (1.0.4-1) unstable; urgency=low
 
   * last bug, honestly.
index 8caf30b7a17957487ffb4dd9e5b75a5300fadc0a..4dda5d020f6c45888670f54ba69b1717dd9418ee 100644 (file)
@@ -237,6 +237,10 @@ void per_loop_maint(void)
        PgPool *pool;
        int active = 0;
 
+       /* dont touch anything if takeover is in progress */
+       if (cf_reboot)
+               return;
+
        statlist_for_each(item, &pool_list) {
                pool = container_of(item, PgPool, head);
                if (pool->admin)
@@ -430,6 +434,10 @@ static void do_full_maint(int sock, short flags, void *arg)
        List *item;
        PgPool *pool;
 
+       /* dont touch anything if takeover is in progress */
+       if (cf_reboot)
+               return;
+
        statlist_for_each(item, &pool_list) {
                pool = container_of(item, PgPool, head);
                if (pool->admin)
index 15095a8b088ac48780e8a988df18881858200113..952ac99bd9b9171b3f8af7420824c2096ba072b4 100644 (file)
@@ -244,6 +244,8 @@ static void handle_sigterm(int sock, short flags, void *arg)
 static void handle_sigint(int sock, short flags, void *arg)
 {
        log_info("Got SIGINT, shutting down");
+       if (cf_reboot)
+               fatal("Takeover was in progress, going down immidiately");
        cf_pause_mode = P_PAUSE;
        cf_shutdown = 1;
 }
index 666e00c4b190cb0cb67a31f115617fd8c740fe10..c371a13052437df9d43efee85f65cb34374bbc2f 100644 (file)
@@ -869,15 +869,9 @@ bool use_client_socket(int fd, PgAddr *addr,
                       const char *dbname, const char *username,
                       uint64 ckey, int oldfd, int linkfd)
 {
-       PgDatabase *db = find_database(dbname);
-       PgUser *user = find_user(username);
-       PgPool *pool = get_pool(db, user);
        PgSocket *client;
        PktBuf tmp;
 
-       if (!pool)
-               return false;
-
        client = accept_client(fd, NULL, addr->is_unix);
        client->addr = *addr;
        client->suspended = 1;
@@ -929,10 +923,13 @@ bool use_server_socket(int fd, PgAddr *addr,
        server->connect_time = server->request_time = get_cached_time();
        server->query_start = 0;
 
-       if (linkfd)
+       if (linkfd) {
+               server->ready = 0;
                change_server_state(server, SV_ACTIVE);
-       else
+       } else {
+               server->ready = 1;
                change_server_state(server, SV_IDLE);
+       }
 
        /* store old cancel key */
        pktbuf_static(&tmp, server->cancel_key, 8);