Illegal instruction (core dumped)

So I’ve attempted to install mycroft on a jetson nano from git, first the master then the dev branch with the same results:

  • setup finishes without errors

  • first time run of ./start-mycroft.sh debug works fine

  • I was then able to pair the device successfully both times

  • it generally worked, but a few core skills crashed (date, wolfram, and 4 others I think, due to missing python deps)

  • after a reboot I get the following:

ubuntu@jetson:~/mycroft-core$ ./start-mycroft.sh debug
    Already up to date.
    Starting all mycroft-core services
    Initializing...
    Starting background service bus
    CAUTION: The Mycroft bus is an open websocket with no built-in security
             measures.  You are responsible for protecting the local port
             8181 with a firewall as appropriate.
    Starting background service skills
    Starting background service audio
    Starting background service voice
    Starting background service enclosure
    Starting cli
    ./start-mycroft.sh: line 97:  7119 Illegal instruction     (core dumped) python3 -m ${_module} $_params >> /var/log/mycroft/${1}.log 2>&1
    ./start-mycroft.sh: line 97:  7122 Illegal instruction     (core dumped) python3 -m ${_module} $_params >> /var/log/mycroft/${1}.log 2>&1
    ./start-mycroft.sh: line 97:  7125 Illegal instruction     (core dumped) python3 -m ${_module} $_params >> /var/log/mycroft/${1}.log 2>&1
    ./start-mycroft.sh: line 97:  7130 Illegal instruction     (core dumped) python3 -m ${_module} $_params

Running with “all” instead of “debug” doesn’t give me the errors, but nothing actually starts so that’s a mystery. Running with “cli” gives me just the errors.

Line 97 in start-mycroft seems to be this:

function launch-process() { // line 97
    init-once

    name-to-script-path ${1}

    # Launch process in foreground
    echo "Starting $1"
    python3 -m ${_module} $_params
}

Not sure why calling a function would be an illegal instruction, Nvidia’s really smoking something.

Anyhow, the first time it happened I figured I messed something up, so I proceeded to rm -rf the cloned repo and recompiled the dev branch, in hopes that it may have been fixed later. Guess not.

It’s funny how the words “mycroft” and “Illegal instruction” have never been seen together by google ever, so I’m kind of out of options here.

Any ideas? Thanks.

I ran into the same issue on the Jetson AGX Xavier. I resolved it by downgrading numpy from 1.19.5 to 1.19.4. Best of luck!

2 Likes

Ah interesting, how did you ever figure that out? :stuck_out_tongue:

I’ll give it a shot when I can and report back.

Hmm well it certainly reduced the number of errors thrown from 4 to 1, and it’s a slightly different one but it still happens.

ubuntu@jetson:~/mycroft-core$ ./start-mycroft.sh debug
Already up to date.
Starting all mycroft-core services
Initializing...
Starting background service bus
CAUTION: The Mycroft bus is an open websocket with no built-in security
         measures.  You are responsible for protecting the local port
         8181 with a firewall as appropriate.
Starting background service skills
Starting background service audio
Starting background service voice
Starting background service enclosure
Starting cli
./start-mycroft.sh: line 97:  6937 Illegal instruction     (core dumped) python3 -m ${_module} $_params

Welp, I best go switch to picroft or something. Less headaches in the long run.

If you’re on the cli, try sourcing the venv (source .venv/bin/activate) and the running python3 just by itself, then try “import numpy” if that works, then exit to the shell and do “python3 -m mycroft.messagebus.service”, see what happens?
What version of python?

1 Like

Hmm right yeah, it seems that running numpy 1.19.5 actually crashes python when imported. I tried using both the global and virtualenv last time and both seemed to crash.

However I gave another thing a shot today, I downgraded the virtualenv to use numpy 1.19.4 and it seems to be actually working now when ran inside it. All skills load too, except for mycroft-stock, I’ll have to check what’s missing there.

1 Like

I solved it by following this answer from stackoverflow

We need to add “export OPENBLAS_CORETYPE=AARCH64” to the .bashrc file

Downgrading numpy did not work for me

1 Like