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

Impossible to see the "1 second has passed. Re-initializing." error #28

Open
mkoval opened this issue Jul 8, 2015 · 3 comments
Open

Comments

@mkoval
Copy link
Contributor

mkoval commented Jul 8, 2015

I've been trying to debug why my InteractiveMarkers are not rendering in RViz and noticed the topic is briefly flashing red, then turning back to black. The message says "1 second has passed. Re-initializing.", but it is impossible to read because it is almost instantaneously replaced with "Initialization: Waiting for first update/keep-alive message." As far as I can tell, this error isn't logged elsewhere.

I was only able to read the message by recording RViz in gtk-recordmydesktop and stepping through the video frame-by-frame. I suggest either: (1) removing the message if it is redundant, (2) changing the logic so it is not instantly overwritten, and/or (3) logging it using ROS_ERROR.

@wjwwood
Copy link
Member

wjwwood commented Jul 9, 2015

Thanks for pointing this out. I'll put it on my todo list, but realistically it's more likely to get resolved if there is a pull request.

It's not clear to me which message would be removed in suggestion 1, but maybe they could be combined into one message instead? Otherwise, suggestions 2 and 3 seem the most appropriate, with 3 being the bare minimum to avoid people having to debug it with a video recorder as you did and 2 being more work but perhaps a fuller solution.

@zzzhpzhp
Copy link

zzzhpzhp commented Dec 2, 2019

I found this bug also

@rhaschke
Copy link
Contributor

rhaschke commented Apr 3, 2020

@zzzhpzhp, how do you reproduce this issue in the first place? There should be another error message displayed for one second...
I see the following options:

  1. Increase the timeout before re-initializing from 1s to 5s, here:
    if ( state_.getDuration().toSec() > 1.0 )
    {
    callbacks_.statusCb( InteractiveMarkerClient::ERROR, server_id_, "1 second has passed. Re-initializing." );
  2. Log an additional ROS_ERROR message here:
    void SingleClient::errorReset( std::string error_msg )
    {
    // if we get an error here, we re-initialize everything
    state_ = TF_ERROR;
    update_queue_.clear();
    init_queue_.clear();
    first_update_seq_num_ = -1;
    last_update_seq_num_ = -1;
    warn_keepalive_ = false;
    callbacks_.statusCb( InteractiveMarkerClient::ERROR, server_id_, error_msg );
    callbacks_.resetCb( server_id_ );
    }

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

No branches or pull requests

4 participants