ami-iit / bipedal-locomotion-framework

Suite of libraries for achieving bipedal locomotion on humanoid robots
https://ami-iit.github.io/bipedal-locomotion-framework/
BSD 3-Clause "New" or "Revised" License
154 stars 38 forks source link

Conda CI manifpy failure #514

Closed traversaro closed 2 years ago

traversaro commented 2 years ago

@GiulioRomualdi noticed a CI failure in test using manifpy pybind11 objects, something like:

>       assert so3_task.set_set_point(I_R_F=I_R_F,
                                      angular_velocity=angular_velocity,
                                      angular_acceleration=angular_acceleration)
E       TypeError: set_set_point(): incompatible function arguments. The following argument types are supported:
E           1. (self: bipedal_locomotion_framework.bindings.tsid.SO3Task, I_R_F: manif::SO3<double>, angular_velocity: manif::SO3Tangent<double>, angular_acceleration: manif::SO3Tangent<double>) -> bool
E       
E       Invoked with: SO3Task Optimal Control Element - Frame name: chest.; kwargs: I_R_F=<manifpy.SO3 object at 0x7fe3b3ea8fb0>, angular_velocity=<manifpy.SO3Tangent object at 0x7fe3b3ea87f0>, angular_acceleration=<manifpy.SO3Tangent object at 0x7fe3b3ea8f70>

I looked at the history, and found that the difference in conda environments between the latest working job (~8 days ago) and the first failing (~7 days ago) is:

--- <unnamed>
+++ <unnamed>
@@ -1,4 +1,3 @@
-

   + _libgcc_mutex                      0.1  conda_forge    conda-forge/linux-64      Cached
   + _openmp_mutex                      4.5  1_gnu          conda-forge/linux-64      Cached
@@ -7,36 +6,36 @@
   + binutils_linux-64                 2.36  hf3e587d_5     conda-forge/linux-64       24 KB
   + bzip2                            1.0.8  h7f98852_4     conda-forge/linux-64      Cached
   + c-ares                          1.18.1  h7f98852_0     conda-forge/linux-64      Cached
-  + c-compiler                       1.3.0  h7f98852_0     conda-forge/linux-64        5 KB
+  + c-compiler                       1.4.0  h166bdaf_0     conda-forge/linux-64        5 KB
   + ca-certificates              2021.10.8  ha878542_0     conda-forge/linux-64      Cached
   + cmake                           3.22.2  h1021d11_0     conda-forge/linux-64       15 MB
-  + compilers                        1.3.0  ha770c72_0     conda-forge/linux-64        5 KB
-  + cxx-compiler                     1.3.0  h4bd325d_0     conda-forge/linux-64        5 KB
+  + compilers                        1.4.0  ha770c72_0     conda-forge/linux-64        5 KB
+  + cxx-compiler                     1.4.0  h924138e_0     conda-forge/linux-64        5 KB
   + expat                            2.4.4  h9c3ff4c_0     conda-forge/linux-64      183 KB
-  + fortran-compiler                 1.3.0  h1990efc_0     conda-forge/linux-64        5 KB
-  + gcc                              9.4.0  h192d537_5     conda-forge/linux-64       24 KB
-  + gcc_impl_linux-64                9.4.0  h03d3576_12    conda-forge/linux-64       43 MB
-  + gcc_linux-64                     9.4.0  h391b98a_5     conda-forge/linux-64       24 KB
-  + gfortran                         9.4.0  h2018a41_5     conda-forge/linux-64       23 KB
-  + gfortran_impl_linux-64           9.4.0  h0003116_12    conda-forge/linux-64       15 MB
-  + gfortran_linux-64                9.4.0  hf0ab688_5     conda-forge/linux-64       24 KB
-  + gxx                              9.4.0  h192d537_5     conda-forge/linux-64       23 KB
-  + gxx_impl_linux-64                9.4.0  h03d3576_12    conda-forge/linux-64       11 MB
-  + gxx_linux-64                     9.4.0  h0316aca_5     conda-forge/linux-64       24 KB
+  + fortran-compiler                 1.4.0  h2a4ca65_0     conda-forge/linux-64        5 KB
+  + gcc                             10.3.0  he2824d0_5     conda-forge/linux-64       24 KB
+  + gcc_impl_linux-64               10.3.0  hf2f2afa_12    conda-forge/linux-64       47 MB
+  + gcc_linux-64                    10.3.0  hc39de41_5     conda-forge/linux-64       24 KB
+  + gfortran                        10.3.0  h18518b4_5     conda-forge/linux-64       23 KB
+  + gfortran_impl_linux-64          10.3.0  h73f4979_12    conda-forge/linux-64       15 MB
+  + gfortran_linux-64               10.3.0  hb09a455_5     conda-forge/linux-64       24 KB
+  + gxx                             10.3.0  he2824d0_5     conda-forge/linux-64       24 KB
+  + gxx_impl_linux-64               10.3.0  hf2f2afa_12    conda-forge/linux-64       11 MB
+  + gxx_linux-64                    10.3.0  h2593f52_5     conda-forge/linux-64       24 KB
   + kernel-headers_linux-64         2.6.32  he073ed8_15    conda-forge/noarch        707 KB
   + krb5                            1.19.2  h48eae69_3     conda-forge/linux-64        1 MB
   + ld_impl_linux-64                2.36.1  hea4e1c9_2     conda-forge/linux-64      667 KB
   + libcurl                         7.81.0  h494985f_0     conda-forge/linux-64      340 KB
   + libedit                   3.1.20191231  he28a2e2_2     conda-forge/linux-64      Cached
   + libev                             4.33  h516909a_1     conda-forge/linux-64      Cached
-  + libgcc-devel_linux-64            9.4.0  hd854feb_12    conda-forge/linux-64        4 MB
+  + libgcc-devel_linux-64           10.3.0  he6cfe16_12    conda-forge/linux-64        3 MB
   + libgcc-ng                       11.2.0  h1d223b6_12    conda-forge/linux-64      Cached
   + libgfortran5                    11.2.0  h5c6108e_12    conda-forge/linux-64        2 MB
   + libgomp                         11.2.0  h1d223b6_12    conda-forge/linux-64      Cached
   + libnghttp2                      1.46.0  ha19adfc_0     conda-forge/linux-64      801 KB
-  + libsanitizer                     9.4.0  h79bfe98_12    conda-forge/linux-64        7 MB
+  + libsanitizer                    10.3.0  h26c7422_12    conda-forge/linux-64        6 MB
   + libssh2                         1.10.0  ha35d2d1_2     conda-forge/linux-64      233 KB
-  + libstdcxx-devel_linux-64         9.4.0  hd854feb_12    conda-forge/linux-64       10 MB
+  + libstdcxx-devel_linux-64        10.3.0  he6cfe16_12    conda-forge/linux-64       10 MB
   + libstdcxx-ng                    11.2.0  he4da1e4_12    conda-forge/linux-64      Cached
   + libuv                           1.43.0  h7f98852_0     conda-forge/linux-64        1 MB
   + libzlib                         1.2.11  h36c2ea0_1013  conda-forge/linux-64       59 KB

The problem seems indeed the update from gcc 9 to gcc 10, and the fact that manifpy 0.0.4 py39he14f5cb_6 was built with gcc 9. https://github.com/conda-forge/manif-feedstock/pull/18 should solve the immediate problem, but probably we need to understand how to handle this properly: if manifpy has an hard constraint on the gcc version used that should be reflected somehow in the CI.

GiulioRomualdi commented 2 years ago

we may require the same gcc version in the ci?

traversaro commented 2 years ago

if manifpy has an hard constraint on the gcc version used that should be reflected somehow in the CI.

Perhaps we need to install pybind11-abi as well? Totally random guess (see https://conda-forge.org/docs/maintainer/knowledge_base.html#pybind11-abi-constraints).

traversaro commented 2 years ago

Indeed, the problem was solved by https://github.com/conda-forge/manif-feedstock/pull/18, see https://github.com/ami-iit/bipedal-locomotion-framework/runs/5365668442 . I think we can close the issue as the problem is tracked on the manif conda-forge side at https://github.com/conda-forge/manif-feedstock/issues/19 .

traversaro commented 2 years ago

Related issue: https://github.com/ami-iit/bipedal-locomotion-framework/issues/386 .