[Opendnssec-user] signerd problem

Jerry Lundström jerry at opendnssec.org
Thu Aug 2 14:58:25 UTC 2012


Hi Mathieu,

On Aug 2, 2012, at 06:55 , Mathieu Arnold wrote:
> And after that, it continued to backoff the signing process for all the
> zones, I had to stop/start the signer to get it working again...


Was this at start up or had it been running for some time?

Could you provide logs prior to "Aug  2 12:31:03", maybe up to the last successful signing before this (if its much you can send it off list if you wish).

---------------------------

Matthijs,

The hsm ctx is created on thread start up and the thread does not exist if it failed, maybe we can change it to something like this?

Index: signer/src/daemon/worker.c
===================================================================
--- signer/src/daemon/worker.c	(revision 6496)
+++ signer/src/daemon/worker.c	(working copy)
@@ -600,14 +600,6 @@
     ods_log_assert(worker);
     ods_log_assert(worker->type == WORKER_DRUDGER);
 
-    ods_log_debug("[%s[%i]] create hsm context",
-        worker2str(worker->type), worker->thread_num);
-    ctx = hsm_create_context();
-    if (!ctx) {
-        ods_log_crit("[%s[%i]] error creating libhsm context",
-            worker2str(worker->type), worker->thread_num);
-    }
-
     while (worker->need_to_exit == 0) {
         ods_log_debug("[%s[%i]] report for duty", worker2str(worker->type),
             worker->thread_num);
@@ -619,6 +611,16 @@
         rrset = (rrset_type*) fifoq_pop(worker->engine->signq, &chief);
         /* [UNLOCK] schedule */
         lock_basic_unlock(&worker->engine->signq->q_lock);
+
+        if (!ctx) {
+            ods_log_debug("[%s[%i]] create hsm context",
+                worker2str(worker->type), worker->thread_num);
+            ctx = hsm_create_context();
+            if (!ctx) {
+                ods_log_crit("[%s[%i]] error creating libhsm context",
+                    worker2str(worker->type), worker->thread_num);
+            }
+        }
         if (rrset) {
             /* set up the work */
             if (chief && chief->task) {

/Jerry

--
Jerry Lundström - OpenDNSSEC Developer
http://www.opendnssec.org/





More information about the Opendnssec-user mailing list