Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add workflow using conda to install dependencies #313

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

diegoferigo
Copy link
Member

@diegoferigo diegoferigo commented Mar 30, 2021

#279 provides useful information about why relying on conda could be beneficial over the current PyPI-based distribution.

Much work has been done by the conda-forge community (including @traversaro) to provide the Ignition stack:

This PR explores the integration of conda and its channels (particularly, conda-forge and robotology) to install the build dependencies in CI.

  • Only Dome is supported (Edifice has not been released yet, and it's not yet part of conda-forge)
  • The iDynTree dependency in conda channels does not have yet the python component Support generating conda binaries for ROBOTOLOGY_USES_PYTHON option robotology-superbuild#641, as temporarily workaround it gets installed with pip from the git repository
  • For some reason, exporting CMAKE_PREFIX_PATH for iDynTree does not work in this setup, I had to rely on iDynTree_DIR (note that iDynTree exported targets are inside the python package)
  • Only Ubuntu Focal is supported even though there are already unused steps for macOS and Windows

This PR is currently blocked by conda-forge/libignition-gazebo-feedstock#4.

@traversaro
Copy link
Member

The iDynTree dependency in conda-forge does not have yet the python component robotology/robotology-superbuild#641, as temporarily workaround it gets installed with pip from the git repository

In general FYI I am all in favor in progressively moving dependencies with a clear versioning API/ABI and release policy from the robotology channel to proper conda-forge dependencies. iDynTree is definitely one of the first candidates, the missing part is just to move the idyntree-yarp-tools to https://github.com/robotology/idyntree-yarp-tools .

@diegoferigo
Copy link
Member Author

The iDynTree dependency in conda-forge does not have yet the python component robotology/robotology-superbuild#641, as temporarily workaround it gets installed with pip from the git repository

In general FYI I am all in favor in progressively moving dependencies with a clear versioning API/ABI and release policy from the robotology channel to proper conda-forge dependencies. iDynTree is definitely one of the first candidates, the missing part is just to move the idyntree-yarp-tools to https://github.com/robotology/idyntree-yarp-tools .

My comment was not clear enough: substitute conda-forge -> robotology channel. What I meant is that also in the robotology channel the Python components are missing. For the sake of this PR, there's no need to move anything to conda-forge.

@traversaro
Copy link
Member

The iDynTree dependency in conda-forge does not have yet the python component robotology/robotology-superbuild#641, as temporarily workaround it gets installed with pip from the git repository

In general FYI I am all in favor in progressively moving dependencies with a clear versioning API/ABI and release policy from the robotology channel to proper conda-forge dependencies. iDynTree is definitely one of the first candidates, the missing part is just to move the idyntree-yarp-tools to https://github.com/robotology/idyntree-yarp-tools .

My comment was not clear enough: substitute conda-forge -> robotology channel. What I meant is that also in the robotology channel the Python components are missing. For the sake of this PR, there's no need to move anything to conda-forge.

Actually I did not even noticed the conda-forge/robotology typo. I just mentioned that for mutual alignment.

@diegoferigo
Copy link
Member Author

Rebased and improved the workflow. Still blocked by conda-forge/libignition-gazebo-feedstock#4.

@diegoferigo
Copy link
Member Author

diegoferigo commented Jul 21, 2021

I re-triggered CI just to check and now after conda-forge/libignition-common-feedstock#36, the error of the wrong plugin directory seems solved. The project is building (also before it was) and the tests run and fail. This time, the error is the following:

Error while loading the library [/usr/share/miniconda/envs/ci/lib/ign-physics-4/engine-plugins/libignition-physics-dartsim-plugin.so]: libode.so.0.16.2: cannot open shared object file: No such file or directory
[Err] [Physics.cc:545] Unable to load the [/usr/share/miniconda/envs/ci/lib/ign-physics-4/engine-plugins/libignition-physics-dartsim-plugin.so] library.

Inspecting the conda environment, no ODE package is installed automatically (this was what I was mentioning today about the runtime dependencies of ignition libraries packaged in conda-forge @traversaro).

mamba list
                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
███████████████/  /██/  /██/  /██/  /████████████████████████
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        ███╗   ███╗ █████╗ ███╗   ███╗██████╗  █████╗
        ████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
        ██╔████╔██║███████║██╔████╔██║██████╔╝███████║
        ██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
        ██║ ╚═╝ ██║██║  ██║██║ ╚═╝ ██║██████╔╝██║  ██║
        ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═════╝ ╚═╝  ╚═╝

        mamba (0.15.2) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████

# packages in environment at /usr/share/miniconda/envs/ci:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
_sysroot_linux-64_curr_repodata_hack 3                   h5bd9786_12    conda-forge
alsa-lib                  1.2.3                h516909a_0    conda-forge
ampl-mp                   3.1.0             h616b090_1004    conda-forge
assimp                    5.0.1                hedfc422_5    conda-forge
attrs                     21.2.0             pyhd8ed1ab_0    conda-forge
binutils                  2.36.1               hdd6e379_1    conda-forge
binutils_impl_linux-64    2.36.1               h193b22a_1    conda-forge
binutils_linux-64         2.36                hf3e587d_32    conda-forge
boost-cpp                 1.74.0               h312852a_4    conda-forge
bullet-cpp                3.17                 h1abd341_0    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.17.1               h7f98852_1    conda-forge
c-compiler                1.2.0                h7f98852_0    conda-forge
ca-certificates           2021.5.30            ha878542_0    conda-forge
certifi                   2021.5.30        py38h578d9bd_0    conda-forge
cli11                     2.0.0                h9c3ff4c_0    conda-forge
cloudpickle               1.6.0                      py_0    conda-forge
cmake                     3.21.0               h8897547_0    conda-forge
compilers                 1.2.0                ha770c72_0    conda-forge
console_bridge            1.0.1                h4bd325d_0    conda-forge
cppzmq                    4.7.1                hf7cf922_2    conda-forge
cxx-compiler              1.2.0                h4bd325d_0    conda-forge
dartsim                   6.10.1               he39ca3a_1    conda-forge
dbus                      1.13.6               h48d8840_2    conda-forge
eigen                     3.3.9                h4bd325d_1    conda-forge
expat                     2.4.1                h9c3ff4c_0    conda-forge
fcl                       0.6.1                h2cbc392_3    conda-forge
ffmpeg                    4.3.1                hca11adc_2    conda-forge
flann                     1.9.1             h2e58136_1008    conda-forge
fontconfig                2.13.1            hba837de_1005    conda-forge
fortran-compiler          1.2.0                h1990efc_0    conda-forge
freeimage                 3.18.0               h88c329d_7    conda-forge
freetype                  2.10.4               h0708190_1    conda-forge
future                    0.18.2           py38h578d9bd_3    conda-forge
gcc_impl_linux-64         9.3.0               h70c0ae5_19    conda-forge
gcc_linux-64              9.3.0               hf25ea35_32    conda-forge
gdbm                      1.18                 h0a1914f_2    conda-forge
gettext                   0.19.8.1          h0b5b191_1005    conda-forge
gfortran_impl_linux-64    9.3.0               hc4a2995_19    conda-forge
gfortran_linux-64         9.3.0               hdc58fab_32    conda-forge
glib                      2.68.3               h9c3ff4c_0    conda-forge
glib-tools                2.68.3               h9c3ff4c_0    conda-forge
gmp                       6.2.1                h58526e2_0    conda-forge
gnutls                    3.6.13               h85f3911_1    conda-forge
gst-plugins-base          1.18.4               hf529b03_2    conda-forge
gstreamer                 1.18.4               h76c114f_2    conda-forge
gts                       0.7.6                h64030ff_2    conda-forge
gxx_impl_linux-64         9.3.0               hd87eabc_19    conda-forge
gxx_linux-64              9.3.0               h3fbe746_32    conda-forge
gym                       0.18.0           py38hd0cf306_1    conda-forge
hdf5                      1.10.6          nompi_h6a2412b_1114    conda-forge
icu                       68.1                 h58526e2_0    conda-forge
idyntree                  3.3.0           py38hb42c0b0_16    robotology
ilmbase                   2.5.5                h780b84a_0    conda-forge
iniconfig                 1.1.1              pyh9f0ad1d_0    conda-forge
ipopt                     3.14.2               h7ede334_0    conda-forge
irrlicht                  1.8.4                hdaeae82_1    conda-forge
jbig                      2.1               h7f98852_2003    conda-forge
jpeg                      9d                   h36c2ea0_0    conda-forge
jsoncpp                   1.9.4                h4bd325d_3    conda-forge
jxrlib                    1.1                  h7f98852_2    conda-forge
kernel-headers_linux-64   3.10.0              h4a8ded7_12    conda-forge
krb5                      1.19.1               hcc1bbae_0    conda-forge
lame                      3.100             h7f98852_1001    conda-forge
lcms2                     2.12                 hddcbb42_0    conda-forge
ld_impl_linux-64          2.36.1               hea4e1c9_1    conda-forge
lerc                      2.2.1                h9c3ff4c_0    conda-forge
libblas                   3.9.0                9_openblas    conda-forge
libcblas                  3.9.0                9_openblas    conda-forge
libccd                    2.1                  h9c3ff4c_1    conda-forge
libclang                  11.1.0          default_ha53f305_1    conda-forge
libcurl                   7.77.0               h2574ce0_0    conda-forge
libdeflate                1.7                  h7f98852_5    conda-forge
libdrm-cos7-x86_64        2.4.97            h9d98e8f_1104    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libevent                  2.1.10               hcdb4288_3    conda-forge
libffi                    3.3                  h58526e2_2    conda-forge
libgcc-devel_linux-64     9.3.0               h7864c58_19    conda-forge
libgcc-ng                 9.3.0               h2828fa1_19    conda-forge
libgfortran-ng            9.3.0               hff62375_19    conda-forge
libgfortran5              9.3.0               hff62375_19    conda-forge
libglib                   2.68.3               h3e27bee_0    conda-forge
libglu                    9.0.0             he1b5a44_1001    conda-forge
libglvnd-cos7-x86_64      1.0.1             h9d98e8f_1104    conda-forge
libglvnd-glx-cos7-x86_64  1.0.1             h9d98e8f_1104    conda-forge
libgomp                   9.3.0               h2828fa1_19    conda-forge
libiconv                  1.16                 h516909a_0    conda-forge
libignition-cmake2        2.8.0                h9c3ff4c_0    conda-forge
libignition-common4       4.1.0                ha44c05f_1    conda-forge
libignition-fuel-tools6   6.0.0                h9ff2376_3    conda-forge
libignition-gazebo5       5.1.0                h370f392_2    conda-forge
libignition-gui5          5.1.0                h56aee10_1    conda-forge
libignition-math6         6.8.0                h9c3ff4c_0    conda-forge
libignition-msgs7         7.1.0                hdf5dbbc_3    conda-forge
libignition-physics4      4.1.0                h9c3ff4c_0    conda-forge
libignition-plugin1       1.2.0                h9c3ff4c_0    conda-forge
libignition-rendering5    5.1.0                hd9181ad_0    conda-forge
libignition-sensors5      5.0.0                h407573b_1    conda-forge
libignition-tools1        1.2.0                h33ecc0d_1    conda-forge
libignition-transport10   10.0.0               h7997700_2    conda-forge
libignition-utils1        1.0.0                h9c3ff4c_2    conda-forge
liblapack                 3.9.0                9_openblas    conda-forge
libllvm11                 11.1.0               hf817b99_2    conda-forge
libnghttp2                1.43.0               h812cca2_0    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.15          pthreads_h8fe5266_1    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libosqp                   0.6.2                h9c3ff4c_3    conda-forge
libpng                    1.6.37               h21135ba_2    conda-forge
libpq                     13.3                 hd57d9b9_0    conda-forge
libprotobuf               3.16.0               h780b84a_0    conda-forge
libraw                    0.20.2               h10796ff_1    conda-forge
libsdformat11             11.2.2               haeae685_0    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libssh2                   1.9.0                ha56f1ee_6    conda-forge
libstdcxx-devel_linux-64  9.3.0               hb016644_19    conda-forge
libstdcxx-ng              9.3.0               h6de172a_19    conda-forge
libtiff                   4.3.0                hf544144_1    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libuv                     1.42.0               h7f98852_0    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libwebp-base              1.2.0                h7f98852_2    conda-forge
libxcb                    1.13              h7f98852_1003    conda-forge
libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
libxml2                   2.9.12               h72842e0_0    conda-forge
libxslt                   1.1.33               h15afd5d_2    conda-forge
libzip                    1.8.0                h4de3113_0    conda-forge
lxml                      4.6.3            py38hf1fe3a4_0    conda-forge
lz4-c                     1.9.3                h9c3ff4c_0    conda-forge
mesa-khr-devel-cos7-x86_64 18.3.4            h9d98e8f_1104    conda-forge
mesa-libgl-cos7-x86_64    18.3.4            h9d98e8f_1104    conda-forge
mesa-libgl-devel-cos7-x86_64 18.3.4            h9d98e8f_1104    conda-forge
mesa-libglapi-cos7-x86_64 18.3.4            h9d98e8f_1104    conda-forge
metis                     5.1.0             h58526e2_1006    conda-forge
more-itertools            8.8.0              pyhd8ed1ab_0    conda-forge
mumps-include             5.2.1               ha770c72_10    conda-forge
mumps-seq                 5.2.1               h47a8eb5_10    conda-forge
mysql-common              8.0.25               ha770c72_2    conda-forge
mysql-libs                8.0.25               hfa10184_2    conda-forge
ncurses                   6.2                  h58526e2_4    conda-forge
nettle                    3.6                  he412f7d_0    conda-forge
ninja                     1.10.2               h4bd325d_0    conda-forge
nspr                      4.30                 h9c3ff4c_0    conda-forge
nss                       3.67                 hb5efdd6_0    conda-forge
numpy                     1.21.1           py38h9894fe3_0    conda-forge
octomap                   1.9.7                h4bd325d_0    conda-forge
ogre                      1.12.12              h89131c6_0    conda-forge
openexr                   2.5.5                hf817b99_0    conda-forge
openh264                  2.1.1                h780b84a_0    conda-forge
openjpeg                  2.4.0                hb52868f_1    conda-forge
openssl                   1.1.1k               h7f98852_0    conda-forge
osqp-eigen                0.6.4                h9c3ff4c_1    conda-forge
packaging                 21.0               pyhd8ed1ab_0    conda-forge
pcre                      8.45                 h9c3ff4c_0    conda-forge
pip                       21.1.3             pyhd8ed1ab_0    conda-forge
pkg-config                0.29.2            h36c2ea0_1008    conda-forge
pluggy                    0.13.1           py38h578d9bd_4    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pugixml                   1.11.4               h9c3ff4c_0    conda-forge
py                        1.10.0             pyhd3deb0d_0    conda-forge
pybind11                  2.7.0            py38h1fd1430_0    conda-forge
pybind11-global           2.7.0            py38h1fd1430_0    conda-forge
pyglet                    1.5.16           py38h578d9bd_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pytest                    6.2.4            py38h578d9bd_0    conda-forge
python                    3.8.10          h49503c6_1_cpython    conda-forge
python_abi                3.8                      2_cp38    conda-forge
qt                        5.12.9               hda022c4_4    conda-forge
readline                  8.1                  h46c0cb4_0    conda-forge
rhash                     1.4.1                h7f98852_0    conda-forge
ruby                      2.7.2                he592edb_3    conda-forge
scipy                     1.7.0            py38h7b17777_1    conda-forge
scotch                    6.0.9                h3858553_1    conda-forge
sdl2                      2.0.12               h9c3ff4c_1    conda-forge
setuptools                49.6.0           py38h578d9bd_3    conda-forge
sqlite                    3.36.0               h9cd32fc_0    conda-forge
swig                      4.0.2                hd3c618e_2    conda-forge
sysroot_linux-64          2.17                h4a8ded7_12    conda-forge
tinyxml                   2.6.2                h4bd325d_2    conda-forge
tinyxml2                  9.0.0                h9c3ff4c_1    conda-forge
tk                        8.6.10               h21135ba_1    conda-forge
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
urdfdom                   2.3.5                h4bd325d_0    conda-forge
urdfdom_headers           1.0.5                h4bd325d_2    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
x264                      1!161.3030           h7f98852_1    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.6.12               h36c2ea0_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxaw               1.0.14               h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h516909a_0    conda-forge
xorg-libxmu               1.1.3                h516909a_0    conda-forge
xorg-libxpm               3.5.13               h516909a_0    conda-forge
xorg-libxt                1.1.5             h516909a_1003    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
yaml                      0.2.5                h516909a_0    conda-forge
zeromq                    4.3.4                h9c3ff4c_0    conda-forge
zlib                      1.2.11            h516909a_1010    conda-forge
zstd                      1.5.0                ha95c52a_0    conda-forge
zziplib                   0.13.69              h27826a3_1    conda-forge

@diegoferigo
Copy link
Member Author

diegoferigo commented Jul 21, 2021

Now few tests are failing, but the majority are passing. Definitely a step forward. I'm not sure what's missing now, I guess I need to debug it locally, from CI it's not clear to me.

Failing tests:

  • test_link_velocities.py::test_angular_acceleration
  • test_pid_controllers.py::test_position_pid

@diegoferigo
Copy link
Member Author

diegoferigo commented Jul 21, 2021

Rebasing on latest devel to check if anything changes.

Edit: no changes.

@diegoferigo
Copy link
Member Author

This PR seems now working on linux, but there's a test failing probably due to the dart version that is shipped in conda-forge (I disabled it for the moment).

MacOS segfaults during pytest.
============================= test session starts ==============================
platform darwin -- Python 3.8.12, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -- /usr/local/miniconda/envs/ci/bin/python
cachedir: .pytest_cache
rootdir: /Users/runner/work/gym-ignition/gym-ignition, configfile: setup.cfg, testpaths: tests
plugins: xvfb-2.0.0, icdiff-0.5
Fatal Python error: Segmentation fault

Current thread 0x000000010e0eadc0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1166 in create_module
  File "<frozen importlib._bootstrap>", line 556 in module_from_spec
  File "<frozen importlib._bootstrap>", line 657 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/bindings/gazebo.py", line 13 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 179 in import_gazebo
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 201 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/Users/runner/work/gym-ignition/gym-ignition/python/gym_ignition/utils/math.py", line 10 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/Users/runner/work/gym-ignition/gym-ignition/python/gym_ignition/utils/__init__.py", line 5 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/Users/runner/work/gym-ignition/gym-ignition/python/gym_ignition/__init__.py", line 14 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 961 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/Users/runner/work/gym-ignition/gym-ignition/tests/common/utils.py", line 10 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/Users/runner/work/gym-ignition/gym-ignition/tests/common/__init__.py", line 5 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/Users/runner/work/gym-ignition/gym-ignition/tests/__init__.py", line 5 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 1014 in _gcd_import
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 961 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 1014 in _gcd_import
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 961 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 1014 in _gcd_import
  File "/usr/local/miniconda/envs/ci/lib/python3.8/importlib/__init__.py", line 127 in import_module
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/pathlib.py", line 524 in import_path
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/python.py", line 578 in _importtestmodule
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/python.py", line 500 in _getobj
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/python.py", line 291 in obj
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/python.py", line 516 in _inject_setup_module_fixture
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/python.py", line 503 in collect
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/runner.py", line 341 in <lambda>
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/runner.py", line 311 in from_call
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/runner.py", line 341 in pytest_make_collect_report
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/runner.py", line 458 in collect_one_node
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 808 in genitems
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 811 in genitems
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 634 in perform_collect
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 333 in pytest_collection
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 322 in _main
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 269 in wrap_session
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/_pytest/main.py", line 316 in pytest_cmdline_main
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/pluggy/_callers.py", line 39 in _multicall
  ...
/Users/runner/work/_temp/1bb4b568-3014-4a0a-9894-7c2985e0ca35.sh: line 1: 57224 Segmentation fault: 11  pytest
collecting ... 
Windows errors during CMake configuring
  cmake \
      -S scenario/ \
      -B build/ \
      -GNinja \
      -DCMAKE_BUILD_TYPE=Debug \
      -DSCENARIO_USE_IGNITION:BOOL=ON \
      -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX}
  shell: C:\Program Files\Git\bin\bash.EXE -l {0}
  env:
    CONDA_PKGS_DIR: C:\Users\runneradmin\conda_pkgs_dir
-- The C compiler identification is Clang 5.0.0 with GNU-like command-line
-- The CXX compiler identification is Clang 5.0.0 with GNU-like command-line
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Miniconda/envs/ci/Library/bin/clang.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Miniconda/envs/ci/Library/bin/clang++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- YCM Version: 0.13.20210831.3-20210831.3+git1860bad (0.13.20210831.3)
CMake Warning (dev) at D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/find-modules/CMakeLists.txt:52 (message):
  A "FindGSL.cmake" module already exists in CMAKE_ROOT.  Please remove it,
  or move it to proposed.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/find-modules/CMakeLists.txt:52 (message):
  A "FindOpenGL.cmake" module already exists in CMAKE_ROOT.  Please remove
  it, or move it to proposed.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/deprecated/CMakeLists.txt:19 (message):
  A "FindGLUT.cmake" module already exists in CMAKE_ROOT.  Please remove it,
  or move it to proposed.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE  
-- Found Python3: C:/Miniconda/envs/ci/python.exe (found version "3.8.12") found components: Interpreter Development Development.Module Development.Embed 
-- Using Python: C:/Miniconda/envs/ci/python.exe
CMake Error at D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/modules/AddInstallRPATHSupport.cmake:120 (file):
  Syntax error in cmake code at

    D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/modules/AddInstallRPATHSupport.cmake:120

  when parsing string

    C:\Miniconda\envs\ci\Lib\site-packages

  Invalid character escape '\M'.
Call Stack (most recent call first):
  D:/a/gym-ignition/gym-ignition/build/_deps/ycm-src/modules/AddInstallRPATHSupport.cmake:178 (__AddInstallRPATHSupport_append_relative_rpath)
-- Configuring incomplete, errors occurred!
See also "D:/a/gym-ignition/gym-ignition/build/CMakeFiles/CMakeOutput.log".
  CMakeLists.txt:128 (add_install_rpath_support)
See also "D:/a/gym-ignition/gym-ignition/build/CMakeFiles/CMakeError.log".

@diegoferigo
Copy link
Member Author

Updated status:

  • linux: ok.
  • macos: compiles but segfaults when scenario is imported.
  • windows: fails to compile due to link error with zlib.dll.

On windows, it seems that it links the dll instead of the libs. cc @traversaro any clue? I can see that the library is found as part of the find_package(ignition-gazebo6):

[...]
 -- Searching for dependencies of ignition-plugin1-register
-- Looking for ignition-transport11 -- found version 11.0.0
-- Searching for dependencies of ignition-transport11
-- Found ZLIB: C:/Miniconda/envs/ci/zlib.dll (found version "1.2.11") 
-- Looking for ignition-utils1 -- found version 1.1.0
[...]
macos: segfaults when scenario is imported
Run python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); from scenario import gazebo as scenario_gazebo"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import gym_ignition"
  shell: /bin/bash -l {0}
  env:
    CONDA_PKGS_DIR: /Users/runner/conda_pkgs_dir
Fatal Python error: Segmentation fault

Current thread 0x00000001132c1dc0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1166 in create_module
  File "<frozen importlib._bootstrap>", line 556 in module_from_spec
  File "<frozen importlib._bootstrap>", line 657 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/bindings/gazebo.py", line 13 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 208 in import_gazebo
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 233 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<string>", line 1 in <module>
/Users/runner/work/_temp/c67c2cf9-c5e6-4e7f-9d95-a0811159e5fe.sh: line 1: 26963 Segmentation fault: 11  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
windows: fails to compile due to link error with zlib.dll
Run cmake --build build/ --config Debug
  cmake --build build/ --config Debug
  shell: C:\Program Files\Git\bin\bash.EXE -l {0}
  env:
    CONDA_PKGS_DIR: C:\Users\runneradmin\conda_pkgs_dir
Microsoft (R) Build Engine version 16.11.1+3e40a09f8 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  Checking Build System
  Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/src/controllers/CMakeLists.txt
  ComputedTorqueFixedBase.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3415,59): warning C4267: 'argument': conversion from 'size_t' to 'const unsigned int', possible loss of data [D:\a\gym-ignition\gym-ignition\build\src\controllers\ComputedTorqueFixedBase.vcxproj]
D:\a\gym-ignition\gym-ignition\scenario\src\controllers\src\ComputedTorqueFixedBase.cpp(191): message : see reference to function template instantiation 'std::unique_ptr<scenario::controllers::ComputedTorqueFixedBase::Impl::Buffers,std::default_delete<scenario::controllers::ComputedTorqueFixedBase::Impl::Buffers>> std::make_unique<scenario::controllers::ComputedTorqueFixedBase::Impl::Buffers,unsigned __int64,0>(unsigned __int64 &&)' being compiled [D:\a\gym-ignition\gym-ignition\build\src\controllers\ComputedTorqueFixedBase.vcxproj]
  Auto build dll exports
     Creating library D:/a/gym-ignition/gym-ignition/build/lib/Debug/ComputedTorqueFixedBase.lib and object D:/a/gym-ignition/gym-ignition/build/lib/Debug/ComputedTorqueFixedBase.exp
  ComputedTorqueFixedBase.vcxproj -> D:\a\gym-ignition\gym-ignition\build\bin\Debug\ComputedTorqueFixedBase.dll
  Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/src/core/CMakeLists.txt
  signals.cpp
  utils.cpp
  Generating Code...
  Auto build dll exports
     Creating library D:/a/gym-ignition/gym-ignition/build/lib/Debug/CoreUtils.lib and object D:/a/gym-ignition/gym-ignition/build/lib/Debug/CoreUtils.exp
  CoreUtils.vcxproj -> D:\a\gym-ignition\gym-ignition\build\bin\Debug\CoreUtils.dll
  Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/src/gazebo/CMakeLists.txt
  World.cpp
  Model.cpp
  Joint.cpp
  Link.cpp
  utils.cpp
  helpers.cpp
  Generating Code...
  Auto build dll exports
C:\Miniconda\envs\ci\zlib.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x300 [D:\a\gym-ignition\gym-ignition\build\src\gazebo\ScenarioGazebo.vcxproj]
  Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/deps/CMakeLists.txt
  process.cpp
  process_win.cpp
  Generating Code...
  tiny-process-library.vcxproj -> D:\a\gym-ignition\gym-ignition\build\deps\tiny-process-library.dir\Debug\tiny-process-library.lib
Error: Process completed with exit code 1.

@diegoferigo
Copy link
Member Author

diegoferigo commented Oct 26, 2021

I managed to get a more descriptive error message on macos:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: dlopen(/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/bindings/_gazebo.so, 2): Library not loaded: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
  Referenced from: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
  Reason: Incompatible library version: vecLib requires version 1.0.0 or later, but libBLAS.dylib provides version 0.0.0

It seems to pick the libBLAS.dylib from outside the conda environment, but libblas is installed from conda-forge. Few lines above the error, I read:

dyld: loaded: <6B85C400-ECD8-3887-9BFD-8001167B1F14> /usr/local/miniconda/envs/ci/lib/libBLAS.dylib
dyld: unloaded: <6B85C400-ECD8-3887-9BFD-8001167B1F14> /usr/local/miniconda/envs/ci/lib/libBLAS.dylib

@diegoferigo
Copy link
Member Author

diegoferigo commented Oct 26, 2021

With the workaround provided by @traversaro in conda-forge/libignition-gazebo-feedstock#30 (comment), the windows build compiles until the SWIG bindings, that now fail with:

  Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/bindings/gazebo/CMakeLists.txt
  gazeboPYTHON_wrap.cxx
LINK : fatal error LNK1104: cannot open file 'python38_d.lib' [D:\a\gym-ignition\gym-ignition\build\bindings\gazebo\gazebo.vcxproj]

The workflow is compiling in Debug and this could be the cause of this python*.lib error, I'm trying now running a Release build. Not sure if this could also be related to the zlib problem I described above.

@diegoferigo
Copy link
Member Author

Compiling in Release seems fixing the SWIG bindings:

Building Custom Rule D:/a/gym-ignition/gym-ignition/scenario/bindings/gazebo/CMakeLists.txt
  gazeboPYTHON_wrap.cxx
     Creating library D:/a/gym-ignition/gym-ignition/build/lib/Release/gazebo.lib and object D:/a/gym-ignition/gym-ignition/build/lib/Release/gazebo.exp
  gazebo.vcxproj -> D:\a\gym-ignition\gym-ignition\build\bindings\scenario\bindings\Release\_gazebo.pyd

but now the vendored Physics system is failing with:

D:\a\gym-ignition\gym-ignition\scenario\src\plugins\Physics\Physics.cc : fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj [D:\a\gym-ignition\gym-ignition\build\src\plugins\Physics\PhysicsSystem.vcxproj]

Trying to use /bigobj as described in Fatal Error C1128.

@diegoferigo
Copy link
Member Author

Now also windows compiles the project successfully. Let's see if we manage to reach the testing step. Similarly to macOS, I suspect that importing the bindings does not work out of the box also on windows.

@diegoferigo diegoferigo changed the base branch from devel to master October 26, 2021 15:00
@diegoferigo diegoferigo force-pushed the feature/conda branch 2 times, most recently from 080c6a7 to 343a61d Compare October 26, 2021 15:02
@diegoferigo diegoferigo force-pushed the feature/conda branch 3 times, most recently from f90906e to 6ae5e86 Compare October 27, 2021 14:49
@diegoferigo
Copy link
Member Author

diegoferigo commented Oct 27, 2021

Updated status:

  • linux Compiles ok. Imports scenario and gym_ignition successfully. Tests succeed.
  • macos Compiles ok. Segfaults when scenario is imported.
  • windows Compiles ok. Imports scenario and gym_ignition successfully. Tests fail.
macos: segfaults when scenario is imported
Run python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); from scenario import gazebo as scenario_gazebo"
  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import gym_ignition"
  shell: /bin/bash -l {0}
  env:
    CONDA_PKGS_DIR: /Users/runner/conda_pkgs_dir
Fatal Python error: Segmentation fault

Current thread 0x00000001132c1dc0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1166 in create_module
  File "<frozen importlib._bootstrap>", line 556 in module_from_spec
  File "<frozen importlib._bootstrap>", line 657 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/bindings/gazebo.py", line 13 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 208 in import_gazebo
  File "/usr/local/miniconda/envs/ci/lib/python3.8/site-packages/scenario/__init__.py", line 233 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 843 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<string>", line 1 in <module>
/Users/runner/work/_temp/c67c2cf9-c5e6-4e7f-9d95-a0811159e5fe.sh: line 1: 26963 Segmentation fault: 11  python -Xfaulthandler -c "import faulthandler; faulthandler.enable(); import scenario"
windows: tests fail
============================= test session starts =============================
platform win32 -- Python 3.8.12, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -- C:\Miniconda\envs\ci\python.exe
cachedir: .pytest_cache
rootdir: D:\a\gym-ignition\gym-ignition, configfile: setup.cfg, testpaths: tests
plugins: icdiff-0.5
collecting ... collected 60 items

tests/test_gym_ignition/test_inverse_kinematics.py::test_inverse_kinematics[default_world0] [Msg] [D:\a\gym-ignition\gym-ignition\scenario\src\gazebo\src\GazeboSimulator.cpp:673] Using default empty world
[Wrn] [D:\bld\libignition-common4_1634397360097\work\src\Util.cc:351] Reading environment variable with _allowEmpty==true is unsupported on Windows.
[Msg] Loading SDF string. File path not available.
[Msg] Loaded level [3]
[Msg] No systems loaded from SDF, loading defaults
[Wrn] [D:\bld\libignition-common4_1634397360097\work\src\Util.cc:351] Reading environment variable with _allowEmpty==true is unsupported on Windows.
[Err] [D:\bld\libignition-gazebo6_1635251434674\work\src\ServerConfig.cc:900] Failed to copy installed config [D:\bld\libignition-gazebo6_1635251434674\_h_env\Library\share\ignition\ignition-gazebo6\server.config] to default config [C:\Users\runneradmin\.ignition\gazebo\6\server.config].(file D:\bld\libignition-gazebo6_1635251434674\_h_env\Library\share\ignition\ignition-gazebo6\server.config doesn't exist)
[Msg] Serving world controls on [/world/default/control] and [/world/default/playback/control]
[Msg] Serving GUI information on [/world/default/gui/info]
[Msg] World [default] initialized with [default_physics] physics profile.
[Msg] Serving world SDF generation service on [/world/default/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Dbg] [D:\a\gym-ignition\gym-ignition\scenario\src\gazebo\src\GazeboSimulator.cpp:623] World 'default' successfully processed by ECMProvider
[Dbg] [D:\a\gym-ignition\gym-ignition\scenario\src\gazebo\src\GazeboSimulator.cpp:741] Starting the gazebo server
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Dbg] [D:\bld\libignition-gazebo6_1635251434674\work\src\SimulationRunner.cc:514] Creating PostUpdate worker threads: 1
[Dbg] [D:\a\gym-ignition\gym-ignition\scenario\src\gazebo\src\GazeboSimulator.cpp:790] Creating and caching World 'default'
[Err] [D:\bld\libignition-gazebo6_1635251434674\work\src\EntityComponentManager.cc:955] Failed to create component of type [13081221419881009263] for entity [1]. Type has not been properly registered.
Windows fatal exception: access violation

Current thread 0x000015d4 (most recent call first):
  File "C:\Miniconda\envs\ci\lib\site-packages\scenario\bindings\gazebo.py", line 1421 in initialize
  File "D:\a\gym-ignition\gym-ignition\tests\common\utils.py", line 77 in default_world_fixture
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 925 in call_fixture_func
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 1126 in pytest_fixture_setup
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 1072 in execute
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 687 in _compute_fixture_value
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 601 in _get_active_fixturedef
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 581 in getfixturevalue
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\fixtures.py", line 568 in _fillfixtures
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\python.py", line 1647 in setup
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 449 in prepare
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 150 in pytest_runtest_setup
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 255 in <lambda>
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 311 in from_call
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 254 in call_runtest_hook
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 215 in call_and_report
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 120 in runtestprotocol
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\runner.py", line 109 in pytest_runtest_protocol
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\main.py", line 348 in pytest_runtestloop
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\main.py", line 323 in _main
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\main.py", line 269 in wrap_session
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\main.py", line 316 in pytest_cmdline_main
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_callers.py", line 39 in _multicall
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_manager.py", line 80 in _hookexec
  File "C:\Miniconda\envs\ci\lib\site-packages\pluggy\_hooks.py", line 265 in __call__
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\config\__init__.py", line 162 in main
  File "C:\Miniconda\envs\ci\lib\site-packages\_pytest\config\__init__.py", line 185 in console_main
  File "C:\Miniconda\envs\ci\Scripts\pytest-script.py", line 10 in <module>
D:\a\_temp\a7095e05-0616-4152-b85d-83ab1435e3df.sh: line 3:   943 Segmentation fault      pytest -sv tests

@diegoferigo
Copy link
Member Author

@traversaro reading better the windows error:

[Err] [D:\bld\libignition-gazebo6_1635251434674\work\src\ServerConfig.cc:900] Failed to copy installed config [D:\bld\libignition-gazebo6_1635251434674_h_env\Library\share\ignition\ignition-gazebo6\server.config] to default config [C:\Users\runneradmin.ignition\gazebo\6\server.config].(file D:\bld\libignition-gazebo6_1635251434674_h_env\Library\share\ignition\ignition-gazebo6\server.config doesn't exist)

it seems that something related to the relocation here failed. The file D:\bld\libignition-gazebo6_1635251434674\_h_env\Library\share\ignition\ignition-gazebo6\server.config seems to be a file of the CI system used to build the libignition-gazebo feedstock.

@traversaro
Copy link
Member

traversaro commented Oct 27, 2021

@traversaro reading better the windows error:

Yes, the problem is probably not here, I guess for now you can skip Windows and macOS after just opening an issue in the ign-gazebo feedstock repo on those problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants