forked from lei.chen/myxce
fix: use tlog macros consistently in persist.c
Replace all fprintf(stderr,...) calls with INFO/WARN/ERROR/TRACE so persist.c output appears in the controller's structured log rather than mixing plain text on stderr with tlog-formatted output.
This commit is contained in:
parent
7e4528a0b9
commit
b80ca3deaa
1 changed files with 36 additions and 50 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue