首页 > 解决方案 > Imaginary 在高负载时感到恐慌

问题描述

我在 docker 中运行了imaginary,这是一个基于 的图像处理工具libvips,并通过wrk如下方式进行了一些工作:

 wrk --latency -s print.lua -c 30 -t 1 -d 60m 'http://127.0.0.1:9000/crop?width=1440&height=1440&stripmeta=true&quality=70&type=jpeg&file=1M.jpg'

一段时间后它像这样崩溃

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x3 pc=0x7f2880099aad]

runtime stack:
runtime.throw(0x9845d0, 0x2a)
    /usr/local/go/src/runtime/panic.go:774 +0x72 fp=0x7f27b9ffacf0 sp=0x7f27b9ffacc0 pc=0x4415b2
runtime.sigpanic()
    /usr/local/go/src/runtime/signal_unix.go:378 +0x47c fp=0x7f27b9ffad20 sp=0x7f27b9ffacf0 pc=0x456f0c

goroutine 102 [syscall, locked to thread]:
runtime.cgocall(0x8b1b70, 0xc002efc0c0, 0xc000557500)
    /usr/local/go/src/runtime/cgocall.go:128 +0x7a fp=0xc002efc090 sp=0xc002efc058 pc=0x41598a
gopkg.in/h2non/bimg%2ev1._Cfunc_g_object_unref(0x7f2814083e10)
    _cgo_gotypes.go:423 +0x63 fp=0xc002efc0c0 sp=0xc002efc090 pc=0x8348d3
gopkg.in/h2non/bimg%2ev1.vipsSave.func2.1()
    /go/pkg/mod/github.com/nullne/bimg@v1.0.20-0.20200520104811-2989bdae9187/vips.go:419 +0x72 fp=0xc002efc108 sp=0xc002efc0c0 pc=0x842002
gopkg.in/h2non/bimg%2ev1.vipsSave(0x7f277c049960, 0x46, 0x6, 0x1, 0x10000, 0x0, 0x0, 0x16, 0xc120790000, 0xd52a, ...)
    /go/pkg/mod/github.com/nullne/bimg@v1.0.20-0.20200520104811-2989bdae9187/vips.go:456 +0x300 fp=0xc002efc228 sp=0xc002efc108 pc=0x83d2c0
gopkg.in/h2non/bimg%2ev1.saveImage(0x7f277c049960, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, 0x6, 0x0, ...)
    /go/pkg/mod/github.com/nullne/bimg@v1.0.20-0.20200520104811-2989bdae9187/resizer.go:183 +0x1a0 fp=0xc002efc338 sp=0xc002efc228 pc=0x839110
gopkg.in/h2non/bimg%2ev1.resizer(0xc11e8cc000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
    /go/pkg/mod/github.com/nullne/bimg@v1.0.20-0.20200520104811-2989bdae9187/resizer.go:138 +0x8b2 fp=0xc002efd2e0 sp=0xc002efc338 pc=0x838452
gopkg.in/h2non/bimg%2ev1.Resize(0xc11e8cc000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
    /go/pkg/mod/github.com/nullne/bimg@v1.0.20-0.20200520104811-2989bdae9187/resize.go:15 +0x16f fp=0xc002efd658 sp=0xc002efd2e0 pc=0x833dbf
main.Process(0xc11e8cc000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
    /go/src/github.com/h2non/imaginary/image.go:412 +0x180 fp=0xc002efda30 sp=0xc002efd658 pc=0x872390
main.Crop(0xc11e8cc000, 0x13bca3, 0x13bea3, 0x0, 0x1, 0x280, 0x280, 0x0, 0x0, 0x46, ...)
    /go/src/github.com/h2non/imaginary/image.go:202 +0x165 fp=0xc002efe018 sp=0xc002efda30 pc=0x86eee5
main.Operation.Run(...)
    /go/src/github.com/h2non/imaginary/image.go:47

这是恐慌日志的长版本:github问题

我搜索了很多,但没有任何帮助。我应该从哪里开始解决这个问题?非常感谢你

标签: gosegmentation-faultsigabrtcgo

解决方案


推荐阅读