New issue
Advanced search Search tips

Issue 647336 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Implement datagram reassembly logic in coordinator client library.

Project Member Reported by d...@chromium.org, Sep 15 2016

Issue description

If a datagram is too large, the Butler will split it into multiple datagram fragments. It is up to the client to identify this condition, request those fragments, and reassemble the original datagram.

Currently, this logic isn't implemented. Datagram consumers so far (namely Milo) basically discard partial datagrams as errors with the assumption that no datagram will actually be big enough that it needs splitting.

However, this logic should be implemented in a central place and installed in datagram consumers so they can handle this perfectly valid case.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 22 2016

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

commit aaa142274de3328ee8d2476468e59d0239a8bcf7
Author: dnj <dnj@chromium.org>
Date: Thu Sep 22 16:09:05 2016

Update Coordinator client, add datagram assembly.

Update the Coordinator client library, adding partial datagram assembly
and changing the API to be a bit better:
- Parameters are now specified individually via vararg instead of by
  chaining them together with a builder-type struct.
- State requests will always have their state and descriptor values
  filled in, instead of being pointers.
- Tail requests now accept their own set of parameters.

Update Milo's LogDog code to use the Coordinator client library and the
datagram assembly option.

Update `logdog_cat` to use the updated API.

BUG= chromium:647336 
TEST=local

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

[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/cmd/logdog_cat/coordinatorSource.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/cmd/logdog_cat/subcommandList.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/cmd/logdog_cat/subcommandQuery.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/list.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/query.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/query_test.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/stream.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/stream_params.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/logdog/client/coordinator/stream_test.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/milo/appengine/logdog/build.go
[modify] https://crrev.com/aaa142274de3328ee8d2476468e59d0239a8bcf7/milo/appengine/logdog/http.go

Comment 2 by d...@chromium.org, Sep 22 2016

Status: Fixed (was: Started)

Sign in to add a comment