Closed DifferentialOrange closed 2 years ago
Running simple application in docker fails with golang error when run on Mac with M1 arch.
FROM tarantool/tarantool:2.10.0-centos7 RUN yum install -y git \ cmake \ make \ gcc \ gcc-c++ COPY . . RUN tarantoolctl rocks make app-scm-1.rockspec CMD ["tarantool", "./init.lua"]
dependencies = { 'tarantool', 'lua >= 5.1', 'http == 1.2.0-1', 'metrics == 0.13.0-1', }
#!/usr/bin/env tarantool local metrics = require('metrics') local prometheus = require('metrics.plugins.prometheus') local json_metrics = require('metrics.plugins.json') local httpd = require('http.server').new(nil, 8081) metrics.register_callback(function() math.randomseed(os.time()) local server_pending_requests = metrics.gauge('server_pending_requests') local server_requests_process = metrics.summary( 'server_requests_process', nil, { [0.5] = 1e-3, [0.9] = 1e-3, [0.99] = 1e-3 }, { max_age_time = 60, age_buckets_count = 5 } ) -- Imitate master server. server_pending_requests:set(math.random(0, 1) * math.random(1, 10), {alias = 'server-main'}) for _ = 1, math.random(100, 1000) do server_requests_process:observe(math.random(100, 1000) * 1e-5, {alias = 'server-main'}) end -- Imitate replica server. server_pending_requests:set(math.random(0, 2), {alias = 'server-rv'}) for _ = 1, math.random(10, 50) do server_requests_process:observe(math.random(100, 1000) * 1e-5, {alias = 'server-rv'}) end end) httpd:route( { path = '/metrics/prometheus' }, prometheus.collect_http) httpd:route( { path = '/metrics/json' }, function(req) return req:render({ text = json_metrics.export() }) end ) httpd:start()
devopsconf2022-grafana-app-1 | runtime: failed to create new OS thread (have 2 already; errno=22) devopsconf2022-grafana-app-1 | fatal error: runtime.newosproc devopsconf2022-grafana-app-1 | devopsconf2022-grafana-app-1 | goroutine 16 [running]: devopsconf2022-grafana-app-1 | runtime.throw(0x570806) devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/panic.c:520 +0x69 fp=0x40009b4ec0 sp=0x40009b4ea8 devopsconf2022-grafana-app-1 | runtime.newosproc(0xc208018000, 0x40009d2fa8) devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/os_linux.c:150 +0xfa fp=0x40009b4f10 sp=0x40009b4ec0 devopsconf2022-grafana-app-1 | newm(0x4167d0, 0x0) devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/proc.c:933 +0xc9 fp=0x40009b4f50 sp=0x40009b4f10 devopsconf2022-grafana-app-1 | runtime.main() devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/proc.c:219 +0x3c fp=0x40009b4fa8 sp=0x40009b4f50 devopsconf2022-grafana-app-1 | runtime.goexit() devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/proc.c:1445 fp=0x40009b4fb0 sp=0x40009b4fa8 devopsconf2022-grafana-app-1 | created by _rt0_go devopsconf2022-grafana-app-1 | /usr/src/go/src/pkg/runtime/asm_amd64.s:97 +0x120
Please, don't ask me to provide a more specific reproducer: I don't have an ARM laptop and borrowed a colleague one for this run.
Running simple application in docker fails with golang error when run on Mac with M1 arch.
Application
Dockerfile
rockspec dependencies
init.lua
Run logs
Please, don't ask me to provide a more specific reproducer: I don't have an ARM laptop and borrowed a colleague one for this run.