If 120th or 240th value is not a 1, k still passes the check in the
switch, causing the last value to be lost. If this value occurs at
the boundary of a block, the max time will be incorrect, resulting in
compaction failing to make forward progress.
And add a test to cover that.
The data race would look roughly like:
```
WARNING: DATA RACE
Write at 0x00c000024e18 by goroutine 8:
github.com/RoaringBitmap/roaring.(*roaringArray).markAllAsNeedingCopyOnWrite()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaringarray.go:881 +0x6b
github.com/RoaringBitmap/roaring.(*roaringArray).clone()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaringarray.go:266 +0x808
github.com/RoaringBitmap/roaring.(*Bitmap).Clone()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaring.go:385 +0x58
github.com/influxdata/platform/tsdb.(*SeriesIDSet).CloneNoLock()
/Users/mr/go/src/github.com/influxdata/platform/tsdb/series_set.go:229 +0x73
github.com/influxdata/platform/tsdb.(*SeriesIDSet).Clone()
Previous write at 0x00c000024e18 by goroutine 7:
github.com/RoaringBitmap/roaring.(*roaringArray).markAllAsNeedingCopyOnWrite()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaringarray.go:881 +0x6b
github.com/RoaringBitmap/roaring.(*roaringArray).clone()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaringarray.go:266 +0x808
github.com/RoaringBitmap/roaring.(*Bitmap).Clone()
/Users/mr/go/pkg/mod/github.com/!roaring!bitmap/roaring@v0.4.16/roaring.go:385 +0x58
github.com/influxdata/platform/tsdb.(*SeriesIDSet).CloneNoLock()
/Users/mr/go/src/github.com/influxdata/platform/tsdb/series_set.go:229 +0x73
github.com/influxdata/platform/tsdb.(*SeriesIDSet).Clone()
/Users/mr/go/src/github.com/influxdata/platform/tsdb/series_set.go:223 +0x7b
```
1. The username field is now autofocused.
2. Pressing enter in an input will submit the signin form.
Long term, we should switch the reusable UI `Form` element to use an
actual HTML `form` element, rather than a `div`. That way we get these
sorts of interactions for free.
Closes#1354Closes#1355
I looked through the past few days of Circle Go failures, and they all
appeared to be real test errors, indicating that the -p=8 flag most
likely fixed the linker OOMs we were seeing.
If the race-enabled tests continue to OOM, we can try setting -p=2 to
match the number of CPUs actually available on our Circle container.
Prior to this change, `go test -count=2 ./models` would fail like:
--- FAIL: TestMarshal (0.00s)
points_test.go:37: got: ,A\ FOO=bar,APPLE=orange,host=serverA,region=uswest
points_test.go:38: exp: ,apple=orange,foo=bar,host=serverA,region=uswest
points_test.go:39: invalid match
because a later test reassigned the package-level variable that
TestMarshal depends on. Don't reassign that variable anymore.
Also cleaned up some whitespace, and moved an init function to the top
of the file for visibility.
This ports the `Dygraph` component from Chronograf 1.7, which contains
many bug fixes and enhancements. Notably, it does not quadruple render
on every mouse move event.
The component has been adapter for platform. All code relating to
annotations and the static legend has been removed.
The `hoverTime` state updates very rapidly (on every mousemove event for
any graph in a dashboard). This makes storing the `hoverTime` in Redux
expensive, since _every_ Redux-connected component in the render tree
must rerender when any piece of state in the Redux store is updated.
This commit moves `hoverTime` (and `activeViewID`, and related setters)
out of the Redux store in favor of a context based solution. Now, when
the `hoverTime` updates, only components that actually use that state
will rerender.
Previously, a v1 source was configured with a `URL` and `fluxURL`. The
`URL` was used for querying InfluxQL data, while the `fluxURL` pointed
to a `fluxd` instance and was used for querying Flux data. Since then,
`fluxd` has been subsumed by the InfluxDB 1.7 release, which supports
both InfluxQL and Flux.
This commit updates the source proxy query service to query Flux data
from a V1 source directly.
We were passing a non-nil tsm1.Log containing a nil *tsm1.WAL which
would cause a panic when it was attempted to be used. Instead, always
pass a non-nil WAL.
We change the storage engine code to not pass in a nil WAL, and
additionally add a defensive check to change any nil WALs into a
NopWAL.
* Rename AutoRefresh to AutoRefresher, rename global
* Remove presentational states from TimeSeries component
* Simplify TimeSeries reload logic
* Remove unused props from RefreshingView
* Display loading errors in RefreshingView
* chore(views): extract non-visualization state and switching logic into components