Robotics StackExchange | Archived questions

Duration is out of dual 32-bit range when enable_statistics = true

I get std::runtime_error' what(): Duration is out of dual 32-bit range errors in multiple nodes when the enable_statistics parameter is set to true before the other nodes are started. I would like to use the really promising introspection tool ARNI from KIT which needs statistics to be enabled. Does anyone know if there is documentation on topic statistics in general?

System: Ubuntu 14.04

ROS: Indigo

We use realtime (no /clock topic)

Here's the backtrace of one of the nodes that crashes:

(gdb) backtrace
#0  0x00007ffff662dcc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff66310d8 in __GI_abort () at abort.c:89
#2  0x00007ffff6f386b5 in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff6f36836 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff6f36863 in std::terminate() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff6f36aa2 in __cxa_throw ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff61b06c4 in ros::normalizeSecNSecSigned(long&, long&) ()
   from /opt/ros/indigo/lib/librostime.so
#7  0x00007ffff61b0718 in ros::normalizeSecNSecSigned(int&, int&) ()
   from /opt/ros/indigo/lib/librostime.so
#8  0x00007ffff61b0875 in ros::DurationBase<ros::Duration>::operator+(ros::Duration const&) const () from /opt/ros/indigo/lib/librostime.so
#9  0x00007ffff61b0916 in ros::DurationBase<ros::Duration>::operator+=(ros::Duration const&) () from /opt/ros/indigo/lib/librostime.so
#10 0x00007ffff78c8ecc in ros::StatisticsLogger::callback(boost::shared_ptr<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > const&, std::string const&, std::string const&, ros::SerializedMessage const&, unsigned long const&, ros::Time const&, bool) () from /opt/ros/indigo/lib/libroscpp.so
#11 0x00007ffff790ca68 in ros::Subscription::handleMessage(ros::SerializedMessage const&, bool, bool, boost::shared_ptr<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > const&, boost::shared_ptr<ros::PublisherLink> const&) ()
   from /opt/ros/indigo/lib/libroscpp.so
#12 0x00007ffff78f2296 in ros::TransportPublisherLink::handleMessage(ros::SerializedMessage const&, bool, bool) () from /opt/ros/indigo/lib/libroscpp.so
#13 0x00007ffff78f2949 in ros::TransportPublisherLink::onMessage(boost::shared_ptr<ros::Connection> const&, boost::shared_array<unsigned char> const&, unsigned int, bool) () from /opt/ros/indigo/lib/libroscpp.so
#14 0x00007ffff788edaa in ros::Connection::readTransport() ()
   from /opt/ros/indigo/lib/libroscpp.so
#15 0x00007ffff78ed5c7 in ros::TransportTCP::socketUpdate(int) ()
   from /opt/ros/indigo/lib/libroscpp.so
#16 0x00007ffff7919efe in ros::PollSet::update(int) ()
   from /opt/ros/indigo/lib/libroscpp.so
#17 0x00007ffff78be905 in ros::PollManager::threadFunc() ()
   from /opt/ros/indigo/lib/libroscpp.so
#18 0x00007ffff5f91a4a in ?? ()
   from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0
#19 0x00007ffff5d70182 in start_thread (arg=0x7ffff0c25700)
    at pthread_create.c:312
#20 0x00007ffff66f147d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Asked by fivef on 2015-10-29 07:30:29 UTC

Comments

Answers

There's not a lot of documentation on the statistics

This looks like a bug in the implementation. If you can find a small example to reproduce this please submit it as an issue on roscpp

Asked by tfoote on 2015-11-02 02:13:25 UTC

Comments

Just ran into this exact issue on kinetic, it is almost certainly an issue in statistics as turning it off removed the issue. Sadly I can't not use statistics in this situation so I'll try to dig deeper into this now.

Asked by Alan Meekins on 2017-06-14 20:06:53 UTC

I've ran into the exact same issue, using Indigo on two machines in LAN, is there a fix yet?

Asked by Higarian on 2017-08-07 06:29:54 UTC

Holy smoke. This bit me today. It manifested itself as a sporadic 'bug' in flir_ptu_driver, when I sent tilt commands at ~1Hz. No other node was affected, (as far as I know). Sorry it's not much help in reproducing it. Thanks, ROS Answers!

Asked by Rick Armstrong on 2017-08-15 21:01:29 UTC

Note that there's a fix in the latest release that looks similar: https://github.com/ros/ros_comm/pull/1127

Asked by tfoote on 2017-08-16 00:16:47 UTC

Thanks for the update. Since I have ROS indigo installed through Debian packages, the only way to get the latest commit is to re-install through source, correct?

Asked by Higarian on 2017-08-21 09:50:23 UTC