[prev in list] [next in list] [prev in thread] [next in thread] 

List:       prelude-cvslog
Subject:    [prelude-cvslog] r9848 - libprelude/trunk/src
From:       noreply () prelude-ids ! org
Date:       2007-08-23 16:05:46
Message-ID: 20070823160546.84A39E18857 () mail ! prelude-ids ! org
[Download RAW message or body]

Author: yoann
Date: 2007-08-23 18:05:45 +0200 (Thu, 23 Aug 2007)
New Revision: 9848

Modified:
   libprelude/trunk/src/prelude-connection-pool.c
Log:
Improved failover reporting. Check FD_SETSIZE in connection_pool_check_event().


Modified: libprelude/trunk/src/prelude-connection-pool.c
===================================================================
--- libprelude/trunk/src/prelude-connection-pool.c	2007-08-23 16:05:18 UTC (rev 9847)
+++ libprelude/trunk/src/prelude-connection-pool.c	2007-08-23 16:05:45 UTC (rev 9848)
@@ -391,12 +391,14 @@
 
         do {
                 size = prelude_failover_get_saved_msg(failover, &msg);
-                if ( size < 0 )
-                        continue;
-
                 if ( size == 0 )
                         break;
 
+                if ( size < 0 ) {
+                        prelude_log(PRELUDE_LOG_ERR, "error reading message from \
failover: %s", prelude_strerror(size)); +                        break;
+                }
+
                 if ( clist ) {
                         broadcast_message(msg, clist->and);
                         if ( clist->dead )
@@ -420,8 +422,8 @@
 
         } while ( 1 );
 
-        prelude_log(PRELUDE_LOG_WARN, "%s from failover: %u/%u messages flushed (%" \
                PRELUDE_PRIu64 " bytes).\n",
-                    (count == available) ? "Recovered" : "Failed recovering", count, \
available, (uint64_t) totsize); +        prelude_log(PRELUDE_LOG_WARN, "Failover \
recovery: %u/%u messages flushed (%" PRELUDE_PRIu64 " bytes).\n", +                   \
count, available, (uint64_t) totsize);  
         return ret;
 }
@@ -1202,7 +1204,7 @@
 {
         cnx_t *cnx;
         fd_set rfds;
-        int ret, i = 0;
+        int ret, i = 0, fd;
         prelude_list_t *tmp;
         struct timeval tv, *tvptr = NULL;
         prelude_connection_pool_event_t global_event = 0;
@@ -1228,7 +1230,10 @@
                 if ( ! prelude_connection_is_alive(cnx->cnx) )
                         continue;
 
-                ret = \
FD_ISSET(prelude_io_get_fd(prelude_connection_get_fd(cnx->cnx)), &rfds); +            \
fd = prelude_io_get_fd(prelude_connection_get_fd(cnx->cnx)); +                \
assert(fd < FD_SETSIZE); +
+                ret = FD_ISSET(fd, &rfds);
                 if ( ! ret )
                         continue;
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic