Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upConsistent startup crash in storage adapter #3340
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Looks like a bug coming from bf4a279 @brian-brazil @Thib17 what are the intended semantics? Looks like on calling this we are hitting every single series in the entire storage and check its first timestamp. That does seem rather expensive even if we were caching the result. Can we just skip the entire scanning of all series and just return the minTime of the first block plus the duration of Aside from the problem of not closing the index reader discovered yesterday, the code also seems to ignore errors returned by iterators. |
This comment has been minimized.
This comment has been minimized.
|
Sorry for the bug. The intended semantic was to look for the first chunk of every known job. This was more precise than the minTime of the first block. I should have avoided things like not closing index reader or ignoring some errors. I'm sorry for that too. As discussed in #3129 just returning the minTime of the first block doesn't fit our needs. But just returning @fabxc If you agree I can prepare a new PR cleaning it (by just returning |
This comment has been minimized.
This comment has been minimized.
|
@Thib17 thanks, and no worries – I changed the index reader API requirements recently and your PR has long been in the works by then. You had no chance to know basically :) New PR would be great! I was thinking though to actually take the Thanks for jumping in so quickly! |
This comment has been minimized.
This comment has been minimized.
|
I vaguely remember @brian-brazil telling me back then when I implemented the first remote read that the remote storage should always be queried for some reason (maybe because it may generate extra results that aren't even in the local DB, like his MySQL querier demo?), I hope he can confirm/deny. Side note (that is now probably irrelevant): it's unsafe to assume that all series have a |
This comment has been minimized.
This comment has been minimized.
It should be possible for it always to be queried, but that's not what you want for remote storage. For the MVP to keep things simple we always queried. |
Thib17
referenced this issue
Oct 24, 2017
Merged
Tsdb StartTime : Use a simplier way to compute StartTime #3344
This comment has been minimized.
This comment has been minimized.
Ok, so a change as proposed above that would simply turn off remote queries unconditionally if the timestamp is too young would not be what we want then, right? Either always keep them on, or allow it to be configured as a next step? |
This comment has been minimized.
This comment has been minimized.
|
It's not unconditionally. In bf4a279 we made it configurable per remote read to allow reading recent timestamps or not. We add a |
This comment has been minimized.
This comment has been minimized.
|
@Thib17 Ah, I wasn't aware of the new config option. Thanks for pointing that out. |
fabxc
closed this
in
#3344
Oct 26, 2017
juliusv
referenced this issue
Oct 26, 2017
Closed
index out of range panic when serving /federation request #3356
This comment has been minimized.
This comment has been minimized.
lock
bot
commented
Mar 23, 2019
|
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
juliusv commentedOct 23, 2017
Using Prometheus built from the
current
masterwith the attacheddatadirectory (data.tar.gz) (which just contains a WAL so far), Prometheus consistently crashes like this:I'm not aware of anything I did to corrupt the data directory, so this seems like a Prometheus bug to me.
The code where it crashes:
...looks like it expects there to always be a chunk, but maybe my storage doesn't have one for this case yet?