I have been testing BBR (update branch) and found that BBR always got stuck (no more console outputs) some time after beginning.
For example,
Jan 23 09:26:02.768 INFO switching to PROBE_BW, min rtt (us): 41764, Rate (5/4): 1.25, bottle rate (Mbps): 1, Rate (3/4): 0.75, cwnd: 10441
Jan 23 09:26:02.768 INFO PROBE_RTT, min_rtt (us): 41764
Jan 23 09:26:05.258 INFO probe_bw, bottle rate (Mbps): 1, rate (Mbps): 0, elapsed: 0.522
Jan 23 09:26:05.258 INFO new min_rtt, bottle rate: 1, min_rtt (us): 196893
Jan 23 09:26:05.259 INFO new_flow
Jan 23 09:26:05.259 INFO switching to PROBE_BW, min rtt (us): 196893, Rate (5/4): 1.25, bottle rate (Mbps): 1, Rate (3/4): 0.75, cwnd: 49223
after 09:26:05, I got no more outputs.
After tracing down the flow, I found the stuck point always at the "send_msg(&buf[..])" function. Specifically, it is either at
portus->lib.rs->set_program->self.sender.send_msg(&buf[..])?; (around line 186)
or
portus->lib.rs->update_field->self.sender.send_msg(&buf[..])?; (around line 230).
This is identified by adding println! lines in the files, the output of which is as below:
Jan 23 16:14:53.025 INFO new min_rtt, bottle rate: 1, min_rtt (us): 7288
in portus: while ...........
in portus: new measurement ...........
in bbr: on_report--------------------
in bbr, on_report: ProbeBw --------------------
in bbr, on_report: ProbeBw, before init --------------------
in bbr: install_probe_bw--------------------
in portus: update_field .................
Jan 23 16:14 in portus: update_field, before send_msg, buf: [3, 0, 38, 0, 59, 0, 0, 0, 2, 0, 0, 0, 2, 4, 0, 0, 0, 101, 255, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 90, 98, 2, 0, 0, 0, 0, 0]
:53.040 INFO probe_bw, bottle rate (Mbps): 1, rate (Mbps): 0, elapsed: 0.717
Jan 23 16:14:53.041 INFO new min_rtt, bottle rate: 1, min_rtt (us): 261525
Jan 23 16:14:53.041 INFO new_flow
Jan 23 16:14:53.041 INFO switching to PROBE_BW, min rtt (us): 261525, Rate (5/4): 1.25, bottle rate (Mbps): 1, Rate (3/4): 0.75, cwnd: 65381
(then it gets stuck and gives no more output)
I suspect the reason is that the TCP connection is destroyed unexpectedly, e.g. due to timeout.
Environment:
Ubuntu 18.04, default kernel.
Wireless network connection, unstable.
Hope the team can fix it.
Thanks.