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

unset is_sending_ during tce restart #689

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

joeyoravec
Copy link

fixes #668

During tcp_client_endpoint_impl::restart() the queue_ will be drained, messages printed like

tce::restart: dropping message: remote:10.6.0.3:30510 (30fd): [0402.0001.018e] size: 23

and if is_sending_ was set nothing will unset. Later in connect_cbk():

auto its_entry = get_front();
if (its_entry.first) {
    is_sending_ = true;
    strand_.dispatch(std::bind(&client_endpoint_impl::send_queued,
            this->shared_from_this(), its_entry));
    VSOMEIP_WARNING << __func__ << ": resume sending to: "
            << get_remote_information();
}

there's nothing queued, no reason to call send_queued, therefore no callback is going to clear the flag. Flag is_sending_ remains set "forever" and the train logic remains blocked from sending. From a user perspective the client endpoint would receive notifications but never transmit anything again.

This needs to be cleared during restart() when queue_ gets drained

During tce restart() queue_ will be drained, messages printed like

tce::restart: dropping message: remote:10.6.0.3:30510 (30fd): [0402.0001.018e] size: 23

and is_sending_ doesn't get unset. Later in connect_cbk there's nothing
to send, nobody will clear the flag, and the train logic remains blocked
from sending. This needs to be cleared during socket restart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG]: tcp_client_endpoint must unset is_sending_ during restart
1 participant