Hi ports,

This is a patch to update the Prometheus to the latest 2.x LTS version 2.53.5
I'm testing it the last few days and so far so good.

Please add me in CC because I'm not subscribed to the ports list.

Best wishes,
Atanas

###########################

Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/Makefile,v
diff -u -p -r1.23 Makefile
--- Makefile    25 Sep 2023 17:07:36 -0000      1.23
+++ Makefile    7 Mar 2026 15:56:42 -0000
@@ -1,6 +1,6 @@
 COMMENT =              systems monitoring and alerting toolkit

-V =                    2.37.9
+V =                    2.53.5
 GH_ACCOUNT =           prometheus
 GH_PROJECT =           prometheus
 GH_TAGNAME =           v${V}
Index: distinfo
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/distinfo,v
diff -u -p -r1.12 distinfo
--- distinfo    6 Sep 2023 10:28:49 -0000       1.12
+++ distinfo    7 Mar 2026 15:56:42 -0000
@@ -1,6 +1,6 @@
-SHA256 (prometheus-2.37.9.tar.gz) = gSoQplOidWqzAzS9TPBmH5TepeWUw3LTPRNwQHRgpGo= -SHA256 (prometheus-vendor-2.37.9.tar.gz) = ea+tEdN2yBEMBYY78U6tPOLI7uorbEhNL3o5/JTxaPI= -SHA256 (prometheus-web-ui-2.37.9.tar.gz) = 2z6Ohg/dUEwQ5NxTn1wfxwVrKOPJGAWgSXNxb2lX4MA=
-SIZE (prometheus-2.37.9.tar.gz) = 6048911
-SIZE (prometheus-vendor-2.37.9.tar.gz) = 11758451
-SIZE (prometheus-web-ui-2.37.9.tar.gz) = 2390133
+SHA256 (prometheus-2.53.5.tar.gz) = 3ulsQxSyfWLL9Cy6faJccx0+kagkEsIviLKICOC4qYc= +SHA256 (prometheus-vendor-2.53.5.tar.gz) = Ib7Qstt7Pk+9c2ypzmILnGiDUaamdFvijmqWTLLjfTk= +SHA256 (prometheus-web-ui-2.53.5.tar.gz) = QD0m3gyT3HAtI/mtYYiF6J+2RgAz4a7qLghC3VV33dM=
+SIZE (prometheus-2.53.5.tar.gz) = 6226039
+SIZE (prometheus-vendor-2.53.5.tar.gz) = 15356568
+SIZE (prometheus-web-ui-2.53.5.tar.gz) = 2438498
Index: patches/patch-Makefile
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/patches/patch-Makefile,v
diff -u -p -r1.7 patch-Makefile
--- patches/patch-Makefile      28 Feb 2023 17:54:21 -0000      1.7
+++ patches/patch-Makefile      7 Mar 2026 15:56:42 -0000
@@ -3,7 +3,7 @@ The react build is provided via extra di
 Index: Makefile
 --- Makefile.orig
 +++ Makefile
-@@ -83,7 +83,7 @@ ui-lint:
+@@ -67,7 +67,7 @@ ui-lint:
        cd $(UI_PATH) && npm run lint

  .PHONY: assets
@@ -12,12 +12,12 @@ Index: Makefile

  .PHONY: assets-compress
  assets-compress: assets
-@@ -124,7 +124,7 @@ plugins/plugins.go: plugins.yml plugins/generate.go
+@@ -139,7 +139,7 @@ plugins/plugins.go: plugins.yml plugins/generate.go
  plugins: plugins/plugins.go

  .PHONY: build
--build: assets npm_licenses assets-compress common-build plugins
-+build: assets-compress common-build plugins
+-build: assets npm_licenses assets-compress plugins common-build
++build: assets-compress plugins common-build

  .PHONY: bench_tsdb
  bench_tsdb: $(PROMU)
Index: patches/patch-Makefile_common
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/patches/patch-Makefile_common,v
diff -u -p -r1.7 patch-Makefile_common
--- patches/patch-Makefile_common       28 Feb 2023 17:54:21 -0000      1.7
+++ patches/patch-Makefile_common       7 Mar 2026 15:56:42 -0000
@@ -3,8 +3,7 @@ Don't fetch promu form internet. This is
 Index: Makefile.common
 --- Makefile.common.orig
 +++ Makefile.common
-@@ -232,11 +232,7 @@ common-docker-manifest:
- promu: $(PROMU)
+@@ -243,11 +243,7 @@ promu: $(PROMU)

  $(PROMU):
 -      $(eval PROMU_TMP := $(shell mktemp -d))
Index: patches/patch-_promu_yml
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/patches/patch-_promu_yml,v
diff -u -p -r1.6 patch-_promu_yml
--- patches/patch-_promu_yml    6 Sep 2023 10:28:49 -0000       1.6
+++ patches/patch-_promu_yml    7 Mar 2026 15:56:42 -0000
@@ -3,18 +3,18 @@ Don't include user and hostname into bui
 Index: .promu.yml
 --- .promu.yml.orig
 +++ .promu.yml
-@@ -16,13 +16,13 @@ build:
-             - builtinassets
+@@ -18,12 +18,13 @@
          windows:
              - builtinassets
--    flags: -a
-+    flags: -v -a
-     ldflags: |
+             - stringlabels
+-    ldflags: |
 -        -X github.com/prometheus/common/version.Version={{.Version}}
 -        -X github.com/prometheus/common/version.Revision={{.Revision}}
 -        -X github.com/prometheus/common/version.Branch={{.Branch}}
- -X github.com/prometheus/common/version.BuildUser={{user}}@{{host}} - -X github.com/prometheus/common/version.BuildDate={{date "20060102-15:04:05"}}
++    flags: -v
++    ldflags: |
+ -X github.com/prometheus/prometheus/vendor/github.com/prometheus/common/version.Version={{.Version}} + -X github.com/prometheus/prometheus/vendor/github.com/prometheus/common/version.Revision={{.Revision}} + -X github.com/prometheus/prometheus/vendor/github.com/prometheus/common/version.Branch={{.Branch}}
Index: patches/patch-mmap_openbsd
===================================================================
RCS file: /cvs/ports/sysutils/prometheus/patches/patch-mmap_openbsd,v
diff -u -p -r1.3 patch-mmap_openbsd
--- patches/patch-mmap_openbsd  15 Jun 2023 08:52:07 -0000      1.3
+++ patches/patch-mmap_openbsd  7 Mar 2026 15:56:42 -0000
@@ -3,35 +3,42 @@ and https://github.com/prometheus/promet
 to make tsdb only use mmap and work around missing UBC support.

 diff --git go.mod go.mod
-index 39c3fcb5b..760b39a8b 100644
 --- go.mod
 +++ go.mod
-@@ -13,7 +13,6 @@ require (
-       github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245
-       github.com/digitalocean/godo v1.81.0
-       github.com/docker/docker v20.10.24+incompatible
+@@ -17,7 +17,6 @@
+       github.com/dennwc/varint v1.0.0
+       github.com/digitalocean/godo v1.117.0
+       github.com/docker/docker v26.1.5+incompatible
 -      github.com/edsrzf/mmap-go v1.1.0
-       github.com/envoyproxy/go-control-plane v0.10.3
-       github.com/envoyproxy/protoc-gen-validate v0.6.7
-       github.com/fsnotify/fsnotify v1.5.4
+       github.com/envoyproxy/go-control-plane/envoy v1.32.4
+       github.com/envoyproxy/protoc-gen-validate v1.2.1
+       github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb
+
 diff --git go.sum go.sum
-index e7aee4a9b..6b323945d 100644
 --- go.sum
 +++ go.sum
-@@ -202,8 +202,6 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m
+@@ -160,8 +160,6 @@
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= -github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= - github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= - github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= - github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= + github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= + github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= + github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
+
 diff --git promql/query_logger.go promql/query_logger.go
-index 716e7749b..8eb1afce0 100644
 --- promql/query_logger.go
 +++ promql/query_logger.go
-@@ -22,13 +22,13 @@ import (
+@@ -16,7 +16,6 @@
+ import (
+       "context"
+       "encoding/json"
+-      "errors"
+       "fmt"
+       "io"
+       "os"
+@@ -25,16 +24,15 @@
        "time"
        "unicode/utf8"

@@ -46,43 +53,70 @@ index 716e7749b..8eb1afce0 100644
 +      mw            *fileutil.MmapWriter
        getNextIndex  chan int
        logger        log.Logger
+-      closer        io.Closer
        maxConcurrent int
-@@ -81,7 +81,7 @@ func logUnfinishedQueries(filename string, filesize int, logger log.Logger) {
+ }
+
+@@ -87,24 +85,7 @@
        }
  }

--func getMMapedFile(filename string, filesize int, logger log.Logger) ([]byte, error) {
+-type mmapedFile struct {
+-      f io.Closer
+-      m mmap.MMap
+-}
+-
+-func (f *mmapedFile) Close() error {
+-      err := f.m.Unmap()
+-      if err != nil {
+-              err = fmt.Errorf("mmapedFile: unmapping: %w", err)
+-      }
+-      if fErr := f.f.Close(); fErr != nil {
+-              return errors.Join(fmt.Errorf("close mmapedFile.f: %w", fErr), 
err)
+-      }
+-
+-      return err
+-}
+-
+-func getMMapedFile(filename string, filesize int, logger log.Logger) ([]byte, io.Closer, error) { +func getMMapedFile(filename string, filesize int, logger log.Logger) (*fileutil.MmapWriter, error) { file, err := os.OpenFile(filename, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0o666)
        if err != nil {
                absPath, pathErr := filepath.Abs(filename)
-@@ -92,19 +92,13 @@ func getMMapedFile(filename string, filesize int, logger log.Logger) ([]byte, er
-               return nil, err
+@@ -112,24 +93,16 @@
+                       absPath = filename
+               }
+ level.Error(logger).Log("msg", "Error opening query log file", "file", absPath, "err", err)
+-              return nil, nil, err
++              return nil, err
        }

 -      err = file.Truncate(int64(filesize))
--      if err != nil {
++      mw, err := fileutil.NewMmapWriterWithSize(file, filesize)
+       if err != nil {
+-              file.Close()
- level.Error(logger).Log("msg", "Error setting filesize.", "filesize", filesize, "err", err)
--              return nil, err
+-              return nil, nil, err
 -      }
 -
 -      fileAsBytes, err := mmap.Map(file, mmap.RDWR, 0)
-+      mw, err := fileutil.NewMmapWriterWithSize(file, filesize)
-       if err != nil {
+-      if err != nil {
+-              file.Close()
level.Error(logger).Log("msg", "Failed to mmap", "file", filename, "Attempted size", filesize, "err", err)
-               return nil, err
+-              return nil, nil, err
++              return nil, err
        }

--      return fileAsBytes, err
+-      return fileAsBytes, &mmapedFile{f: file, m: fileAsBytes}, err
 +      return mw, err
  }

func NewActiveQueryTracker(localStoragePath string, maxConcurrent int, logger log.Logger) *ActiveQueryTracker { -@@ -116,14 +110,17 @@ func NewActiveQueryTracker(localStoragePath string, maxConcurrent int, logger lo
+@@ -141,15 +114,17 @@
filename, filesize := filepath.Join(localStoragePath, "queries.active"), 1+maxConcurrent*entrySize
        logUnfinishedQueries(filename, filesize, logger)

--      fileAsBytes, err := getMMapedFile(filename, filesize, logger)
+-      fileAsBytes, closer, err := getMMapedFile(filename, filesize, logger)
 +      mw, err := getMMapedFile(filename, filesize, logger)
        if err != nil {
                panic("Unable to create mmap-ed active query log")
@@ -95,11 +129,12 @@ index 716e7749b..8eb1afce0 100644
 +      }
        activeQueryTracker := ActiveQueryTracker{
 -              mmapedFile:    fileAsBytes,
+-              closer:        closer,
 +              mw:            mw,
                getNextIndex:  make(chan int, maxConcurrent),
                logger:        logger,
                maxConcurrent: maxConcurrent,
-@@ -180,19 +177,27 @@ func (tracker ActiveQueryTracker) GetMaxConcurrent() int {
+@@ -206,19 +181,27 @@
  }

  func (tracker ActiveQueryTracker) Delete(insertIndex int) {
@@ -131,11 +166,26 @@ index 716e7749b..8eb1afce0 100644
                return i, nil
        case <-ctx.Done():
                return 0, ctx.Err()
+@@ -227,11 +210,11 @@
+
+ // Close closes tracker.
+ func (tracker *ActiveQueryTracker) Close() error {
+-      if tracker == nil || tracker.closer == nil {
++      if tracker == nil || tracker.mw == nil {
+               return nil
+       }
+-      if err := tracker.closer.Close(); err != nil {
+-              return fmt.Errorf("close ActiveQueryTracker.closer: %w", err)
++      if err := tracker.mw.Close(); err != nil {
++              return fmt.Errorf("close ActiveQueryTracker.mw: %w", err)
+       }
+       return nil
+ }
+
 diff --git promql/query_logger_test.go promql/query_logger_test.go
-index ad76fb992..bd92b81af 100644
 --- promql/query_logger_test.go
 +++ promql/query_logger_test.go
-@@ -19,13 +19,22 @@ import (
+@@ -20,13 +20,20 @@
        "testing"

        "github.com/grafana/regexp"
@@ -145,12 +195,10 @@ index ad76fb992..bd92b81af 100644

  func TestQueryLogging(t *testing.T) {
 -      fileAsBytes := make([]byte, 4096)
-+      file, err := ioutil.TempFile("", "mmapedFile")
++      dir := t.TempDir()
++      file, err := os.CreateTemp(dir, "mmapedFile")
 +      require.NoError(t, err)
 +
-+      filename := file.Name()
-+      defer os.Remove(filename)
-+
 +      mw, err := fileutil.NewMmapWriterWithSize(file, 4096)
 +      require.NoError(t, err)
 +
@@ -160,7 +208,7 @@ index ad76fb992..bd92b81af 100644
                logger:       nil,
                getNextIndex: make(chan int, 4),
        }
-@@ -45,6 +54,7 @@ func TestQueryLogging(t *testing.T) {
+@@ -46,6 +53,7 @@
                `^{"query":"","timestamp_sec":\d+}\x00*,$`,
`^{"query":"SpecialCharQuery{host=\\"2132132\\", id=123123}","timestamp_sec":\d+}\x00*,$`,
        }
@@ -168,17 +216,15 @@ index ad76fb992..bd92b81af 100644

        // Check for inserts of queries.
        for i := 0; i < 4; i++ {
-@@ -67,9 +77,17 @@ func TestQueryLogging(t *testing.T) {
+@@ -68,9 +76,15 @@
  }

  func TestIndexReuse(t *testing.T) {
 -      queryBytes := make([]byte, 1+3*entrySize)
-+      file, err := ioutil.TempFile("", "mmapedFile")
++      dir := t.TempDir()
++      file, err := os.CreateTemp(dir, "mmapedFile")
 +      require.NoError(t, err)
 +
-+      filename := file.Name()
-+      defer os.Remove(filename)
-+
 +      mw, err := fileutil.NewMmapWriterWithSize(file, 1+3*entrySize)
 +      require.NoError(t, err)
 +
@@ -188,7 +234,7 @@ index ad76fb992..bd92b81af 100644
                logger:       nil,
                getNextIndex: make(chan int, 3),
        }
-@@ -91,6 +109,7 @@ func TestIndexReuse(t *testing.T) {
+@@ -92,6 +106,7 @@
`^{"query":"ThisShouldBeInsertedAtIndex2","timestamp_sec":\d+}\x00*,$`,
                `^{"query":"TestQuery3","timestamp_sec":\d+}\x00*,$`,
        }
@@ -196,26 +242,27 @@ index ad76fb992..bd92b81af 100644

        // Check all bytes and verify new query was inserted at index 2
        for i := 0; i < 3; i++ {
-@@ -110,10 +129,12 @@ func TestMMapFile(t *testing.T) {
-       filename := file.Name()
-       defer os.Remove(filename)
+@@ -109,10 +124,12 @@
+       fpath := filepath.Join(dir, "mmapedFile")
+       const data = "ab"

--      fileAsBytes, err := getMMapedFile(filename, 2, nil)
-+      mw, err := getMMapedFile(filename, 2, nil)
+-      fileAsBytes, closer, err := getMMapedFile(fpath, 2, nil)
++      mw, err := getMMapedFile(fpath, 2, nil)
 +      require.NoError(t, err)
-
-+      fileAsBytes := mw.Bytes()
-+      _, err = mw.Write([]byte("ab"))
++
++      _, err = mw.Write([]byte(data))
        require.NoError(t, err)
--      copy(fileAsBytes, "ab")
+-      copy(fileAsBytes, data)
+-      require.NoError(t, closer.Close())
++      require.NoError(t, mw.Close())

-       f, err := os.Open(filename)
+       f, err := os.Open(fpath)
        require.NoError(t, err)
+
 diff --git tsdb/fileutil/mmap.go tsdb/fileutil/mmap.go
-index 4dbca4f97..e1c522472 100644
 --- tsdb/fileutil/mmap.go
 +++ tsdb/fileutil/mmap.go
-@@ -20,8 +20,31 @@ import (
+@@ -19,8 +19,31 @@
  )

  type MmapFile struct {
@@ -236,27 +283,27 @@ index 4dbca4f97..e1c522472 100644
 +      if size <= 0 {
 +              info, err := f.Stat()
 +              if err != nil {
-+                      return nil, errors.Wrap(err, "stat")
++                      return nil, fmt.Errorf("stat: %w", err)
 +              }
 +              size = int(info.Size())
 +      }
 +
 +      b, err := mmapRw(f, size)
 +      if err != nil {
-+              return nil, errors.Wrapf(err, "mmap, size %d", size)
++              return nil, fmt.Errorf("mmap, size %d: %w", size, err)
 +      }
 +      return &MmapFile{f: f, b: b, rw: true}, nil
  }

  func OpenMmapFile(path string) (*MmapFile, error) {
-@@ -46,22 +69,53 @@ func OpenMmapFileWithSize(path string, size int) (mf *MmapFile, retErr error) {
+@@ -45,22 +68,53 @@
                size = int(info.Size())
        }

 -      b, err := mmap(f, size)
 +      b, err := mmapRo(f, size)
        if err != nil {
-               return nil, errors.Wrapf(err, "mmap, size %d", size)
+               return nil, fmt.Errorf("mmap, size %d: %w", size, err)
        }
 +      return &MmapFile{f: f, b: b, closeFile: true}, nil
 +}
@@ -265,11 +312,11 @@ index 4dbca4f97..e1c522472 100644
 +func (f *MmapFile) resize(size int) error {
 +      err := f.Sync()
 +      if err != nil {
-+              return errors.Wrap(err, "resize sync")
++              return fmt.Errorf("resize sync: %w", err)
 +      }
 +      err = munmap(f.b)
 +      if err != nil {
-+              return errors.Wrap(err, "resize munmap")
++              return fmt.Errorf("resize munmap: %w", err)
 +      }
 +      var b []byte
 +      if f.rw {
@@ -278,7 +325,7 @@ index 4dbca4f97..e1c522472 100644
 +              b, err = mmapRo(f.f, size)
 +      }
 +      if err != nil {
-+              return errors.Wrap(err, "resize mmap")
++              return fmt.Errorf("resize mmap: %w", err)
 +      }
 +      f.b = b
 +      return nil
@@ -296,22 +343,22 @@ index 4dbca4f97..e1c522472 100644

        if err0 != nil {
 -              return err0
-+              return errors.Wrap(err0, "close sync")
++              return fmt.Errorf("close sync: %w", err0)
 +      }
 +      if err1 != nil {
-+              return errors.Wrap(err1, "close munmap")
++              return fmt.Errorf("close munmap: %w", err1)
 +      }
 +      if err2 != nil {
-+              return errors.Wrap(err2, "close file")
++              return fmt.Errorf("close file: %w", err2)
        }
 -      return err1
 +      return nil
  }

  func (f *MmapFile) File() *os.File {
+
 diff --git tsdb/fileutil/mmap_openbsd.go tsdb/fileutil/mmap_openbsd.go
 new file mode 100644
-index 000000000..39b590ee5
 --- /dev/null
 +++ tsdb/fileutil/mmap_openbsd.go
 @@ -0,0 +1,25 @@
@@ -340,9 +387,9 @@ index 000000000..39b590ee5
 +func (f *MmapFile) Sync() error {
 +      return unix.Msync(f.b, unix.MS_SYNC)
 +}
+
 diff --git tsdb/fileutil/mmap_sync.go tsdb/fileutil/mmap_sync.go
 new file mode 100644
-index 000000000..31fd98e6d
 --- /dev/null
 +++ tsdb/fileutil/mmap_sync.go
 @@ -0,0 +1,21 @@
@@ -367,11 +414,20 @@ index 000000000..31fd98e6d
 +func (f *MmapFile) Sync() error {
 +      return nil
 +}
+
 diff --git tsdb/fileutil/mmap_unix.go tsdb/fileutil/mmap_unix.go
-index 1fd7f48ff..c83a32011 100644
 --- tsdb/fileutil/mmap_unix.go
 +++ tsdb/fileutil/mmap_unix.go
-@@ -22,10 +22,14 @@ import (
+@@ -11,7 +11,7 @@
+ // See the License for the specific language governing permissions and
+ // limitations under the License.
+
+-//go:build !windows && !plan9 && !js
++//go:build !windows && !plan9 && !js && !wasm
+
+ package fileutil
+
+@@ -21,10 +21,14 @@
        "golang.org/x/sys/unix"
  )

@@ -387,11 +443,11 @@ index 1fd7f48ff..c83a32011 100644
  func munmap(b []byte) (err error) {
        return unix.Munmap(b)
  }
+
 diff --git tsdb/fileutil/mmap_windows.go tsdb/fileutil/mmap_windows.go
-index b94226412..9caf36622 100644
 --- tsdb/fileutil/mmap_windows.go
 +++ tsdb/fileutil/mmap_windows.go
-@@ -19,7 +19,26 @@ import (
+@@ -19,7 +19,26 @@
        "unsafe"
  )

@@ -419,9 +475,9 @@ index b94226412..9caf36622 100644
        low, high := uint32(size), uint32(size>>32)
h, errno := syscall.CreateFileMapping(syscall.Handle(f.Fd()), nil, syscall.PAGE_READONLY, high, low, nil)
        if h == 0 {
+
 diff --git tsdb/fileutil/writer.go tsdb/fileutil/writer.go
 new file mode 100644
-index 000000000..86c1504e4
 --- /dev/null
 +++ tsdb/fileutil/writer.go
 @@ -0,0 +1,156 @@
@@ -581,11 +637,11 @@ index 000000000..86c1504e4
 +      err = mw.Sync()
 +      return
 +}
+
 diff --git tsdb/index/index.go tsdb/index/index.go
-index 29295c45f..451c80582 100644
 --- tsdb/index/index.go
 +++ tsdb/index/index.go
-@@ -257,6 +257,7 @@ func (w *Writer) addPadding(size int) error {
+@@ -273,6 +273,7 @@
  type FileWriter struct {
        f    *os.File
        fbuf *bufio.Writer
@@ -593,7 +649,7 @@ index 29295c45f..451c80582 100644
        pos  uint64
        name string
  }
-@@ -266,14 +267,20 @@ func NewFileWriter(name string) (*FileWriter, error) {
+@@ -282,9 +283,11 @@
        if err != nil {
                return nil, err
        }
@@ -606,16 +662,18 @@ index 29295c45f..451c80582 100644
                pos:  0,
                name: name,
        }, nil
+@@ -294,6 +297,10 @@
+       return fw.pos
  }

 +func (fw *FileWriter) Bytes() []byte {
 +      return fw.mw.Bytes()
 +}
 +
- func (fw *FileWriter) Pos() uint64 {
-       return fw.pos
- }
-@@ -304,7 +311,7 @@ func (fw *FileWriter) WriteAt(buf []byte, pos uint64) error {
+ func (fw *FileWriter) Write(bufs ...[]byte) error {
+       for _, b := range bufs {
+               n, err := fw.fbuf.Write(b)
+@@ -320,7 +327,7 @@
        if err := fw.Flush(); err != nil {
                return err
        }
@@ -624,7 +682,7 @@ index 29295c45f..451c80582 100644
        return err
  }

-@@ -326,7 +333,7 @@ func (fw *FileWriter) Close() error {
+@@ -342,7 +349,7 @@
        if err := fw.Flush(); err != nil {
                return err
        }
@@ -633,7 +691,7 @@ index 29295c45f..451c80582 100644
                return err
        }
        return fw.f.Close()
-@@ -987,11 +994,11 @@ func (w *Writer) writePostings() error {
+@@ -1039,11 +1046,11 @@
        if err := w.fP.Flush(); err != nil {
                return err
        }

Reply via email to