@cryptotaxi247 / netdata-1 / commits / db74925ed

Fix a bug in cgroups renaming (#5612)

Vladimir Kobal committed Mar 12, 2019 at 16:35 UTC db74925edb6e1867c071adfafe8d196cfc7f6d18
1 file changed +8 -6
collectors/cgroups.plugin/sys_fs_cgroup.c
+8 -6
@@ -888,7 +888,7 @@ static inline void cgroup_get_chart_name(struct cgroup *cg) {
888 pid_t cgroup_pid;
889 char command[CGROUP_CHARTID_LINE_MAX + 1];
890
891 - snprintfz(command, CGROUP_CHARTID_LINE_MAX, "exec %s '%s'", cgroups_rename_script, cg->id);
891 + snprintfz(command, CGROUP_CHARTID_LINE_MAX, "exec %s '%s'", cgroups_rename_script, cg->chart_id);
892
893 debug(D_CGROUP, "executing command \"%s\" for cgroup '%s'", command, cg->id);
894 FILE *fp = mypopen(command, &cgroup_pid);
@@ -908,12 +908,14 @@ static inline void cgroup_get_chart_name(struct cgroup *cg) {
908 if(likely(!name_error))
909 cg->pending_renames = 0;
910
911 - freez(cg->chart_title);
912 - cg->chart_title = cgroup_title_strdupz(s);
911 + if(likely(cg->pending_renames < 2)) {
912 + freez(cg->chart_title);
913 + cg->chart_title = cgroup_title_strdupz(s);
914
914 - freez(cg->chart_id);
915 - cg->chart_id = cgroup_chart_id_strdupz(s);
916 - cg->hash_chart = simple_hash(cg->chart_id);
915 + freez(cg->chart_id);
916 + cg->chart_id = cgroup_chart_id_strdupz(s);
917 + cg->hash_chart = simple_hash(cg->chart_id);
918 + }
919 }
920 }
921 }