Victoriametrics: Not working on Raspberry Pi 4

Created on 16 Oct 2019  路  11Comments  路  Source: VictoriaMetrics/VictoriaMetrics

VictoriaMetrics is not compling and not working on Raspberry Pi 4

~# uname -a
Linux localhost 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux

~# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

~# go version
go version go1.13.1 linux/arm

Problem 1 (solved)

Can't build it on Raspberry Pi from source. "make clean libzstd.a" in github.com/valyala/gozstd is solving this problem. Crossbuild using "make victoria-metrics-arm" works fine

# github.com/VictoriaMetrics/VictoriaMetrics/vendor/github.com/valyala/gozstd
/usr/bin/ld: error: $WORK/b052/_cgo_.o uses VFP register arguments, ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(zstd_common.o) does not
/usr/bin/ld: failed to merge target specific data of file ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(zstd_common.o)
/usr/bin/ld: error: $WORK/b052/_cgo_.o uses VFP register arguments, ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(zstd_compress.o) does not
/usr/bin/ld: failed to merge target specific data of file ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(zstd_compress.o)
...
/usr/bin/ld: error: $WORK/b052/_cgo_.o uses VFP register arguments, ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(pool.o) does not
/usr/bin/ld: failed to merge target specific data of file ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(pool.o)
/usr/bin/ld: error: $WORK/b052/_cgo_.o uses VFP register arguments, ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(cover.o) does not
/usr/bin/ld: failed to merge target specific data of file ../../vendor/github.com/valyala/gozstd/libzstd_linux_arm.a(cover.o)
collect2: error: ld returned 1 exit status

Problem 2

root@localhost:~/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/victoria-metrics# ./victoria-metrics
2019-10-16T16:13:40.720+0000    info    VictoriaMetrics/lib/logger/flag.go:11   build version: 
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:12   command line flags
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "deleteAuthKey" = "secret"
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "graphiteListenAddr" = ""
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "http.disableResponseCompression" = "false"
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpAuth.password" = "secret"
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpAuth.username" = ""
2019-10-16T16:13:40.721+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpListenAddr" = ":8428"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "influxMeasurementFieldSeparator" = "_"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "influxSkipSingleField" = "false"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "loggerLevel" = "INFO"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxConcurrentInserts" = "16"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxInsertRequestSize" = "33554432"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxLabelsPerTimeseries" = "30"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "memory.allowedPercent" = "60"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "metricsAuthKey" = "secret"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "opentsdbHTTPListenAddr" = ""
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "opentsdbListenAddr" = ""
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "pprofAuthKey" = "secret"
2019-10-16T16:13:40.722+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "precisionBits" = "64"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "retentionPeriod" = "1"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.disableCache" = "false"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.logSlowQueryDuration" = "5s"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxConcurrentRequests" = "8"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxLookback" = "0s"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxPointsPerTimeseries" = "30000"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueryDuration" = "30s"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueryLen" = "16384"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueueDuration" = "10s"
2019-10-16T16:13:40.723+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxTagKeys" = "secret"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxTagValues" = "100000"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxUniqueTimeseries" = "300000"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "snapshotAuthKey" = "secret"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "storageDataPath" = "victoria-metrics-data"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tls" = "false"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tlsCertFile" = ""
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tlsKeyFile" = "secret"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "version" = "false"
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/app/victoria-metrics/main.go:24 starting VictoraMetrics at ":8428"...
2019-10-16T16:13:40.724+0000    info    VictoriaMetrics/app/vmstorage/main.go:42        opening storage at "victoria-metrics-data" with retention period 1 months
2019-10-16T16:13:40.758+0000    info    VictoriaMetrics/lib/memory/memory.go:33 limiting caches to -119513088 bytes, leaving -79675392 bytes to the OS according to -memory.allowedPercent=60
2019-10-16T16:13:40.758+0000    info    VictoriaMetrics/lib/storage/storage.go:549      loading MetricName->TSID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/victoria-metrics/victoria-metrics-data/cache/metricName_tsid"...
panic: maxBytes must be greater than 0; got -39837696

goroutine 1 [running]:
github.com/VictoriaMetrics/VictoriaMetrics/vendor/github.com/VictoriaMetrics/fastcache.New(0xfda02000, 0x78)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/vendor/github.com/VictoriaMetrics/fastcache/fastcache.go:122 +0x138
github.com/VictoriaMetrics/VictoriaMetrics/vendor/github.com/VictoriaMetrics/fastcache.LoadFromFileOrNew(0x240a780, 0x78, 0xfda02000, 0x0)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/vendor/github.com/VictoriaMetrics/fastcache/file.go:95 +0x48
github.com/VictoriaMetrics/VictoriaMetrics/lib/workingsetcache.Load(0x240a780, 0x78, 0xfda02000, 0x30b8a000, 0x346, 0x51173d)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/workingsetcache/cache.go:53 +0x30
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.(*Storage).mustLoadCache(0x2588000, 0x511c9e, 0x10, 0x51173d, 0xf, 0xfda02000, 0x6c)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/storage.go:551 +0x134
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.OpenStorage(0x24fcbd0, 0x62, 0x1, 0x0, 0x89ed40, 0x1c)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/storage.go:116 +0x424
github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage.InitWithoutMetrics()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage/main.go:45 +0x154
github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage.Init()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage/main.go:31 +0x14
main.main()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/victoria-metrics/main.go:26 +0x94

I tried crossbuild using "make victoria-metrics-arm". It has some problem

Version

$ ./victoria-metrics-prod --version
-20191016-162823-heads-master-0-g61e956e
bug

Most helpful comment

try building from 97ce4e0

It has successfully compiled and works. All tests pass too

All 11 comments

As for the problem 1, use make victoria-metrics-arm or make victoria-metrics-arm64 for cross-compiling builds for ARM or make victoria-metrics-pure for building directly on ARM.

Problem 2 should be fixed in 6ebf537153bd4dc855863b5f68f7c03f0b933bf1 . Could you try make victoria-metrics-arm from this commit?

Note that make victoria-metrics-arm builds 32-bit binary, which is limited to 2GB of RAM. Use make victoria-metrics-arm64 for building 64-bit binary without the limit on RAM.

make victoria-metrics-pure works for me, thanks

New problem in https://github.com/VictoriaMetrics/VictoriaMetrics/commit/6ebf537153bd4dc855863b5f68f7c03f0b933bf1 :

root@localhost:~/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin# ./victoria-metrics-pure
2019-10-16T22:04:16.243+0000    info    VictoriaMetrics/lib/logger/flag.go:11   build version: victoria-metrics-20191016-220324-heads-master-0-g6ebf537
2019-10-16T22:04:16.243+0000    info    VictoriaMetrics/lib/logger/flag.go:12   command line flags
2019-10-16T22:04:16.243+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "deleteAuthKey" = "secret"
2019-10-16T22:04:16.243+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "graphiteListenAddr" = ""
2019-10-16T22:04:16.243+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "http.disableResponseCompression" = "false"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpAuth.password" = "secret"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpAuth.username" = ""
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "httpListenAddr" = ":8428"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "influxMeasurementFieldSeparator" = "_"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "influxSkipSingleField" = "false"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "loggerLevel" = "INFO"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxConcurrentInserts" = "16"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxInsertRequestSize" = "33554432"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "maxLabelsPerTimeseries" = "30"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "memory.allowedPercent" = "60"
2019-10-16T22:04:16.244+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "metricsAuthKey" = "secret"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "opentsdbHTTPListenAddr" = ""
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "opentsdbListenAddr" = ""
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "pprofAuthKey" = "secret"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "precisionBits" = "64"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "retentionPeriod" = "1"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.disableCache" = "false"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.logSlowQueryDuration" = "5s"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxConcurrentRequests" = "8"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxLookback" = "0s"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxPointsPerTimeseries" = "30000"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueryDuration" = "30s"
2019-10-16T22:04:16.245+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueryLen" = "16384"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxQueueDuration" = "10s"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxTagKeys" = "secret"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxTagValues" = "100000"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "search.maxUniqueTimeseries" = "300000"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "snapshotAuthKey" = "secret"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "storageDataPath" = "victoria-metrics-data"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tls" = "false"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tlsCertFile" = ""
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "tlsKeyFile" = "secret"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/lib/logger/flag.go:20   flag "version" = "false"
2019-10-16T22:04:16.246+0000    info    VictoriaMetrics/app/victoria-metrics/main.go:24 starting VictoraMetrics at ":8428"...
2019-10-16T22:04:16.247+0000    info    VictoriaMetrics/app/vmstorage/main.go:42        opening storage at "victoria-metrics-data" with retention period 1 months
2019-10-16T22:04:16.281+0000    info    VictoriaMetrics/lib/memory/memory.go:33 limiting caches to 1288490188 bytes, leaving 858993459 bytes to the OS according to -memory.allowedPercent=60
2019-10-16T22:04:16.282+0000    info    VictoriaMetrics/lib/storage/storage.go:549      loading MetricName->TSID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricName_tsid"...
2019-10-16T22:04:16.295+0000    info    VictoriaMetrics/lib/storage/storage.go:554      loaded MetricName->TSID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricName_tsid" in 12.682464ms; entriesCount: 0; sizeBytes: 0
2019-10-16T22:04:16.295+0000    info    VictoriaMetrics/lib/storage/storage.go:549      loading MetricID->TSID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricID_tsid"...
2019-10-16T22:04:16.306+0000    info    VictoriaMetrics/lib/storage/storage.go:554      loaded MetricID->TSID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricID_tsid" in 10.174747ms; entriesCount: 0; sizeBytes: 0
2019-10-16T22:04:16.306+0000    info    VictoriaMetrics/lib/storage/storage.go:549      loading MetricID->MetricName cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricID_metricName"...
2019-10-16T22:04:16.317+0000    info    VictoriaMetrics/lib/storage/storage.go:554      loaded MetricID->MetricName cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/metricID_metricName" in 11.009134ms; entriesCount: 0; sizeBytes: 0
2019-10-16T22:04:16.318+0000    info    VictoriaMetrics/lib/storage/storage.go:549      loading Date->MetricID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/date_metricID"...
2019-10-16T22:04:16.328+0000    info    VictoriaMetrics/lib/storage/storage.go:554      loaded Date->MetricID cache from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/date_metricID" in 10.229522ms; entriesCount: 0; sizeBytes: 0
2019-10-16T22:04:16.328+0000    info    VictoriaMetrics/lib/storage/storage.go:483      loading curr_hour_metric_ids from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/curr_hour_metric_ids"...
2019-10-16T22:04:16.328+0000    info    VictoriaMetrics/lib/storage/storage.go:486      nothing to load from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/curr_hour_metric_ids"
2019-10-16T22:04:16.328+0000    info    VictoriaMetrics/lib/storage/storage.go:483      loading prev_hour_metric_ids from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/prev_hour_metric_ids"...
2019-10-16T22:04:16.328+0000    info    VictoriaMetrics/lib/storage/storage.go:486      nothing to load from "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/cache/prev_hour_metric_ids"
2019-10-16T22:04:16.336+0000    info    VictoriaMetrics/lib/mergeset/table.go:152       opening table "/root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/bin/victoria-metrics-data/indexdb/15CE3FC9DD6FC437"...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x11ffc]

goroutine 1 [running]:
runtime/internal/atomic.goLoad64(0x1c76c14, 0x6cd88, 0x1ca4ad4)
        /usr/local/go/src/runtime/internal/atomic/atomic_arm.go:131 +0x1c
github.com/VictoriaMetrics/VictoriaMetrics/lib/mergeset.(*Table).UpdateMetrics(0x1c76b60, 0x1c88f80)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/mergeset/table.go:293 +0x24
github.com/VictoriaMetrics/VictoriaMetrics/lib/mergeset.OpenTable(0x1cf8cb0, 0x6a, 0x550350, 0x550354, 0x10, 0x6a, 0x1cf8cb0)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/mergeset/table.go:185 +0x418
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.openIndexDB(0x1cf8cb0, 0x6a, 0x1d7a280, 0x1e682c0, 0x1cca0d4, 0x1cca0dc, 0x10, 0x1cf8cb0, 0x6a)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/index_db.go:142 +0x64
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.openIndexDBTables(0x1d78300, 0x59, 0x1d7a280, 0x1e682c0, 0x1cca0d4, 0x1cca0dc, 0x0, 0x0, 0x0, 0x0)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/storage.go:1031 +0x5f4
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.OpenStorage(0x1c8c4e0, 0x51, 0x1, 0x0, 0x8ff450, 0x2)
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/storage.go:134 +0x8f8
github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage.InitWithoutMetrics()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage/main.go:45 +0x1cc
github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage.Init()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/vmstorage/main.go:31 +0x14
main.main()
        /root/go/src/github.com/VictoriaMetrics/VictoriaMetrics/app/victoria-metrics/main.go:26 +0xf8

I guess the problem is because of this

On ARM, x86-32, and 32-bit MIPS, it is the caller's responsibility to arrange for 64-bit alignment of 64-bit words accessed atomically. The first word in a variable or in an allocated struct, array, or slice can be relied upon to be 64-bit aligned.

Yes, the error is related to unaligned atomic access to uint64 field on 32-bit architecture. Unfortunately I don't know how to deal with this issue reliably. So I'm going to delete support for 32-bit architectures including ARM unless solution is found. ARM64 should remain.

ARM64 should remain

arm64 is not supported by raspbian linux. Maybe later I will try alternatives

@lomik we will investigate how to fix the error

@lomik we're going to get rpi and cover your case. ETA this week

@lomik , try building from 97ce4e03a57825a783a28e25fc88b9a9e9e09c3c . This commit should fix all the issues with atomic access to 64-bit counters on 32-bit architectures.

try building from 97ce4e0

It has successfully compiled and works. All tests pass too

Great! Then this change will be incorporated into the next release

The bugfix is available starting from release v1.28.1.

Closing the issue. Feel free re-opening it if additional questions arise.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Serrvosky picture Serrvosky  路  3Comments

0xBF picture 0xBF  路  3Comments

v98765 picture v98765  路  3Comments

sh0rez picture sh0rez  路  3Comments

oOHenry picture oOHenry  路  4Comments