Preserve original mmap in series file.

pull/9150/head
Ben Johnson 2017-12-21 19:56:46 -07:00
parent bc0d68f405
commit f240a930c7
No known key found for this signature in database
GPG Key ID: 048846D1E3EB6818
2 changed files with 7 additions and 8 deletions

View File

@ -7638,10 +7638,7 @@ func TestServer_Query_ShowMeasurements(t *testing.T) {
func TestServer_Query_ShowMeasurementCardinalityEstimation(t *testing.T) {
if testing.Short() || os.Getenv("GORACE") != "" || os.Getenv("APPVEYOR") != "" {
t.Skip("Skipping test in short, race and appveyor mode.")
} else if runtime.GOARCH == "386" {
t.Skip("Skipping test in for 386.")
}
println("dbg/GOARCH", runtime.GOARCH)
t.Parallel()
s := OpenServer(NewConfig())

View File

@ -42,7 +42,8 @@ type SeriesFile struct {
mu sync.RWMutex
path string
data []byte // entire mmapped file
mmap []byte // entire mmapped file
data []byte // active part of mmap file
file *os.File // write file handle
w *bufio.Writer // bufferred file handle
size int64 // current file size
@ -98,10 +99,10 @@ func (f *SeriesFile) Open() error {
f.w = bufio.NewWriter(f.file)
// Memory map file data.
if f.data, err = mmap.Map(f.path, f.MaxSize); err != nil {
if f.mmap, err = mmap.Map(f.path, f.MaxSize); err != nil {
return err
}
f.data = f.data[:f.size]
f.data = f.mmap[:f.size]
// Read header.
hdr, err := ReadSeriesFileHeader(f.data)
@ -148,8 +149,9 @@ func (f *SeriesFile) Close() error {
f.mu.Lock()
defer f.mu.Unlock()
if f.data != nil {
mmap.Unmap(f.data)
if f.mmap != nil {
mmap.Unmap(f.mmap)
f.mmap = nil
f.data = nil
}
if f.file != nil {