nekomeowww / insights-bot

A bot works with OpenAI GPT models to provide insights for your info flows.
MIT License
248 stars 24 forks source link

bug: oom for link preview module #185

Open nekomeowww opened 8 months ago

nekomeowww commented 8 months ago
fatal error: runtime: out of memory

runtime stack:
runtime.throw({0x1b442db?, 0x2030?})
    /usr/local/go/src/runtime/panic.go:1077 +0x5c fp=0x7ffe6a71d5e8 sp=0x7ffe6a71d5b8 pc=0x43ae9c
runtime.sysMapOS(0xc116800000, 0x40000000?)
    /usr/local/go/src/runtime/mem_linux.go:167 +0x116 fp=0x7ffe6a71d630 sp=0x7ffe6a71d5e8 pc=0x41a756
runtime.sysMap(0x2c0da60?, 0x42f3a0?, 0x2c1dc28?)
    /usr/local/go/src/runtime/mem.go:155 +0x34 fp=0x7ffe6a71d660 sp=0x7ffe6a71d630 pc=0x41a1d4
runtime.(*mheap).grow(0x2c0da60, 0x20000?)
    /usr/local/go/src/runtime/mheap.go:1533 +0x236 fp=0x7ffe6a71d6d0 sp=0x7ffe6a71d660 pc=0x42c256
runtime.(*mheap).allocSpan(0x2c0da60, 0x20000, 0x0, 0xa0?)
    /usr/local/go/src/runtime/mheap.go:1250 +0x1b0 fp=0x7ffe6a71d770 sp=0x7ffe6a71d6d0 pc=0x42b970
runtime.(*mheap).alloc.func1()
    /usr/local/go/src/runtime/mheap.go:968 +0x5c fp=0x7ffe6a71d7b8 sp=0x7ffe6a71d770 pc=0x42b41c
traceback: unexpected SPWRITE function runtime.systemstack
runtime.systemstack()
    /usr/local/go/src/runtime/asm_amd64.s:509 +0x4a fp=0x7ffe6a71d7c8 sp=0x7ffe6a71d7b8 pc=0x46ee2a

goroutine 7168781 [running]:
runtime.systemstack_switch()
    /usr/local/go/src/runtime/asm_amd64.s:474 +0x8 fp=0xc00263ce28 sp=0xc00263ce18 pc=0x46edc8
runtime.(*mheap).alloc(0x40000000?, 0x20000?, 0x0?)
    /usr/local/go/src/runtime/mheap.go:962 +0x5b fp=0xc00263ce70 sp=0xc00263ce28 pc=0x42b37b
runtime.(*mcache).allocLarge(0x1ffbfc55?, 0x40000000, 0x0?)
    /usr/local/go/src/runtime/mcache.go:234 +0x85 fp=0xc00263ceb8 sp=0xc00263ce70 pc=0x4193c5
runtime.mallocgc(0x40000000, 0x0, 0x0)
    /usr/local/go/src/runtime/malloc.go:1127 +0x4f6 fp=0xc00263cf20 sp=0xc00263ceb8 pc=0x410296
runtime.growslice(0x0, 0x11e1a2a?, 0xc002d628d0?, 0xc0aa3b9858?, 0x407a8?)
    /usr/local/go/src/runtime/slice.go:266 +0x4cf fp=0xc00263cf90 sp=0xc00263cf20 pc=0x45338f
bytes.growSlice({0xc08a3fa000, 0x20000000, 0x40d37a?}, 0xc000082860?)
    /usr/local/go/src/bytes/buffer.go:249 +0x8e fp=0xc00263d010 sp=0xc00263cf90 pc=0x51dc0e
bytes.(*Buffer).grow(0xc000c38d50, 0x200)
    /usr/local/go/src/bytes/buffer.go:151 +0x13d fp=0xc00263d048 sp=0xc00263d010 pc=0x51d63d
bytes.(*Buffer).ReadFrom(0xc000c38d50, {0x7f7d4c1734e8, 0xc0030cf0e0})
    /usr/local/go/src/bytes/buffer.go:209 +0x3e fp=0xc00263d0a0 sp=0xc00263d048 pc=0x51da1e
io.copyBuffer({0x1dd1220, 0xc000c38d50}, {0x7f7d4c1734e8, 0xc0030cf0e0}, {0x0, 0x0, 0x0})
    /usr/local/go/src/io/io.go:416 +0x147 fp=0xc00263d120 sp=0xc00263d0a0 pc=0x4d84c7
io.Copy(...)
    /usr/local/go/src/io/io.go:389
github.com/nekomeowww/insights-bot/pkg/linkprev.(*Client).request(0xc00031a2b0?, 0x1de2d40?, {0xc0035b0d80, 0x2e})
    /app/insights-bot/pkg/linkprev/linkprev.go:124 +0x245 fp=0xc00263d3c8 sp=0xc00263d120 pc=0x13c2245
github.com/nekomeowww/insights-bot/pkg/linkprev.(*Client).Preview(_, {_, _}, {_, _})
    /app/insights-bot/pkg/linkprev/linkprev.go:37 +0xaa fp=0xc00263d648 sp=0xc00263d3c8 pc=0x13c18aa
github.com/nekomeowww/insights-bot/internal/models/chathistories.(*Model).ExtractTextFromMessage.func1({{0xc00365ba40, 0x3}, 0x12, 0x2e, {0x0, 0x0}, 0x0, {0x0, 0x0}}, 0x0)
    /app/insights-bot/internal/models/chathistories/chat_histories.go:100 +0x1fe fp=0xc00263deb0 sp=0xc00263d648 pc=0x15c617e
github.com/samber/lo/parallel.Map[...].func1(0x0)
    /go/pkg/mod/github.com/samber/lo@v1.39.0/parallel/slice.go:15 +0xbf fp=0xc00263df80 sp=0xc00263deb0 pc=0x15d1d5f
github.com/samber/lo/parallel.Map[...].func2()
    /go/pkg/mod/github.com/samber/lo@v1.39.0/parallel/slice.go:20 +0x51 fp=0xc00263dfe0 sp=0xc00263df80 pc=0x15d1c71
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00263dfe8 sp=0xc00263dfe0 pc=0x470c21
created by github.com/samber/lo/parallel.Map[...] in goroutine 89
    /go/pkg/mod/github.com/samber/lo@v1.39.0/parallel/slice.go:14 +0xc5

goroutine 1 [chan receive, 9248 minutes]:
runtime.gopark(0x7d9a50?, 0x0?, 0x1?, 0x0?, 0xc000b2dbc0?)
    /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000e07b30 sp=0xc000e07b10 pc=0x43dcee
runtime.chanrecv(0xc000085bc0, 0xc000b2dc28, 0x1)
    /usr/local/go/src/runtime/chan.go:583 +0x3cd fp=0xc000e07ba8 sp=0xc000e07b30 pc=0x4099ad
runtime.chanrecv1(0xc0005611d0?, 0x1de2d40?)
    /usr/local/go/src/runtime/chan.go:442 +0x12 fp=0xc000e07bd0 sp=0xc000e07ba8 pc=0x4095b2
go.uber.org/fx.(*App).run(0xc0005611d0, 0xc000b2dc70)
    /go/pkg/mod/go.uber.org/fx@v1.20.1/app.go:591 +0xaf fp=0xc000e07c60 sp=0xc000e07bd0 pc=0x7d2e8f
go.uber.org/fx.(*App).Run(0xc0005611d0)
    /go/pkg/mod/go.uber.org/fx@v1.20.1/app.go:578 +0x34 fp=0xc000e07c90 sp=0xc000e07c60 pc=0x7d2d94
main.main()
    /app/insights-bot/cmd/insights-bot/main.go:45 +0xd25 fp=0xc000e07f40 sp=0xc000e07c90 pc=0x163c065
runtime.main()
    /usr/local/go/src/runtime/proc.go:267 +0x2bb fp=0xc000e07fe0 sp=0xc000e07f40 pc=0x43d87b
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000e07fe8 sp=0xc000e07fe0 pc=0x470c21

goroutine 2 [force gc (idle), 2 minutes]:
runtime.gopark(0x1633a5f1be7d9a?, 0x0?, 0x0?, 0x0?, 0x0?)
    /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000060fa8 sp=0xc000060f88 pc=0x43dcee
runtime.goparkunlock(...)
    /usr/local/go/src/runtime/proc.go:404
runtime.forcegchelper()
    /usr/local/go/src/runtime/proc.go:322 +0xb3 fp=0xc000060fe0 sp=0xc000060fa8 pc=0x43db53
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000060fe8 sp=0xc000060fe0 pc=0x470c21
created by runtime.init.6 in goroutine 1
    /usr/local/go/src/runtime/proc.go:310 +0x1a

goroutine 3 [GC sweep wait]:
runtime.gopark(0x2bf1401?, 0x0?, 0x0?, 0x0?, 0x0?)
    /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000061778 sp=0xc000061758 pc=0x43dcee
runtime.goparkunlock(...)
    /usr/local/go/src/runtime/proc.go:404
runtime.bgsweep(0x0?)
    /usr/local/go/src/runtime/mgcsweep.go:321 +0xdf fp=0xc0000617c8 sp=0xc000061778 pc=0x4281bf
runtime.gcenable.func1()
    /usr/local/go/src/runtime/mgc.go:200 +0x25 fp=0xc0000617e0 sp=0xc0000617c8 pc=0x41d305
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0000617e8 sp=0xc0000617e0 pc=0x470c21
created by runtime.gcenable in goroutine 1
    /usr/local/go/src/runtime/mgc.go:200 +0x66