imaginary
imaginary copied to clipboard
malloc_consolidate(): invalid chunk size
i am benching with various image size and target size and the program got crashed. it seems somewhat bug over there.
it is reproducible:
wrk -c 20 -t1 -d 1h "http://127.0.0.1:9000/crop?width=640&height=640&stripmeta=true&quality=70&type=jpeg&file=1M.jpg"
panic stack trace
malloc_consolidate(): invalid chunk size
127.0.0.1 - - [18/May/2020 13:04:31] "GET /crop?width=640&height=640&stripmeta=true&quality=70&type=jpeg&file=1M.jpg HTTP/1.1" 200 54570 0.0790
SIGABRT: abort
PC=0x7fbd790087bb m=104 sigcode=18446744073709551610
goroutine 0 [idle]:
runtime: unknown pc 0x7fbd790087bb
stack: frame={sp:0x7fb8a8ff83b0, fp:0x0} stack=[0x7fb8a87f9288,0x7fb8a8ff8e88)
00007fb8a8ff82b0: 00007fbd79528cc0 00007fbd792e4c9c
00007fb8a8ff82c0: 0000000000000001 0000000000da56e0
00007fb8a8ff82d0: 0000000000000001 00007fbd792e2ba1
00007fb8a8ff82e0: 0000000000000000 0000000000000170
00007fb8a8ff82f0: 0000003040000002 00007fbd791ef18f
00007fb8a8ff8300: 00007fb998001d10 00007fb8a8ff8448
00007fb8a8ff8310: 0000000000000000 0000000000000000
00007fb8a8ff8320: 00007fbad80481f0 4332be5e1ab58500
00007fb8a8ff8330: 0000000000000000 00007fbad80481f0
00007fb8a8ff8340: 0000000000da5730 00007fbd792f687b
00007fb8a8ff8350: 00007fb8a8ff83f0 0000000000000020
00007fb8a8ff8360: 00007fb8a8ff84a0 0000000000000000
00007fb8a8ff8370: 00007fbc24013020 0000000006f5cd2b
00007fb8a8ff8380: 00007fb8a8ff8420 0000000000000000
00007fb8a8ff8390: 0000000000da56e0 0000000000da5730
00007fb8a8ff83a0: 00007fb8a8ff8440 0000000b00000010
00007fb8a8ff83b0: <0000000000000000 0000000000000000
00007fb8a8ff83c0: 0000000000000000 00007fb8a8ff8410
00007fb8a8ff83d0: 0000000000000008 0000000000000010
00007fb8a8ff83e0: 0000000000000010 0000000000000010
00007fb8a8ff83f0: 000000000000000b 000000000000001f
00007fb8a8ff8400: 0000000000000000 00007fbd7921f239
00007fb8a8ff8410: 00007fbd08ff1cc0 00007fbc24013020
00007fb8a8ff8420: 000000000000000b 0000000100000004
00007fb8a8ff8430: fffffffe7fffffff ffffffffffffffff
00007fb8a8ff8440: ffffffffffffffff ffffffffffffffff
00007fb8a8ff8450: ffffffffffffffff ffffffffffffffff
00007fb8a8ff8460: ffffffffffffffff ffffffffffffffff
00007fb8a8ff8470: ffffffffffffffff ffffffffffffffff
00007fb8a8ff8480: ffffffffffffffff ffffffffffffffff
00007fb8a8ff8490: ffffffffffffffff ffffffffffffffff
00007fb8a8ff84a0: ffffffffffffffff ffffffffffffffff
goroutine 873995 [syscall]:
runtime.cgocall(0x6f4830, 0xc00092d790, 0xc0004a8030)
/usr/local/go/src/runtime/cgocall.go:128 +0x5b fp=0xc00092d760 sp=0xc00092d728 pc=0x4077ab
gopkg.in/h2non/bimg%2ev1._Cfunc_vips_jpegsave_bridge(0x7fb8fc02faf0, 0xc0004a8030, 0xc0006ae0c8, 0x4600000001, 0x0, 0xc000000000)
_cgo_gotypes.go:902 +0x4d fp=0xc00092d790 sp=0xc00092d760 pc=0x6bc91d
gopkg.in/h2non/bimg%2ev1.vipsSave.func7(0x7fb8fc02faf0, 0xc0004a8030, 0xc0006ae0c8, 0x4600000001, 0x0, 0x280)
/go/pkg/mod/github.com/nullne/[email protected]/vips.go:443 +0xf8 fp=0xc00092d7d0 sp=0xc00092d790 pc=0x6c59e8
gopkg.in/h2non/bimg%2ev1.vipsSave(0x7fb9880b8640, 0x46, 0x6, 0x1, 0x10000, 0x0, 0x0, 0x16, 0x0, 0x0, ...)
/go/pkg/mod/github.com/nullne/[email protected]/vips.go:443 +0x1c6 fp=0xc00092d8e8 sp=0xc00092d7d0 pc=0x6c1aa6
gopkg.in/h2non/bimg%2ev1.saveImage(0x7fb9880b8640, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, 0x6, 0x0, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resizer.go:180 +0x137 fp=0xc00092d998 sp=0xc00092d8e8 pc=0x6beb27
gopkg.in/h2non/bimg%2ev1.resizer(0xc002012000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resizer.go:135 +0x608 fp=0xc00092e000 sp=0xc00092d998 pc=0x6be148
gopkg.in/h2non/bimg%2ev1.Resize(0xc002012000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resize.go:15 +0x12b fp=0xc00092e210 sp=0xc00092e000 pc=0x6bab1b
main.Process(0xc002012000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/src/github.com/h2non/imaginary/image.go:409 +0x104 fp=0xc00092e448 sp=0xc00092e210 pc=0x6e3414
main.Crop(0xc002012000, 0x13bca3, 0x13bea3, 0x0, 0x1, 0x280, 0x280, 0x0, 0x0, 0x46, ...)
/go/src/github.com/h2non/imaginary/image.go:201 +0x121 fp=0xc00092e8b8 sp=0xc00092e448 pc=0x6e0891
main.Operation.Run(...)
/go/src/github.com/h2non/imaginary/image.go:46
main.imageHandler(0x831820, 0xc00061cc00, 0xc00053a100, 0xc002012000, 0x13bca3, 0x13bea3, 0x7cdc68, 0x2328, 0x64, 0x0, ...)
/go/src/github.com/h2non/imaginary/controllers.go:116 +0x206 fp=0xc00092ee58 sp=0xc00092e8b8 pc=0x6dce46
main.imageController.func1(0x831820, 0xc00061cc00, 0xc00053a100)
/go/src/github.com/h2non/imaginary/controllers.go:56 +0x1de fp=0xc00092f4a0 sp=0xc00092ee58 pc=0x6edd2e
net/http.HandlerFunc.ServeHTTP(0xc00011cec0, 0x831820, 0xc00061cc00, 0xc00053a100)
/usr/local/go/src/net/http/server.go:2007 +0x44 fp=0xc00092f4c8 sp=0xc00092f4a0 pc=0x66ef14
main.defaultHeaders.func1(0x831820, 0xc00061cc00, 0xc00053a100)
/go/src/github.com/h2non/imaginary/middleware.go:135 +0x1ff fp=0xc00092f570 sp=0xc00092f4c8 pc=0x6eef9f
net/http.HandlerFunc.ServeHTTP(0xc00011cee0, 0x831820, 0xc00061cc00, 0xc00053a100)
/usr/local/go/src/net/http/server.go:2007 +0x44 fp=0xc00092f598 sp=0xc00092f570 pc=0x66ef14
main.validate.func1(0x831820, 0xc00061cc00, 0xc00053a100)
/go/src/github.com/h2non/imaginary/middleware.go:95 +0x93 fp=0xc00092f838 sp=0xc00092f598 pc=0x6ee853
net/http.HandlerFunc.ServeHTTP(0xc00011cf00, 0x831820, 0xc00061cc00, 0xc00053a100)
/usr/local/go/src/net/http/server.go:2007 +0x44 fp=0xc00092f860 sp=0xc00092f838 pc=0x66ef14
....
goroutine 874000 [runnable]:
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:310
sync.runtime_notifyListWait(0xc00025e110, 0x7cc)
/usr/local/go/src/runtime/sema.go:510 +0xf8
sync.(*Cond).Wait(0xc00025e100)
/usr/local/go/src/sync/cond.go:56 +0x9d
net/http.(*connReader).abortPendingRead(0xc0004320c0)
/usr/local/go/src/net/http/server.go:725 +0xbe
net/http.(*response).finishRequest(0xc0002c8000)
/usr/local/go/src/net/http/server.go:1590 +0x96
net/http.(*conn).serve(0xc000178a00, 0x8321a0, 0xc00025e080)
/usr/local/go/src/net/http/server.go:1895 +0x8b3
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2928 +0x384
rax 0x0
rbx 0x6
rcx 0xffffffffffffffff
rdx 0x0
rdi 0x2
rsi 0x7fb8a8ff83b0
rbp 0x7fb8a8ff8700
rsp 0x7fb8a8ff83b0
r8 0x0
r9 0x7fb8a8ff83b0
r10 0x8
r11 0x246
r12 0x7fb8a8ff8620
r13 0x1000
r14 0x10
r15 0x7fbd798ac000
rip 0x7fbd790087bb
rflags 0x246
cs 0x33
fs 0x0
gs 0x0
it can be reproduced
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18a8 pc=0x7fb5c03d6878]
runtime stack:
runtime.throw(0x7bf5fc, 0x2a)
/usr/local/go/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/usr/local/go/src/runtime/signal_unix.go:378 +0x47c
goroutine 1090080 [syscall]:
runtime.cgocall(0x6f48c0, 0xc000893738, 0xc0004b4008)
/usr/local/go/src/runtime/cgocall.go:128 +0x5b fp=0xc000893708 sp=0xc0008936d0 pc=0x4077ab
gopkg.in/h2non/bimg%2ev1._Cfunc_vips_reduce_bridge(0x7fb404235b10, 0xc0004b4008, 0x3ffb000000000000, 0x3ffb000000000000, 0x0)
_cgo_gotypes.go:939 +0x4d fp=0xc000893738 sp=0xc000893708 pc=0x6bcb6d
gopkg.in/h2non/bimg%2ev1.vipsReduce.func2(0x7fb404235b10, 0xc0004b4008, 0x3ffb000000000000, 0x3ffb000000000000, 0x408705)
/go/pkg/mod/github.com/nullne/[email protected]/vips.go:572 +0xea fp=0xc000893770 sp=0xc000893738 pc=0x6c6c4a
gopkg.in/h2non/bimg%2ev1.vipsReduce(0x7fb404235b10, 0x3ffb000000000000, 0x3ffb000000000000, 0x0, 0x0, 0x0)
/go/pkg/mod/github.com/nullne/[email protected]/vips.go:572 +0xbe fp=0xc0008937e8 sp=0xc000893770 pc=0x6c2c2e
gopkg.in/h2non/bimg%2ev1.transformImage(0x7fb404235b10, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, 0x6, 0x0, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resizer.go:217 +0x206 fp=0xc000893998 sp=0xc0008937e8 pc=0x6bed96
gopkg.in/h2non/bimg%2ev1.resizer(0xc003a0e000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resizer.go:97 +0x85c fp=0xc000894000 sp=0xc000893998 pc=0x6be39c
gopkg.in/h2non/bimg%2ev1.Resize(0xc003a0e000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/pkg/mod/github.com/nullne/[email protected]/resize.go:15 +0x12b fp=0xc000894210 sp=0xc000894000 pc=0x6bab1b
main.Process(0xc003a0e000, 0x13bca3, 0x13bea3, 0x280, 0x280, 0x0, 0x0, 0x0, 0x0, 0x46, ...)
/go/src/github.com/h2non/imaginary/image.go:409 +0x104 fp=0xc000894448 sp=0xc000894210 pc=0x6e3414
main.Crop(0xc003a0e000, 0x13bca3, 0x13bea3, 0x0, 0x1, 0x280, 0x280, 0x0, 0x0, 0x46, ...)
/go/src/github.com/h2non/imaginary/image.go:201 +0x121 fp=0xc0008948b8 sp=0xc000894448 pc=0x6e0891
main.Operation.Run(...)