Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4795

oqgraph engine fails to build with boost 1.54.0

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 5.5.32
    • Fix Version/s: 5.5.36
    • Component/s: None
    • Labels:
    • Environment:
      Slackware Linux (current tree), gcc 4.8.1, glibc 2.17

      Description

      Building MariaDB against a new boost version results in building erros for the OQGraph storage plugin:

      [ 64%] Building CXX object storage/oqgraph/CMakeFiles/oqgraph.dir/graphcore.cc.o
      In file included from /usr/include/boost/graph/adjacency_list.hpp:45:0,
                       from /tmp/mariadb-5.5.32/storage/oqgraph/graphcore.cc:40:
      /usr/include/boost/graph/named_graph.hpp: In instantiation of 'void boost::graph::named_graph<Graph, Vertex, VertexProperty>::removing_vertex(Vertex, VertexIterStability) [with VertexIterStability = boost::graph_detail::unstable_tag; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo>;
      Vertex = long unsigned int; VertexProperty = open_query::VertexInfo]':
      /usr/include/boost/graph/detail/adjacency_list.hpp:2203:7:   required from 'void boost::remove_vertex(typename Config::vertex_descriptor, boost::vec_adj_list_impl<G, C, B>&) [with
      Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo>; Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo>, boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo, boost::no_property, boost::listS>::config; Base = boost::bidirectional_graph_helper_with_property<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo>, boost::vecS, boost::vecS, boost::bidirectionalS, open_query::VertexInfo, open_query::EdgeInfo, boost::no_property, boost::listS>::config>; typename Config::vertex_descriptor = long unsigned int]'
      /tmp/mariadb-5.5.32/storage/oqgraph/graphcore.cc:578:35:   required from here
      /usr/include/boost/graph/named_graph.hpp:318:46: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>'
         BOOST_STATIC_ASSERT_MSG ((boost::is_base_of<boost::graph_detail::stable_tag,}VertexIterStability>::value), "Named graphs cannot use vecS as vertex container and remove vertices; the lack of vertex descriptor stability (which iterator stability is a proxy for) means that the name -> vertex mapping would need to be completely rebuilt after each deletion.  See https://svn.boost.org/trac/boost/ticket/7863 for more information and a test case.");
                                                    ^
      make[2]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/graphcore.cc.o] Error 1
      make[1]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/all] Error 2
      make: *** [all] Error 2
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              arjen Arjen Lentz added a comment -

              AL13N you can technically have an embedded Boost in your build tree, this is how we started - however Boost/BGL is lots of files so this didn't create happiness. Therefore we didn't put it in the repo.

              So, you could drop it in and make sure the build system can find it, but perhaps a better solution is to pin a specific version of Boost in your Linux install, if you find that the default/latest version has a problem. That way you can create a stable build environment without too much mess.

              Please do report when a v3 has issues with specific versions of Boost, that's really important for us to track. thanks!

              Show
              arjen Arjen Lentz added a comment - AL13N you can technically have an embedded Boost in your build tree, this is how we started - however Boost/BGL is lots of files so this didn't create happiness. Therefore we didn't put it in the repo. So, you could drop it in and make sure the build system can find it, but perhaps a better solution is to pin a specific version of Boost in your Linux install, if you find that the default/latest version has a problem. That way you can create a stable build environment without too much mess. Please do report when a v3 has issues with specific versions of Boost, that's really important for us to track. thanks!
              Hide
              otto Otto Kekäläinen added a comment -

              Thanks for the info Arjen Lentz!

              I did indeed drop Boost and thus OQGgraph completely for MariaDB 5.5 (in Debian) as there is no compatible libboost-dev version available, while functional versions of Boost, Judy and OQGraph are present in MariaDB 10.0 (in Debian).

              For details see the contents of 'control' and 'mariadb-server-x.x.install' files in debian/*
              http://anonscm.debian.org/gitweb/?p=pkg-mysql/mariadb-5.5.git
              http://anonscm.debian.org/gitweb/?p=pkg-mysql/mariadb-10.0.git

              Note that your comments about custom build environments don't apply here. Everything in Debian and Ubuntu are build using their standard build robots, and we cannot customize anything else than the contents of our own package.

              Show
              otto Otto Kekäläinen added a comment - Thanks for the info Arjen Lentz ! I did indeed drop Boost and thus OQGgraph completely for MariaDB 5.5 (in Debian) as there is no compatible libboost-dev version available, while functional versions of Boost, Judy and OQGraph are present in MariaDB 10.0 (in Debian). For details see the contents of 'control' and 'mariadb-server-x.x.install' files in debian/* http://anonscm.debian.org/gitweb/?p=pkg-mysql/mariadb-5.5.git http://anonscm.debian.org/gitweb/?p=pkg-mysql/mariadb-10.0.git Note that your comments about custom build environments don't apply here. Everything in Debian and Ubuntu are build using their standard build robots, and we cannot customize anything else than the contents of our own package.
              Hide
              serg Sergei Golubchik added a comment -

              "Fixed" by adding a test in the CMakeLists.txt — now oqgraph is disabled on incompatible boost versions

              Show
              serg Sergei Golubchik added a comment - "Fixed" by adding a test in the CMakeLists.txt — now oqgraph is disabled on incompatible boost versions
              Hide
              arjen Arjen Lentz added a comment -

              Serg - I can't find that info, can you please give the file path for that and/or paste the version info here?
              I've looked in /engine/oqgraph/CMakeLists.txt

              Show
              arjen Arjen Lentz added a comment - Serg - I can't find that info, can you please give the file path for that and/or paste the version info here? I've looked in /engine/oqgraph/CMakeLists.txt
              Hide
              serg Sergei Golubchik added a comment -

              This is the revision with the fix: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4045

              I didn't hard-code Boost versions (iirc 1.52 works and 1.53 doesn't), but extended try-compile check to include that piece of code that failed to compile on newer Boost.

              Show
              serg Sergei Golubchik added a comment - This is the revision with the fix: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4045 I didn't hard-code Boost versions (iirc 1.52 works and 1.53 doesn't), but extended try-compile check to include that piece of code that failed to compile on newer Boost.

                People

                • Assignee:
                  serg Sergei Golubchik
                  Reporter:
                  pprkut Heinz Wiesinger
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: