로그 전송 body에 버퍼 복사가 제대로 안되던 문제 수정

This commit is contained in:
2025-09-10 01:11:08 +09:00
parent 54eab23eb2
commit e6d8cb6c5a

View File

@ -76,21 +76,23 @@ func (c *Client) SendBulk(ds map[string]*LogDocument) {
}
type stringSliceReader struct {
src [][]byte
pointer int
src [][]byte
}
func (b *stringSliceReader) Read(p []byte) (n int, err error) {
for b.pointer < len(b.src) {
sbt := b.src[b.pointer]
for len(b.src) > 0 {
sbt := b.src[0]
if len(p) < len(sbt) {
return
b.src[0] = sbt[len(p):]
sbt = sbt[:len(p)]
copy(p, sbt)
return n + len(sbt), nil
}
copy(p, sbt)
p = p[len(sbt):]
b.pointer++
n += len(sbt)
err = nil
p = p[len(sbt):]
b.src = b.src[1:]
}
err = io.EOF
return
@ -134,7 +136,7 @@ func (c *Client) sendLoop(ctx context.Context) {
}
}()
reader := &stringSliceReader{src: sending, pointer: 0}
reader := &stringSliceReader{src: sending}
req := osapi.BulkReq{
Body: reader,
Header: c.bulkHeader,