diff --git a/roles/mellanox_drivers/tasks/main.yml b/roles/mellanox_drivers/tasks/main.yml
index b41e22788f8c1923d110024de897ad229a820de3..c54e424e388f7dd539873fdcc5d1197061b3d68a 100644
--- a/roles/mellanox_drivers/tasks/main.yml
+++ b/roles/mellanox_drivers/tasks/main.yml
@@ -257,6 +257,7 @@
 - name: query ibstat for devicename
   shell: /usr/sbin/ibstat | grep mlx5 | awk '{print $2}' | head -n 1 | sed -r "s#'##g"
   register: qibdevicename
+  check_mode: no
   #when: not statrocemode.stat.exists
 
 - name: print qibdevicename
diff --git a/roles/slurm-common/files/spank-private-tmp/private-tmpdir.c b/roles/slurm-common/files/spank-private-tmp/private-tmpdir.c
index e1d82bd71d4bbf51be50a8faeebc165c8d82451a..c685c23d3ec45fc01945e3dd0b94fb5bd5f59c21 100644
--- a/roles/slurm-common/files/spank-private-tmp/private-tmpdir.c
+++ b/roles/slurm-common/files/spank-private-tmp/private-tmpdir.c
@@ -54,29 +54,19 @@ static int _tmpdir_init_opts(spank_t sp, int ac, char **av);
  */
 int slurm_spank_init(spank_t sp, int ac, char **av)
 {
-	if (spank_context () != S_CTX_REMOTE)
-		return (0);
+	if (spank_context () != S_CTX_REMOTE) return (0);
 	return _tmpdir_init_opts(sp, ac, av);
 }
 
 int slurm_spank_exit(spank_t sp, int ac, char **av)
 {
-	if (spank_context () != S_CTX_REMOTE)
-		return (0);
+	if (spank_context () != S_CTX_REMOTE) return (0);
 	return _tmpdir_cleanup(sp, ac, av);
 }
 
 int slurm_spank_job_prolog(spank_t sp, int ac, char **av)
-{
-	slurm_error("private-tmpdir: slurm_spamk_job_prolog");
-	return 0;
-}
-
-int _slurm_spank_job_prolog(spank_t sp, int ac, char **av)
 {
 	int rc, i;
-	if (spank_context () != S_CTX_REMOTE)
-		return (0);
 	if (_tmpdir_init(sp, ac, av))
 		return -1;
 	for (i = 0; i < base_count; i++) {
@@ -144,10 +134,6 @@ int slurm_spank_init_post_opt(spank_t sp, int ac, char **av)
 {
 	if (spank_context () != S_CTX_REMOTE)
 		return (0);
-	int rc = _slurm_spank_job_prolog(sp,ac,av);
-	if(rc) {
-		return rc;
-	}
 	return _tmpdir_bind(sp, ac, av);
 }
 
@@ -205,22 +191,27 @@ static int _tmpdir_bind(spank_t sp, int ac, char **av)
 
 static int _tmpdir_cleanup(spank_t sp, int ac, char **av)
 {
-	return 0;
 	char *prev_base = NULL;
 	int i;
 
-	for (i = 0; i < MAX_BIND_DIRS; i++) {
+	for (i = 0; i < base_count; i++) {
 		if (bases[i] != prev_base) {
 			prev_base = bases[i];
-			slurm_error("private-tmpdir: bases: free: %p", bases[i]);
-			free(bases[i]);
+			if(bases[i]) {
+				free(bases[i]);
+			}
+		}
+		if(base_paths[i]) {
+			free(base_paths[i]);
+		}
+	}
+	for (i = 0; i < bind_count; i++) {
+		if(bind_dirs[i]) {
+			free(bind_dirs[i]);
+		}
+		if(bind_paths[i]) {
+			free(bind_paths[i]);
 		}
-		slurm_error("private-tmpdir: base_paths: free: %p",  base_paths[i]);
-		free(base_paths[i]);
-		slurm_error("private-tmpdir: bind_dirs: free: %p",  bind_dirs[i]);
-		free(bind_dirs[i]);
-		slurm_error("private-tmpdir: bind_paths: free: %p",  bind_paths[i]);
-		free(bind_paths[i]);
 	}
 	return 0;
 }
diff --git a/roles/slurm-start/tasks/main.yml b/roles/slurm-start/tasks/main.yml
index 364ff96ed9f1a6612d3cb0330284e077603790f5..b635b5bff7f07cbf9c74acd989c62b79090e53e9 100644
--- a/roles/slurm-start/tasks/main.yml
+++ b/roles/slurm-start/tasks/main.yml
@@ -43,17 +43,17 @@
   when: use_systemd is defined and start_slurmd is defined
   register: slurmd_service_installed
 
-- name:  copy slurmd.service backup
-  template: dest=/etc/systemd/system/slurmd.service src=slurmd.service.secondary.j2 mode=644
-  become: true
-  register: slurmd_service_installed
-  tags: [never,DEPLOYSLURMDSERVICEBACKUP]
-
-- name: reload systemd after copying secondary slurmd.service backup
-  systemd:
-    daemon_reload: yes
-  become: true
-  tags: [never,DEPLOYSLURMDSERVICEBACKUP]
+#- name:  copy slurmd.service backup
+#  template: dest=/etc/systemd/system/slurmd.service src=slurmd.service.secondary.j2 mode=644
+#  become: true
+#  register: slurmd_service_installed
+#  tags: [never,DEPLOYSLURMDSERVICEBACKUP]
+
+#- name: reload systemd after copying secondary slurmd.service backup
+#  systemd:
+#    daemon_reload: yes
+#  become: true
+#  tags: [never,DEPLOYSLURMDSERVICEBACKUP]
 
 - name: deploy glusterfsheltest
   template: dest=/etc/systemd/system/glusterfsheltest.sh src=templates/glusterfsheltest.sh.j2 mode=744
diff --git a/roles/telegraf/files/telegraf_slurmstats.py b/roles/telegraf/files/telegraf_slurmstats.py
index 962a2080abbeb1a5532045bce4beb5a51f0033b7..2f57b3adb4fca1e262ffc4f30b2814f13e5e5ab0 100644
--- a/roles/telegraf/files/telegraf_slurmstats.py
+++ b/roles/telegraf/files/telegraf_slurmstats.py
@@ -15,7 +15,7 @@ def print_stats(stats):
 
 def get_stats():
     import subprocess
-    p = subprocess.Popen(['sdiag'],stdout = subprocess.PIPE,stderr=subprocess.PIPE)
+    p = subprocess.Popen(['/opt/slurm-20.02.7/bin/sdiag'],stdout = subprocess.PIPE,stderr=subprocess.PIPE)
     (stdout,stderr) = p.communicate()
     for l in stdout.decode().splitlines():
         if "Total backfilled jobs (since last stats cycle start):" in l:
diff --git a/roles/vncserver/tasks/main.yml b/roles/vncserver/tasks/main.yml
index 24dd1560dababef8dd1358c71b0f15db6d973d47..196f8b80de603c247b7d316c1f782798b3d97ec4 100644
--- a/roles/vncserver/tasks/main.yml
+++ b/roles/vncserver/tasks/main.yml
@@ -5,7 +5,7 @@
   when: ansible_distribution == "CentOS" and ansible_distribution_major_version == "7"
 
 - name: install system packages apt
-  apt: name={{ system_packages }} state=present update_cache=true  force=yes
+  apt: name={{ system_packages }} state=present update_cache=true
   become: true
   register: apt_status
   until: apt_status is success
@@ -13,12 +13,26 @@
   retries: 10
   when: ansible_os_family == 'Debian'
 
-- name: force the use of KDE desktop
-  template: src=vncserver.centos dest=/bin/vncserver
+- name: force the use of mate desktop
+  template:
+    src: vncserver.ubuntu
+    dest: /usr/bin/vncserver
+    owner: root
+    group: root
+    mode: u=rxw,g=rx,o=rx
   become: true
-  when: ansible_os_family == 'RedHat'
+  when: ansible_os_family == 'Debian'
 
-- name: force the use of mate desktop
-  template: src=vncserver.ubuntu dest=/usr/bin/vncserver
+- name: query the default x-session
+  shell: update-alternatives --query x-session-manager | grep Value
   become: true
+  check_mode: no
+  changed_when: false
+  register: qxsessionmanager
   when: ansible_os_family == 'Debian'
+
+- name: make mate the default x-session
+  shell: update-alternatives --set x-session-manager /usr/bin/mate-session
+  become: true
+  when: ansible_os_family == 'Debian' and "mate" not in qxsessionmanager.stdout 
+