Node process die when running in arm64v8 (qemu) docker
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?
Any progress on this? I am seeing this issue too, but without the
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6005fc3a
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
...
@jbourne Sorry I made no progress on that.
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.
I am having the same issue! Anyone has a solution yet?