Skip to content
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

TSM Bug Fixes/Go 1.4.3 #5331

Merged
merged 4 commits into from
Jan 11, 2016
Merged

TSM Bug Fixes/Go 1.4.3 #5331

merged 4 commits into from
Jan 11, 2016

Conversation

jwilder
Copy link
Contributor

@jwilder jwilder commented Jan 11, 2016

This PR fixes #5193 #5283 and #5217 .
#5193 was caused by the tsm cursor getting closed prematurely causing future seeks to return no data.
#5283 appears to be a go 1.5.2 related bug as switching back to 1.4.3 did not produce the same panic.
#5217 is related to the performance degradation from using go 1.5.2. This PR switches the builds to 1.4.3.

This also changes the default storage engine to tsm1 and removes the ability to configure other engines. Existing b1 and bz1 shards will load and work as is, but should to be converted to tsm1 at some point using the migration tool.

We were closing the cursor when we read the last block which caused
the internal state to be cleared.  In a group by query, we seeked multiple
times so depending on the group by interval and how the data was laid out
in the blocks, we woudl close the cursor and the last block would get skipped.

Fixes #5193
@toddboom
Copy link
Contributor

👍

@@ -7,7 +7,7 @@ if [ $fmtcount -gt 0 ]; then
fi

# Due to the way composites work, vet will fail for some of our tests so we ignore it
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not apply anymore, right?

@jwilder
Copy link
Contributor Author

jwilder commented Jan 11, 2016

@rossmcdonald Can you take a look and make sure I didn't miss anything from the packaging side?

data engine config var is ignored now and you can only create tsm1
shards.  Exists shards will work as is until they are migrated to
tsm1 shards.
@rossmcdonald
Copy link
Contributor

+1, looks good to me!

jwilder added a commit that referenced this pull request Jan 11, 2016
@jwilder jwilder merged commit 710f323 into master Jan 11, 2016
@jwilder jwilder deleted the jw-tsm-fixes branch January 11, 2016 21:54
@ivanscattergood
Copy link

Hi,
I have just installed the nightly from https://s3.amazonaws.com/influxdb/influxdb-nightly-1.x86_64.rpm

But it looks like it hasn't yet been updated, firstly the date is still 11th Jan and secondly its still using go 1.5

2016/01/12 09:36:16 InfluxDB starting, version 0.10.0-nightly-72c6a51, branch master, commit 72c6a51, built 2016-01-11T05:00:46+0000
2016/01/12 09:36:16 Go version go1.5.2, GOMAXPROCS set to 4
2016/01/12 09:36:16 Using configuration at: /etc/influxdb/influxdb.conf

Should I just be more patient :-)?

@rossmcdonald
Copy link
Contributor

@ivanscattergood I'm looking into why that build is failing. In the meantime you should be able to use this one:

https://s3-us-west-1.amazonaws.com/influxdb-nightly/influxdb-nightly.x86_64.rpm

@ivanscattergood
Copy link

Hi Ross,

It works well in our dev environment, but when I promoted it to UAT then I got this error on startup:

[tsm1wal] 2016/01/13 05:56:35 tsm1 WAL writing to /var/lib/influxdb/wal/open_access_db/detail/63
panic: runtime error: index out of range

goroutine 80 [running]:
github.com/influxdb/influxdb/tsdb/engine/tsm1.(_indirectIndex).UnmarshalBinary(0xc2127a6140, 0x7fb54a7382d5, 0xacd9ab96, 0xacd9ab9e, 0x0, 0x0)
/tmp/tmp.vouWqQMPFC/src/github.com/influxdb/influxdb/tsdb/engine/tsm1/reader.go:659 +0x863
github.com/influxdb/influxdb/tsdb/engine/tsm1.(_mmapAccessor).init(0xc22f8a2ff0, 0x0, 0x0, 0x0, 0x0)
/tmp/tmp.vouWqQMPFC/src/github.com/influxdb/influxdb/tsdb/engine/tsm1/reader.go:887 +0x4dd
github.com/influxdb/influxdb/tsdb/engine/tsm1.NewTSMReaderWithOptions(0x0, 0x0, 0xc2080e8060, 0x5, 0x0, 0x0)
/tmp/tmp.vouWqQMPFC/src/github.com/influxdb/influxdb/tsdb/engine/tsm1/reader.go:154 +0x2f4
github.com/influxdb/influxdb/tsdb/engine/tsm1.func·010(0x0, 0xc2080e8060)
/tmp/tmp.vouWqQMPFC/src/github.com/influxdb/influxdb/tsdb/engine/tsm1/file_store.go:259 +0xa9
created by github.com/influxdb/influxdb/tsdb/engine/tsm1.(*FileStore).Open
/tmp/tmp.vouWqQMPFC/src/github.com/influxdb/influxdb/tsdb/engine/tsm1/file_store.go:269 +0x757

Here is the output of an ls on that directory:

[root@RBC-visual-edge pe]# ls -ltra /var/lib/influxdb/wal/open_access_db/detail/63
total 8
drwx------. 25 influxdb influxdb 4096 Jan 13 00:51 ..
-rw-r--r--. 1 influxdb influxdb 0 Jan 13 05:56 _00748.wal
drwx------. 2 influxdb influxdb 4096 Jan 13 05:56 .

@ivanscattergood
Copy link

@rossmcdonald I have tried removing the whole WAL directory, but that didn't help .

I have reverted to 0.9.6.1 in UAT and all is well.

I'll try the nightly version with a fresh DB on Friday as this will give the users a couple of days of data to look at on Monday.

@toddboom
Copy link
Contributor

@ivanscattergood the normal nightly build should be back to normal as of tonight's build (we're rebuilding now), and compiled with Go 1.4.3 going forward.

definitely let us know if you see that same issue after starting with a fresh database. thanks!

@KiNgMaR
Copy link

KiNgMaR commented Jan 14, 2016

The file at https://s3.amazonaws.com/influxdb/influxdb-nightly-1.x86_64.rpm appears to be built from 72c6a51 still?

@rossmcdonald
Copy link
Contributor

@KiNgMaR The link is now:

https://s3.amazonaws.com/influxdb/influxdb-nightly.x86_64.rpm

We'll be getting this fixed on the Downloads page later today.

@zstyblik
Copy link

@rossmcdonald please, can you explain why have you changed the link?

@rossmcdonald
Copy link
Contributor

@zstyblik Sure, the build.py script doesn't include the package iteration (the '-1' in influxdb-nightly-1) in the package filename since a package iteration for a nightly isn't very meaningful. Also this is to match the naming of the nightly 'deb' packages as well.

@zstyblik
Copy link

@rossmcdonald I'd be good to think about people on the other side of the wall, eg. with automated builds, too.

@ivanscattergood
Copy link

Hi,

Just thought I'd let you know I have now moved to the 0.10.0-beta1 release in DEV and UAT, and everything is looking good. +1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[0.10.0-nightly-146f36c] - Missing data a minute before current time. Comes back later
7 participants