mycroft-core
mycroft-core copied to clipboard
Unable Start
Describe the bug
I tried to install, mycroft on two different users. On main user where I first installed, I am able to use it well it a few hiccups here and there(like certain skills are not working well). I wanted to use mycroft on my other account on the same laptop so I tried running it with su
to change the user but it was unable to access the audio. So I tried to Install it again from the repo when i ran the installation I got a message
To Reproduce Install Mycroft on two seperate user acconts on the same device. Try to use it from the user you installed the second time
Expected behavior Able to run it
Log files
./start-mycroft.sh cli
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:
git config pull.rebase false # merge (the default strategy)
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only
You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.
Already up to date.
Initializing...
Starting cli
Traceback (most recent call last):
File "/home/studyarea/mycroft-core/mycroft/identity/__init__.py", line 55, in load
identity_lock.acquire()
File "/home/studyarea/mycroft-core/mycroft/util/combo_lock.py", line 59, in acquire
self.plock.acquire()
File "/home/studyarea/mycroft-core/.venv/lib/python3.8/site-packages/fasteners/process_lock.py", line 151, in acquire
self._do_open()
File "/home/studyarea/mycroft-core/.venv/lib/python3.8/site-packages/fasteners/process_lock.py", line 123, in _do_open
self.lockfile = open(self.path, 'a')
PermissionError: [Errno 13] Permission denied: '/tmp/identity-lock'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/studyarea/mycroft-core/mycroft/client/text/__main__.py", line 21, in <module>
from .text_client import (
File "/home/studyarea/mycroft-core/mycroft/client/text/text_client.py", line 21, in <module>
from mycroft.tts import TTS
File "/home/studyarea/mycroft-core/mycroft/tts/__init__.py", line 20, in <module>
from .tts import TTSFactory, TTS, TTSValidator, PlaybackThread
File "/home/studyarea/mycroft-core/mycroft/tts/tts.py", line 467, in <module>
class TTSFactory:
File "/home/studyarea/mycroft-core/mycroft/tts/tts.py", line 473, in TTSFactory
from mycroft.tts.mimic_tts import Mimic
File "/home/studyarea/mycroft-core/mycroft/tts/mimic_tts.py", line 32, in <module>
config = Configuration.get().get("tts").get("mimic")
File "/home/studyarea/mycroft-core/mycroft/configuration/config.py", line 192, in get
return Configuration.load_config_stack(configs, cache)
File "/home/studyarea/mycroft-core/mycroft/configuration/config.py", line 206, in load_config_stack
configs = [LocalConf(DEFAULT_CONFIG), RemoteConf(),
File "/home/studyarea/mycroft-core/mycroft/configuration/config.py", line 132, in __init__
if not is_paired():
File "/home/studyarea/mycroft-core/mycroft/api/__init__.py", line 506, in is_paired
api = DeviceApi()
File "/home/studyarea/mycroft-core/mycroft/api/__init__.py", line 227, in __init__
super(DeviceApi, self).__init__("device")
File "/home/studyarea/mycroft-core/mycroft/api/__init__.py", line 61, in __init__
self.identity = IdentityManager.get()
File "/home/studyarea/mycroft-core/mycroft/identity/__init__.py", line 101, in get
IdentityManager.load()
File "/home/studyarea/mycroft-core/mycroft/identity/__init__.py", line 59, in load
identity_lock.release()
File "/home/studyarea/mycroft-core/mycroft/util/combo_lock.py", line 64, in release
self.plock.release()
File "/home/studyarea/mycroft-core/.venv/lib/python3.8/site-packages/fasteners/process_lock.py", line 180, in release
raise threading.ThreadError("Unable to release an unacquired"
RuntimeError: Unable to release an unacquired lock
Environment (please complete the following information):
- Device type: Laptop HP Pavillion
- OS: Pop!OS
- Mycroft-core version: latest
Additional context
Hi there, thanks for logging this. It certainly looks like a bug.
It's not something the internal team will have time to prioritize in the near future, but good to have it documented in case others in the community want to tackle it, and so we can address it when we are next looking at desktop installs.
Any workaround for this?
as a workaround try deleting /tmp/identity-lock
before running mycroft
Hey can you elaborate more? Like which parent file do we need to find the said file?
No parent file. That's the file. It's located at /tmp/identity-lock
and it's probably owned by the user who ran Mycroft first, which is why you get "permission denied" when Mycroft tries to recreate it.
Still getting the same error
Do I need to delete it while using the Main user?
mycroft isn't built to be run by more than one person on a system, so you're going to run into problems (as you've noticed) and since this is sort of unexplored territory, you'll need to experiment a bunch to find solutions.
The kill issue sounds like you don't have permissions to stop another user's processes.