Check for conflicting apps breaks activating Persistent Storage feature
Relevant logs from wb:d1caad27c64e0c42a191bf6f851094ef:
Jan 29 20:39:51 amnesia tps[5248]: INFO:feature.py:101: [3] Activating feature GnuPG
Jan 29 20:39:51 amnesia tps[5248]: INFO:feature.py:101: [4] Activating feature Pidgin
Jan 29 20:39:51 amnesia tps[5248]: INFO:mount.py:177: [4] Activating mount /var/lib/tails-persistent-storage/nosymfollow/home/amnesia/.purple...
Jan 29 20:39:51 amnesia tps[5248]: INFO:feature.py:101: [5] Activating feature GnuPG
Jan 29 20:39:51 amnesia tps[5248]: INFO:mount.py:230: [4] Done activating mount /var/lib/tails-persistent-storage/nosymfollow/home/amnesia/.purple
Jan 29 20:39:51 amnesia tps[5248]: ERROR:object.py:192: [3] psutil.NoSuchProcess process no longer exists (pid=109677)
Jan 29 20:39:51 amnesia tps[5248]: Traceback (most recent call last):
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_common.py", line 447, in wrapper
Jan 29 20:39:51 amnesia tps[5248]: ret = self._cache[fun]
Jan 29 20:39:51 amnesia tps[5248]: AttributeError: _cache
Jan 29 20:39:51 amnesia tps[5248]: During handling of the above exception, another exception occurred:
Jan 29 20:39:51 amnesia tps[5248]: Traceback (most recent call last):
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1576, in wrapper
Jan 29 20:39:51 amnesia tps[5248]: return fun(self, *args, **kwargs)
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_common.py", line 450, in wrapper
Jan 29 20:39:51 amnesia tps[5248]: return fun(self)
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1618, in _parse_stat_file
Jan 29 20:39:51 amnesia tps[5248]: with open_binary("%s/%s/stat" % (self._procfs_path, self.pid)) as f:
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_common.py", line 711, in open_binary
Jan 29 20:39:51 amnesia tps[5248]: return open(fname, "rb", **kwargs)
Jan 29 20:39:51 amnesia tps[5248]: FileNotFoundError: [Errno 2] No such file or directory: '/proc/109677/stat'
Jan 29 20:39:51 amnesia tps[5248]: During handling of the above exception, another exception occurred:
Jan 29 20:39:51 amnesia tps[5248]: Traceback (most recent call last):
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/dbus/object.py", line 177, in handle_method_call_inner
Jan 29 20:39:51 amnesia tps[5248]: result = func(*parameters)
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/feature.py", line 96, in Activate
Jan 29 20:39:51 amnesia tps[5248]: self.do_activate(job)
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/feature.py", line 103, in do_activate
Jan 29 20:39:51 amnesia tps[5248]: apps = self.get_running_conflicting_apps()
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/feature.py", line 339, in get_running_conflicting_apps
Jan 29 20:39:51 amnesia tps[5248]: processes = app.get_processes()
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/conflicting_app.py", line 43, in get_processes
Jan 29 20:39:51 amnesia tps[5248]: return [p for p in psutil.process_iter()
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/conflicting_app.py", line 44, in <listcomp>
Jan 29 20:39:51 amnesia tps[5248]: if self.process_belongs_to_app(p)]
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/tps/configuration/conflicting_app.py", line 40, in process_belongs_to_app
Jan 29 20:39:51 amnesia tps[5248]: return process.name() in self.process_names
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 617, in name
Jan 29 20:39:51 amnesia tps[5248]: name = self._proc.name()
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1576, in wrapper
Jan 29 20:39:51 amnesia tps[5248]: return fun(self, *args, **kwargs)
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1671, in name
Jan 29 20:39:51 amnesia tps[5248]: name = self._parse_stat_file()['name']
Jan 29 20:39:51 amnesia tps[5248]: File "/usr/lib/python3/dist-packages/psutil/_pslinux.py", line 1583, in wrapper
Jan 29 20:39:51 amnesia tps[5248]: raise NoSuchProcess(self.pid, self._name)
Jan 29 20:39:51 amnesia tps[5248]: psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=109677)
Jan 29 20:39:51 amnesia org.boum.tails.PersistentStorage.desktop[107505]: ERROR:feature.py:134: Error activating feature GnuPG: GDBus.Error:psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=109677)
Jan 29 20:39:51 amnesia tps[5248]: INFO:mount.py:177: [5] Activating mount /var/lib/tails-persistent-storage/nosymfollow/home/amnesia/.gnupg...
Jan 29 20:39:51 amnesia tps[5248]: INFO:mount.py:230: [5] Done activating mount /var/lib/tails-persistent-storage/nosymfollow/home/amnesia/.gnupg
Jan 29 20:39:51 amnesia tps[5248]: INFO:executil.py:61: [5] Executing hook /usr/local/lib/persistent-storage/on-activated-hooks/GnuPG/maybe-restore-gnupg-pubring
Could it be that something is racy in this check, e.g. between listing processes and getting extra info about them?
I understand it's pretty easy to recover from it and there's no harm done.
WhisperBack reports:
- wb:7a1e389250305a2958694d484778650e
- wb:78635447ebac5a60e44a547f73c0daad
- wb:d1caad27c64e0c42a191bf6f851094ef
- wb:d4fa304a8a4e651774849ca30e317ba9
Edited by intrigeri