/* its a protocol error if the sending node is not the current dmaster */
if (header.dmaster != hdr->srcnode) {
- DEBUG(0,("vnn %u dmaster request non-master %u dmaster=%u key %08x\n",
- ctdb->vnn, hdr->srcnode, header.dmaster, ctdb_hash(&key)));
+ DEBUG(0,("vnn %u dmaster request non-master %u dmaster=%u key %08x dbid 0x%08x\n",
+ ctdb->vnn, hdr->srcnode, header.dmaster, ctdb_hash(&key),
+ ctdb_db->db_id));
ctdb_fatal(ctdb, "ctdb_req_dmaster from non-master");
return;
}
/* we should not be able to get the lock on the nodes list, as it should be
held by the recovery master */
if (ctdb_recovery_lock(ctdb, false)) {
- DEBUG(0,("ERROR: node list not locked when recovering!\n"));
- ctdb_fatal(ctdb, "node list not locked - make sure it is on shared storage");
+ DEBUG(0,("ERROR: recovery lock file %s not locked when recovering!\n",
+ ctdb->recovery_lock_file));
return -1;
}
}
/* release the recmaster lock */
- if (ctdb->recovery_lock_fd != -1) {
+ if (em->vnn != ctdb_get_vnn(ctdb) &&
+ ctdb->recovery_lock_fd != -1) {
close(ctdb->recovery_lock_fd);
ctdb->recovery_lock_fd = -1;
}