-
Notifications
You must be signed in to change notification settings - Fork 251
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
not enough sequence numbers available! (expire_timeout=10000000000, host_nr=0, ping_count=0, seqmap_next_id=0) #288
Comments
Unfortunately I cannot reproduce the error, but I think it is related to the jumping time mentioned by hmh in the pull-request, which can occur with CLOCK_REALTIME. The patch is unfortunately not very clean in this respect, but should primarily correct the time output, which it does. I'll take a look at the whole thing and look for a better solution. HMH has already mentioned an approach here
Whereby the time output also becomes less accurate at some point with a longer runtime of the system, but the measurement result is not falsified. |
Can you please check whether the problem is also present with the version under a3d991b ? |
Change update_current_time() so that current_time is set from CLOCK_REALTIME and current_time_ms is set from CLOCK_MONOTONIC. This way log messages display wall clock time while any timing calculations use monotonic time. See schweikert#203 In seqmap_add(), before checking to see if .time_ts wrapped, check that .time_ts was set. See schweikert#288
Part my fault. It turns out that the just released FreeBSD 14 hasn't updated their fping package (it's still 5.0) so it doesn't include the change for #203. And that change hides the problem with I added pull request #290 as a possible solution. |
Change update_current_time() so that current_time is set from CLOCK_REALTIME and current_time_ms is set from CLOCK_MONOTONIC. This way log messages display wall clock time while any timing calculations use monotonic time. See schweikert#203 In seqmap_add(), before checking to see if .time_ts wrapped, check that .time_ts was set. See schweikert#288
Change update_current_time() so that current_time is set from CLOCK_REALTIME and current_time_ms is set from CLOCK_MONOTONIC. This way log messages display wall clock time while any timing calculations use monotonic time. See schweikert#203 In seqmap_add(), before checking to see if .time_ts wrapped, check that .time_ts was set. See schweikert#288
As a different way to avoid problems with Of course, that would not address the problem that |
I think there is an efficiency tradeoff in two possible solutions to the spurious
Both solutions avoid spurious |
That's right, here are the different CPU usage times
The debug output has been extended with the following commit gsnw@2b588c1 |
@schweikert you can use one of the pull requests #306 or #307. |
@schweikert The issue can be closed as solved |
On FreeBSD (14.0, but also 13.x), fping gets this error:
when it is run immediately after a boot (and I really mean immediately, its from a test framework). Adding a sleep 10 before running fping seems to fix the problem.
I suspect:
where, immediately after a boot
timestamp
is small which meanstimestamp-0/*ping_ts*/
is less thanSEQMAP_TIMEOUT_IN_NS
i.e., 10s if my math is correct. The fix would be to set.ping_ts
to some equivalent of the epoc.I also suspect #217 was wrong.
The text was updated successfully, but these errors were encountered: