Fix persister loading apis to return more fine grain error code

This commit is contained in:
eeff
2022-01-20 16:42:36 +08:00
committed by Parker Liu
parent 53a25130c5
commit 5ecde49f49
2 changed files with 14 additions and 4 deletions
+8 -2
View File
@@ -242,9 +242,15 @@ static int persister_singleton_load_setting(neu_adapter_t *adapter,
int rv =
neu_persister_load_adapter_setting(persister, adapter_name, &setting);
if (0 != rv) {
log_error("%s ignore fail load setting of adapter: %s", adapter->name,
const char *fail_or_ignore = "fail";
if (NEU_ERR_ENOENT == rv) {
// ignore this error, no setting ever set
rv = 0;
fail_or_ignore = "ignore";
}
log_error("%s %s load setting of %s", adapter->name, fail_or_ignore,
adapter_name);
return 0; // ignore this error, may be no setting ever set
return rv;
}
rv = neu_manager_adapter_set_setting(adapter->manager, node_id, setting);
+6 -2
View File
@@ -399,8 +399,10 @@ static int write_file_string(const char *fn, const char *s)
// read all file contents as string
static int read_file_string(const char *fn, char **out)
{
int rv = 0;
int fd = open(fn, O_RDONLY);
if (-1 == fd) {
rv = (ENOENT == errno) ? NEU_ERR_ENOENT : NEU_ERR_FAILURE;
goto error_open;
}
@@ -413,6 +415,7 @@ static int read_file_string(const char *fn, char **out)
char *buf = malloc(fsize + 1);
if (NULL == buf) {
rv = NEU_ERR_ENOMEM;
goto error_buf;
}
@@ -424,6 +427,7 @@ static int read_file_string(const char *fn, char **out)
} else if (n < fsize && EINTR == errno) {
continue;
} else {
rv = NEU_ERR_FAILURE;
goto error_read;
}
}
@@ -431,7 +435,7 @@ static int read_file_string(const char *fn, char **out)
buf[fsize] = 0;
*out = buf;
close(fd);
return 0;
return rv;
error_read:
free(buf);
@@ -440,7 +444,7 @@ error_fstat:
close(fd);
error_open:
log_error("persister fail to read %s, reason: %s", fn, strerror(errno));
return NEU_ERR_FAILURE;
return rv;
}
// file tree walking callback for collecting adapter group config infos