diff --git a/src/controller/persist.c b/src/controller/persist.c index 24c2e4e..1fd6b54 100644 --- a/src/controller/persist.c +++ b/src/controller/persist.c @@ -160,9 +160,8 @@ int persist_init(persist_t* p, persist_config_t* cfg, cluster_t* c) struct statfs sfs; if (statfs(p->wal_path, &sfs) == 0 && (unsigned long)sfs.f_type == (unsigned long)NFS_SUPER_MAGIC) { - fprintf(stderr, - "persist: WAL path %s is on NFS — unsafe for fsync durability\n", - p->wal_path); + ERROR("persist: WAL path %s is on NFS — unsafe for fsync durability", + p->wal_path); return -EREMOTE; } @@ -171,10 +170,9 @@ int persist_init(persist_t* p, persist_config_t* cfg, cluster_t* c) pthread_cond_init(&p->checkpoint_done, NULL); repl_init(&p->repl); /* P2-4: fan-out replicator lifecycle */ - fprintf(stderr, - "INFO: WAL/snapshot stored unencrypted in %s — " - "ensure filesystem is encrypted if job payloads contain sensitive data\n", - p->wal_path); + WARN("WAL/snapshot stored unencrypted in %s — " + "ensure filesystem is encrypted if job payloads contain sensitive data", + p->wal_path); return 0; } @@ -560,9 +558,8 @@ int apply_wal_entry(persist_t* p, const wal_entry_hdr_t* hdr, const void* payloa /* Reject oversized payloads BEFORE any allocation */ if (hdr->payload_len > MAX_WAL_PAYLOAD_BYTES) { - fprintf(stderr, - "apply_wal_entry: payload_len %u exceeds MAX_WAL_PAYLOAD_BYTES %u\n", - hdr->payload_len, MAX_WAL_PAYLOAD_BYTES); + ERROR("apply_wal_entry: payload_len %u exceeds MAX_WAL_PAYLOAD_BYTES %u", + hdr->payload_len, MAX_WAL_PAYLOAD_BYTES); return -EMSGSIZE; } @@ -575,10 +572,9 @@ int apply_wal_entry(persist_t* p, const wal_entry_hdr_t* hdr, const void* payloa * compatibility — an older controller can boot on WAL written by a newer * one without hard-failing on unrecognised entry types. */ if (hdr->type > WAL_ENTRY_TYPE_MAX) { - fprintf(stderr, - "WARN apply_wal_entry: unknown type %u > WAL_ENTRY_TYPE_MAX %u" - " (lsn=%" PRIu64 ") — skipping for forward compatibility\n", - hdr->type, WAL_ENTRY_TYPE_MAX, hdr->lsn); + WARN("apply_wal_entry: unknown type %u > WAL_ENTRY_TYPE_MAX %u" + " (lsn=%" PRIu64 ") — skipping for forward compatibility", + hdr->type, WAL_ENTRY_TYPE_MAX, hdr->lsn); return 0; } @@ -666,9 +662,8 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) int fd = open(seg_path, O_RDONLY); if (fd < 0) { - fprintf(stderr, - "persist_recover: WARNING: cannot open segment %s: %s\n", - seg_path, strerror(errno)); + WARN("persist_recover: cannot open segment %s: %s", + seg_path, strerror(errno)); continue; } @@ -681,11 +676,9 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) if (hn == 0) break; /* clean end of segment */ if (hn < (ssize_t)sizeof(hdr)) { - if (hn < 0) { - fprintf(stderr, - "persist_recover: WARNING: read error in %s at offset %u: %s\n", - seg_path, seg_off, strerror(errno)); - } + if (hn < 0) + WARN("persist_recover: read error in %s at offset %u: %s", + seg_path, seg_off, strerror(errno)); break; /* truncated or pre-allocated zeros */ } @@ -701,18 +694,16 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) * e.g. across a segment boundary after checkpoint trim). */ if (hdr.prev_crc != WAL_CRC_NONE && last_crc != WAL_CRC_NONE && hdr.prev_crc != last_crc) { - fprintf(stderr, - "persist_recover: WARNING: CRC chain break at start of %s " - "(prev_crc=%08x expected=%08x); stopping replay\n", - seg_path, hdr.prev_crc, last_crc); + WARN("persist_recover: CRC chain break at start of %s " + "(prev_crc=%08x expected=%08x); stopping replay", + seg_path, hdr.prev_crc, last_crc); break; } } else { if (hdr.prev_crc != last_crc) { - fprintf(stderr, - "persist_recover: WARNING: CRC chain break in %s at offset %u " - "(prev_crc=%08x expected=%08x); stopping replay at last good entry\n", - seg_path, seg_off, hdr.prev_crc, last_crc); + WARN("persist_recover: CRC chain break in %s at offset %u " + "(prev_crc=%08x expected=%08x); stopping replay at last good entry", + seg_path, seg_off, hdr.prev_crc, last_crc); break; } } @@ -730,9 +721,8 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) ssize_t pn = pread(fd, payload, hdr.payload_len, (off_t)(seg_off + sizeof(hdr))); if (pn != (ssize_t)hdr.payload_len) { - fprintf(stderr, - "persist_recover: WARNING: short payload read in %s at offset %u\n", - seg_path, seg_off); + WARN("persist_recover: short payload read in %s at offset %u", + seg_path, seg_off); free(payload); break; } @@ -740,10 +730,9 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) } if (hdr.crc != expected_crc) { - fprintf(stderr, - "persist_recover: WARNING: CRC mismatch in %s at offset %u " - "(got=%08x expected=%08x); stopping replay\n", - seg_path, seg_off, hdr.crc, expected_crc); + WARN("persist_recover: CRC mismatch in %s at offset %u " + "(got=%08x expected=%08x); stopping replay", + seg_path, seg_off, hdr.crc, expected_crc); free(payload); break; } @@ -770,9 +759,8 @@ static int replay_wal(persist_t* p, uint64_t from_lsn) /* Unknown future entry types: log and skip */ if (hdr.type > WAL_CHECKPOINT) { - fprintf(stderr, - "persist_recover: WARNING: unknown WAL entry type %u at LSN %lu; skipping\n", - hdr.type, (unsigned long)hdr.lsn); + WARN("persist_recover: unknown WAL entry type %u at LSN %lu; skipping", + hdr.type, (unsigned long)hdr.lsn); free(payload); seg_off += (uint32_t)(sizeof(hdr) + hdr.payload_len); continue; @@ -834,9 +822,8 @@ int persist_recover(persist_t* p) if (snap_lsn > 0 && snap_file[0] != '\0') { int rc = load_snapshot(p, snap_file, snap_lsn); if (rc != 0) { - fprintf(stderr, - "persist_recover: failed to load snapshot %s: %s\n", - snap_file, strerror(-rc)); + ERROR("persist_recover: failed to load snapshot %s: %s", + snap_file, strerror(-rc)); return rc; } /* checkpoint_lsn and current_lsn set by load_snapshot */ @@ -883,13 +870,12 @@ int persist_wal_sync_append(persist_t* p, uint32_t type, void persist_log_entry_metadata(const wal_entry_hdr_t* hdr) { - fprintf(stderr, - "WAL entry: type=%u lsn=%lu term=%lu payload_len=%u crc=%08x\n", - hdr->type, - (unsigned long)hdr->lsn, - (unsigned long)hdr->term, - hdr->payload_len, - hdr->crc); + TRACE("WAL entry: type=%u lsn=%lu term=%lu payload_len=%u crc=%08x", + hdr->type, + (unsigned long)hdr->lsn, + (unsigned long)hdr->term, + hdr->payload_len, + hdr->crc); } /* ------------------------------------------------------------------ */