New issue
Advanced search Search tips

Issue 654880 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

Log viewer is not loading query streams.

Project Member Reported by d...@chromium.org, Oct 11 2016

Issue description

Example query:

https://luci-logdog.appspot.com/v/?s=chromeos%2Fbb%2Fchromeos%2Fcyan-paladin%2F609%2F%2B%2Frecipes%2F**%2Fstdout

Lots of logs start loading, several get stuck in "Streaming". Also, the massive list of streams on the right is pretty annoying.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/github.com/luci/luci-go.git/+/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7

commit fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7
Author: dnj <dnj@chromium.org>
Date: Tue Oct 18 02:12:07 2016

Fix sparse index handling, add index params.

Fix a bug in index archival where sparse indexes without a last log
entry will act as if they have no logs.

Augment the index protobuf with stream-wide parameters, namely the last
prefix and stream indexes in the stream and the total number of entries
in the stream. This will help supplement index information for sparse
indexes. This is also backwards-compatible with indexes without these
parameters.

Finally, add a tool to help query and interact with archived data
records. This was useful in diagnosing this bug, fixing this bug, and
is expected to be useful for future purposes.

BUG= chromium:654880 
TEST=local,production
  - Tested against production data. Tool without patch exhibits
    production bug. Tool with patch successfully loads the stream.

Review-Url: https://codereview.chromium.org/2422393002

[modify] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/api/logpb/log.pb.go
[modify] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/api/logpb/log.proto
[modify] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/common/archive/archive_test.go
[modify] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/common/archive/index.go
[add] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/common/storage/archive/logdog_archive_test/main.go
[modify] https://crrev.com/fcfcaa45107e466fa6b0a07986fe87a5da5c1cf7/logdog/common/storage/archive/storage.go

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/github.com/luci/luci-go.git/+/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70

commit d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70
Author: dnj <dnj@chromium.org>
Date: Wed Oct 26 18:20:49 2016

LogDog: Fix archival Get/Tail implementations.

The sparse index tail algorithm assumed that indexes always had an entry
for the last log in the index. This is not necessarily true for spare
indexes. Conseqently, archive Tail could return a non-tail entry in that
situation.

This also fixes the Get and Tail to be more robust against malformed index
and stream data files, to the point where it will happily operate
without an index if needed now.

However, this is actually a good idea, so update index generation to
always include a final entry to the index. Tail optimizes for this case.

This introduced yet another situation where the storage layer was
unmarshalling LogEntry protobufs, then passing the binary data up to the
higher level to unmarshal again! To prevent this from introducing
performance regressions, we now have the storage layer kick up a lazy
unmarshal-at-most-once struct instead of raw data. This will let higher
levels take advantage of storage layers that have to unmarshal
protobufs.

Finally, log archival fetching had no supporting unit tests. Write some,
with very high coverage.

TBR=nodir@chromium.org
BUG= chromium:654880 
TEST=unit

Review-Url: https://codereview.chromium.org/2435883002

[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/common/iotools/countingreader.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/common/iotools/countingreader_test.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/appengine/coordinator/endpoints/logs/get.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/appengine/coordinator/endpoints/logs/get_test.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/client/butler/streamserver/handshake.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/archive/archive.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/archive/archive_test.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/archive/index.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/archive/logdog_archive_test/main.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/archive/storage.go
[add] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/archive/storage_test.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/bigtable/storage.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/bigtable/storage_test.go
[add] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/entry.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/memory/memory.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/memory/memory_test.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/common/storage/storage.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/server/archivist/archivist.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/server/archivist/storageSource.go
[modify] https://crrev.com/d65c2b2a5ebadb3ebfa0383630bbc1fa2b755a70/logdog/server/collector/utils_test.go

Comment 4 by d...@chromium.org, Oct 27 2016

Status: Fixed (was: Untriaged)
This looks to be fixed now!

Sign in to add a comment