@cryptotaxi247 / netdata-1 / commits / bc4eed99c

ensure the database is always saved on exit

Costa Tsaousis (ktsaou) committed Jan 14, 2017 at 14:19 UTC bc4eed99c70910c3b3b86d16a09826885e2e1689
2 files changed +16 -17
src/main.c
+15 -9
@@ -8,20 +8,25 @@ void netdata_cleanup_and_exit(int ret) {
8 error_log_limit_unlimited();
9
10 debug(D_EXIT, "Called: netdata_cleanup_and_exit()");
11 -#ifdef NETDATA_INTERNAL_CHECKS
12 - kill_childs();
13 - rrdset_free_all();
14 -#else
11 +
12 + // save the database
13 rrdset_save_all();
16 -#endif
17 - // kill_childs();
14
15 + // unlink the pid
16 if(pidfile[0]) {
17 if(unlink(pidfile) != 0)
18 error("Cannot unlink pidfile '%s'.", pidfile);
19 }
20
24 - info("NetData exiting. Bye bye...");
21 +#ifdef NETDATA_INTERNAL_CHECKS
22 + // kill all childs
23 + kill_childs();
24 +
25 + // free all memory
26 + rrdset_free_all();
27 +#endif
28 +
29 + info("netdata exiting. Bye bye...");
30 exit(ret);
31 }
32
@@ -661,8 +666,7 @@ int main(int argc, char **argv)
666 if(become_daemon(dont_fork, user) == -1)
667 fatal("Cannot daemonize myself.");
668
664 - info("NetData started on pid %d", getpid());
665 -
669 + info("netdata started on pid %d.", getpid());
670
671 // ------------------------------------------------------------------------
672 // get default pthread stack size
@@ -720,6 +724,8 @@ int main(int argc, char **argv)
724 else debug(D_SYSTEM, "Not starting thread %s.", st->name);
725 }
726
727 + info("netdata initialization completed. Enjoy real-time performance monitoring!");
728 +
729 // ------------------------------------------------------------------------
730 // block signals while initializing threads.
731 sigset_t sigset;
src/rrd.c
+1 -8
@@ -880,14 +880,7 @@ void rrdset_free_all(void)
880
881 pthread_rwlock_unlock(&st->rwlock);
882
883 - if(st->mapped == RRD_MEMORY_MODE_SAVE) {
884 - debug(D_RRD_CALLS, "Saving stats '%s' to '%s'.", st->name, st->cache_filename);
885 - savememory(st->cache_filename, st, st->memsize);
886 -
887 - debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
888 - munmap(st, st->memsize);
889 - }
890 - else if(st->mapped == RRD_MEMORY_MODE_MAP) {
883 + if(st->mapped == RRD_MEMORY_MODE_SAVE || st->mapped == RRD_MEMORY_MODE_MAP) {
884 debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
885 munmap(st, st->memsize);
886 }