[Opendnssec-develop] We need to push out 1.3.4 now!

Jerry Lundström jerry at opendnssec.org
Fri Dec 9 12:40:59 UTC 2011


On 2011-12-09 12.05, Rick van Rein <rick at openfortress.nl> wrote:

>Rather than expediting unrelated plans and risking to introduce new bugs,
>is it an idea to _only_ fix the issue and leave the rest for 1.3.5?
>It does not sound like there'd be time for proper testing, and two
>faulty versions in a row can't be good for OpenDNSSEC's name.

Yeah, thought of that.

But even better would be to just push out 1.3.4 with the druger message
fix.

My suggestion is to copy release/OpenDNSSEC-1.3.3 and add these patches
which is already in branches/OpenDNSSEC-1.3:

Index: signer/src/scheduler/fifoq.c
===================================================================
--- signer/src/scheduler/fifoq.c        (revision 5893)
+++ signer/src/scheduler/fifoq.c        (revision 5907)
@@ -145,7 +145,7 @@
         /* #262 if drudgers remain on hold, do additional broadcast */
         if (*tries > FIFOQ_TRIES_COUNT) {
             lock_basic_broadcast(&q->q_threshold);
-            ods_log_warning("[%s] max cap reached, but drudgers seem to
be "
+            ods_log_debug("[%s] max cap reached, but drudgers seem to be "
                 "on hold, notify drudgers again", fifoq_str);
             /* reset tries */
             *tries = 0;
Index: signer/src/scheduler/fifoq.h
===================================================================
--- signer/src/scheduler/fifoq.h        (revision 5893)
+++ signer/src/scheduler/fifoq.h        (revision 5907)
@@ -53,7 +53,7 @@
 #include <ldns/ldns.h>
 
 #define FIFOQ_MAX_COUNT 1000
-#define FIFOQ_TRIES_COUNT 100
+#define FIFOQ_TRIES_COUNT 10000
 
 /**
  * FIFO Queue.



And add this change:

Index: signer/src/signer/rrset.c
===================================================================
--- signer/src/signer/rrset.c   (revision 5966)
+++ signer/src/signer/rrset.c   (working copy)
@@ -45,6 +45,7 @@
 
 #include <ldns/ldns.h>
 #include <stdlib.h>
+#include <unistd.h>
 
 static const char* rrset_str = "rrset";
 
@@ -1144,10 +1145,17 @@
     ods_log_assert(q);
 
     while (status == ODS_STATUS_UNCHANGED && !worker->need_to_exit) {
+        tries++;
         lock_basic_lock(&q->q_lock);
         status = fifoq_push(q, (void*) rrset, worker, &tries);
         lock_basic_unlock(&q->q_lock);
-        tries++;
+        /**
+         * If tries are 0 they we have tries FIFOQ_TRIES_COUNT times,
+         * lets take a small break to not hog CPU.
+         */
+        if (status == ODS_STATUS_UNCHANGED && !tries) {
+               usleep(10000);
+        }
     }
     if (status == ODS_STATUS_OK) {
         lock_basic_lock(&worker->worker_lock);



Comments?

I will test this now.


/Jerry






More information about the Opendnssec-develop mailing list