Detach secondary server when "kind mismatch error" is detected
authorTatsuo Ishii <ishii at sraoss.co.jp>
Sat, 3 Feb 2007 04:56:18 +0000 (04:56 +0000)
committerTatsuo Ishii <ishii at sraoss.co.jp>
Sat, 3 Feb 2007 04:56:18 +0000 (04:56 +0000)
ChangeLog
NEWS
child.c

index 8dde6f58ea2ca2fcc4a3f97f8389e4de00d8430a..5ff8f198853b73dea3512de7810a44eea4241c37 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,7 +5,8 @@
        * Support log_hostname(Tatsuo)
        * Show pgpool status in ps command(Tatsuo)
        * Fix bug with prepared query(Yoshiyuki)
-
+       * Detach secondary server when "kind mismatch error" is detected(Tatsuo)
+       
 2006-12-12    <y-asaba@sraoss.co.jp>
        * Version 3.1.2
        * Allow 0 weight(Tatsuo)
diff --git a/NEWS b/NEWS
index 9930a4eb69e759f9e2bf0e60418ebf94b89cc62e..ce683b9f2d83b9f8fcddbc44cb77824dc039b3b3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@
          o prepared object¤ÎPHP PDO, Perl DBD-PgÍøÍÑ»þ¤Î¼«Æ°²òÊüµ¡Ç½¤Î
           ¥Ð¥°¤ò½¤Àµ(Yoshiyuki)
 
+         o kind mismatch error¤Î¤È¤­¤Ëmaster¤Ç¤Ï¤Ê¤¯¡¤secondary¤òÀÚ¤êÎ¥¤¹
+          ¤è¤¦¤Ë¤·¤¿(replication_stop_on_mismatch = true¤Î¤È¤­)(Tatsuo)
+
 3.1.2(kawakawa) 2006/12/12
       o weight ¤Ë 0 ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿(Tatsuo)
 
diff --git a/child.c b/child.c
index 101dd604ef627c8a48d0fd970be84a3811b33157..6b8b601044e33bd70c9277e821de3cbe5d8e18ea 100644 (file)
--- a/child.c
+++ b/child.c
@@ -425,9 +425,13 @@ void do_child(int unix_fd, int inet_fd)
                                        exit(1);
                                        break;
 
-                               /* fatal error occured. just exit myself... */
+                               /*
+                                * kind mismatch fatal error occured.
+                                * notice that we need to detach secondary server
+                                * and just exit myself...
+                                */
                                case POOL_FATAL:
-                                       notice_backend_error(1);
+                                       notice_backend_error(0);
                                        exit(1);
                                        break;