summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d184cc0)
Returning non-zero from the pre-create hook caused dss to exit with
"unexpected exit code" rather than waiting until the hook returns
zero.
Fix this bug and also reduce the verbostity of the log messages caused
by executing the pre-create hook: It should be enough to tell the user
only once per hour that no more snapshots are going to be created.
snapshot_creation_status = SCS_PRE_HOOK_SUCCESS;
return 0;
}
snapshot_creation_status = SCS_PRE_HOOK_SUCCESS;
return 0;
}
- DSS_NOTICE_LOG("executing %s\n", conf.pre_create_hook_arg);
+ DSS_DEBUG_LOG("executing %s\n", conf.pre_create_hook_arg);
ret = dss_exec_cmdline_pid(&create_pid,
conf.pre_create_hook_arg, fds);
if (ret < 0)
ret = dss_exec_cmdline_pid(&create_pid,
conf.pre_create_hook_arg, fds);
if (ret < 0)
static int handle_pre_create_hook_exit(int status)
{
int es, ret;
static int handle_pre_create_hook_exit(int status)
{
int es, ret;
if (!WIFEXITED(status)) {
snapshot_creation_status = SCS_READY;
if (!WIFEXITED(status)) {
snapshot_creation_status = SCS_READY;
}
es = WEXITSTATUS(status);
if (es) {
}
es = WEXITSTATUS(status);
if (es) {
+ if (!warn_count--) {
+ DSS_NOTICE_LOG("pre_create_hook %s returned %d\n",
+ conf.pre_create_hook_arg, es);
+ DSS_NOTICE_LOG("deferring snapshot creation...\n");
+ warn_count = 60; /* warn only once per hour */
+ }
snapshot_creation_status = SCS_READY;
compute_next_snapshot_time();
snapshot_creation_status = SCS_READY;
compute_next_snapshot_time();
- ret = -E_BAD_EXIT_CODE;
snapshot_creation_status = SCS_PRE_HOOK_SUCCESS;
ret = 1;
out:
snapshot_creation_status = SCS_PRE_HOOK_SUCCESS;
ret = 1;
out: