Node process die when running in arm64v8 (qemu) docker

asked 2020-06-16 14:13:39 -0600

Phil007 gravatar image

Hello,

I'm unable to load any node when running ROS inside a qemu arm64v8 docker. The node process dies shortly after being started. The host computer is running Ubuntu 18.04 64 bits. The problem can be easily reproduced as follow:

# Setup qemu to run arm docker on x86 host
sudo apt-get install qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

# Launch arm64v8 container with ros image
docker run -it arm64v8/ros:melodic-ros-base /bin/bash

# Install and run roscpp tutorial
apt-get update && apt-get install ros-melodic-roscpp-tutorials
source /opt/ros/melodic/setup.bash
roslaunch roscpp_tutorials talker_listener.launch

Here is the output:

... logging to /root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/roslaunch-8dd91dac75d2-2141.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://8dd91dac75d2:37539/

SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.5

NODES
  /
    listener (roscpp_tutorials/listener)
    talker (roscpp_tutorials/talker)

auto-starting new master
process[master]: started with pid [2166]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to a72e1788-b002-11ea-9127-3f45a6660ee1
process[rosout-1]: started with pid [2183]
started core service [/rosout]
process[listener-2]: started with pid [2188]
[rosout-1] process has died [pid 2183, exit code 127, cmd /opt/ros/melodic/lib/rosout/rosout __name:=rosout __log:=/root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/rosout-1.log].
log file: /root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/rosout-1*.log
[rosout-1] restarting process
process[talker-3]: started with pid [2195]
[ INFO] [1592333610.205317895]: hello world 0
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6005fc3a
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x60001737
[ INFO] [1592333610.301632331]: hello world 1
process[rosout-1]: started with pid [2202]
[ INFO] [1592333610.400877386]: hello world 2
[listener-2] process has died [pid 2188, exit code 127, cmd /opt/ros/melodic/lib/roscpp_tutorials/listener __name:=listener __log:=/root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/listener-2.log].
log file: /root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/listener-2*.log
[ INFO] [1592333610.500888051]: hello world 3
[ INFO] [1592333610.600877653]: hello world 4
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6005fc3a
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x60001737
[talker-3] process has died [pid 2195, exit code 127, cmd /opt/ros/melodic/lib/roscpp_tutorials/talker __name:=talker __log:=/root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/talker-3.log].
log file: /root/.ros/log/a72e1788-b002-11ea-9127-3f45a6660ee1/talker-3*.log

The crash seems to be related to these messages:

qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6005fc3a

and I didn't find any relevant solution on Google. Any idea where to start? Should I submit this to the bug tracker?

edit retag flag offensive close merge delete

Comments

Any progress on this? I am seeing this issue too, but without the qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6005fc3a

jbourne gravatar image jbourne  ( 2021-03-03 10:39:42 -0600 )edit

I have a similar problem. I tried compiling and running my node both on arm64 and armv7 using buildx multi-arch capabilities. In my case, first rosout died and then at some point my node died which I think are related problems. I can provide more logs if needed.

...

auto-starting new master process[master]: started with pid [12094] ROS_MASTER_URI=http://localhost:11311

setting /run_id to 3285d550-7dee-11eb-a595-0242ac110004 process[rosout-1]: started with pid [12111] started core service [/rosout] process[rovio-2]: started with pid [12116] [rosout-1] process has died [pid 12111, exit code -11, cmd /opt/ros/melodic/lib/rosout/rosout __name:=rosout __log:=/root/.ros/log/3285d550-7dee-11eb-a595-0242ac110004/rosout-1.log]. log file: /root/.ros/log/3285d550-7dee-11eb-a595-0242ac110004/rosout-1*.log [rosout-1] restarting process

...

ASeyfi gravatar image ASeyfi  ( 2021-03-05 15:07:40 -0600 )edit

@jbourne Sorry I made no progress on that.

Phil007 gravatar image Phil007  ( 2021-03-08 07:13:29 -0600 )edit

I already submitted this issue here:

https://github.com/ros/ros_comm/issue...

Perhaps you could comment on this bug to increase our chances that someone will tackle it.

Phil007 gravatar image Phil007  ( 2021-03-08 07:29:35 -0600 )edit

I am having the same issue! Anyone has a solution yet?

escobar gravatar image escobar  ( 2021-11-04 11:49:19 -0600 )edit