main runtime assertion in boost:lockfree::queue

https://github.com/boostorg/lockfree/issues/35
"
/** Construct a fixed-sized queue
*

used in “engine/core/allocator/cached_allocator.cpp”

32 struct CachedAllocator::Impl {
33  // A helper type to store available memory blocks
34  struct Store {
36    // The size of stored memory blocks
37    size_t size;
38    // A lock-free queue which can be used to concurrently store and retreive memory blocks.
39    boost::lockfree::queue<pointer_t> available;    //<<<
40  };

I don’t know if it related, but when I start the following example from the sdk documentation:

bazel run packages/ros_bridge/apps:ros_to_navigation_flatsim – --more packages/navsim/maps/small_warehouse.json --config ros_navigation:packages/ros_bridge/maps/small_warehouse_map_transformation.config.json,ros_navigation:packages/ros_bridge/apps/ros_to_navigation_turtlebot3_waffle_pi.config.json

I get the following error:

ERROR: /home/user1/isaac/isaac-sdk/engine/core/allocator/BUILD:46:1: no such target ‘@boost//:lockfree’: target ‘lockfree’ not declared in package ‘’ defined by /home/user1/.cache/bazel/_bazel_user1/720d1ce4d0169d46a807b418dc594c19/external/boost/BUILD.bazel and referenced by ‘//engine/core/allocator:cached_allocator’

any idea on how to solve it?

Hello Randaz81, are you on Isaac SDK 2019.3?

If I compile a debug version, then this function asserts and the application aborts with because no capacity argument was specified. This assert was recently changed to a static-assert in the new version of boost as far as I can see from a online discussion.
This needs to be fixed by NVIDIA. a capacity argument is missing.

1 Like