From: "xtkoba (Tee KOBAYASHI)" Date: 2022-05-26T17:08:58+00:00 Subject: [ruby-core:108709] [Ruby master Bug#18807] /lib/x86_64-linux-gnu/libruby-2.7.so.2.7 issue Issue #18807 has been updated by xtkoba (Tee KOBAYASHI). Note that the stack trace shows most recent call last. I guess Ruby Core is not much relevant here because it only calls `runGui` in `libignition-gazebo3-ign.so.3.12.0` through FFI. If anything, then the parameters for `runGui` might have been broken by `fiddle` + `libffi` but I cannot tell if that is the case here because no parameter info is logged in the stack trace. ---------------------------------------- Bug #18807: /lib/x86_64-linux-gnu/libruby-2.7.so.2.7 issue https://bugs.ruby-lang.org/issues/18807#change-97757 * Author: Kakcalu13 (Kevin KO) * Status: Open * Priority: Normal * ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- Seems like this is the right place for this issue. If this is wrong place, please let me know so I can close it promptly My computer specs: OS: MacOS Monetery CPU/GPU: Apple chip (M1) Docker: Ubuntu 20.04 Focal I was able to run Ignition Gazebo (programmed from Ruby) For some reason, I couldn't run Ruby on M1 using docker. The error log: ``` Error setting socket option (IP_MULTICAST_IF). Error setting socket option (IP_MULTICAST_IF). Did you set the environment variable IGN_IP with a correct IP address? [172.18.0.4] seems an invalid local IP address. Using 127.0.0.1 as hostname. terminate called after throwing an instance of 'std::out_of_range' what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0) Stack trace (most recent call last): #31 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6886f, in rb_vm_exec #30 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a62130, in #29 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a51405, in #28 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6adaa, in #27 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a5e025, in #26 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40019bc1be, in #25 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40018fc5d2, in rb_protect #24 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a759f0, in rb_yield #23 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6886f, in rb_vm_exec #22 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a62130, in #21 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a51405, in #20 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6adaa, in #19 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a5e025, in #18 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x40055ca714, in #17 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a2f6d9, in rb_nogvl #16 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x40055ca8fb, in #15 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x40055ef409, in #14 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x40055efff4, in #13 Object "/usr/lib/x86_64-linux-gnu/libignition-gazebo3-ign.so.3.12.0", at 0x40060527b3, in runServer #12 Object "/lib/x86_64-linux-gnu/libignition-gazebo3.so.3", at 0x4006544622, in ignition::gazebo::v3::Server::Server(ignition::gazebo::v3::ServerConfig const&) #11 Object "/lib/x86_64-linux-gnu/libignition-gazebo3.so.3", at 0x400654cd6a, in #10 Object "/lib/x86_64-linux-gnu/libignition-transport8.so.8", at 0x4006964eeb, in ignition::transport::v8::Node::Node(ignition::transport::v8::NodeOptions const&) #9 Object "/lib/x86_64-linux-gnu/libignition-transport8.so.8", at 0x400694466e, in #8 Object "/lib/x86_64-linux-gnu/libignition-transport8.so.8", at 0x400697eaf4, in ignition::transport::v8::NodeShared::NodeShared() #7 Object "/lib/x86_64-linux-gnu/libignition-transport8.so.8", at 0x400698dff9, in ignition::transport::v8::Discovery::Discovery(std::__cxx11::basic_string, std::allocator > const&, int, bool) #6 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x40056b93aa, in #5 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x40056c26a8, in __cxa_throw #4 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x40056c23f6, in std::terminate() #3 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x40056c238b, in #2 Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x40056b6910, in #1 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x4001bc5858, in abort #0 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x4001be618b, in gsignal Aborted (Signal sent by tkill() 1305 0) qemu: uncaught target signal 6 (Aborted) - core dumped qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb. Stack trace (most recent call last): #31 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40018fe2ed, in ruby_run_node #30 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40018f9490, in #29 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6886f, in rb_vm_exec #28 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a62130, in #27 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a51405, in #26 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6adaa, in #25 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a5e025, in #24 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40019bc1be, in #23 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x40018fc5d2, in rb_protect #22 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a759f0, in rb_yield #21 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6886f, in rb_vm_exec #20 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a62130, in #19 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a51405, in #18 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a6adaa, in #17 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a5e025, in #16 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x40055ca714, in #15 Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x4001a2f6d9, in rb_nogvl #14 Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x40055ca8fb, in #13 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x40055ef409, in #12 Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x40055efff4, in #11 Object "/usr/lib/x86_64-linux-gnu/libignition-gazebo3-ign.so.3.12.0", at 0x400605218d, in runGui #10 Object "/lib/x86_64-linux-gnu/libignition-gazebo3-gui.so.3", at 0x40061a4808, in ignition::gazebo::v3::gui::runGui(int&, char**, char const*) #9 Object "/lib/x86_64-linux-gnu/libignition-gazebo3-gui.so.3", at 0x40061a2ef0, in ignition::gazebo::v3::gui::createGui(int&, char**, char const*, char const*, bool) #8 Object "/lib/x86_64-linux-gnu/libignition-gui3.so.3", at 0x40076777c7, in ignition::gui::Application::Application(int&, char**, ignition::gui::WindowType) #7 Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x40081a4517, in QGuiApplication::QGuiApplication(int&, char**, int) #6 Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x40081a3542, in QGuiApplicationPrivate::init() #5 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x4007392f54, in QCoreApplicationPrivate::init() #4 Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x40081a1707, in QGuiApplicationPrivate::createEventDispatcher() #3 Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x40081a07ad, in QGuiApplicationPrivate::createPlatformIntegration() #2 Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x400718baac, in QMessageLogger::fatal(char const*, ...) const #1 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x4001bc5858, in abort #0 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x4001be618b, in gsignal Aborted (Signal sent by tkill() 1307 0) qemu: uncaught target signal 6 (Aborted) - core dumped ``` I upgraded from 2.7 to 3.1 on docker and it doesn't do anything as it gave the same result. Here is the small zip folder for you to see the issue quickly. (zip insert) This is the docker that lets you load gazebo. I added ENTRYPOINT to show you the same result. This is the VNC. Steps to see the issue from the shell only: 1) `cd` into that folder 2) `docker compose -f bug_reproduce.yml build --no-cache` 3) Wait for it complete which should be like 20 seconds or less 4) `docker compose -f bug_reproduce.yml up` 5) See the output of error. To log in vnc by go to `127.0.0.1:6080/` on your preferred browser. You can open terminal from the start menu and see what it has. It's using ruby 2.7 by default due to apt install. I upgraded it to 3.1 and it doesn't do anything. Keep that in mind, you need to comment `ENTRYPOINT ["/bin/sh", "-c", "ign gazebo -v 4 shapes.sdf"]` out in `Dockerfile` so you can access to VNC. Once you are done with it, re-do the steps above. Docker compose required `Docker Desktop 4.7+` By the way! Also this is already being discussed in gazebo issue as well on Github. I felt that this might be a little wrong place since it's more focus on Ruby as error mentioned. See here: https://github.com/gazebosim/gz-sim/issues/1362 ---Files-------------------------------- ruby_issue_docker.zip (925 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: