Skip to content

bufio: panic in ReadSlice #4276

@bradfitz

Description

@bradfitz
Running an http stress program with lots of network timeouts, I saw this crash go by.

Line 260 is:

                // Search new part of buffer
                if i := bytes.IndexByte(b.buf[n:b.w], delim); i >= 0 {

panic: runtime error: slice bounds out of range

goroutine 1 [running]:
bufio.(*Reader).ReadSlice(0xf8403b9d20, 0x333100000000000a, 0x0, 0x0, 0x0, ...)
        /Users/bradfitz/go/src/pkg/bufio/bufio.go:260 +0x385
net/http.readLineBytes(0xf8403b9d20, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/bradfitz/go/src/pkg/net/http/chunked.go:92 +0x50
net/http.readLine(0xf8403b9d20, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/bradfitz/go/src/pkg/net/http/chunked.go:114 +0x49
net/http.(*chunkedReader).beginChunk(0xf8401bbe40, 0x1325c)
        /Users/bradfitz/go/src/pkg/net/http/chunked.go:47 +0x28
net/http.(*chunkedReader).Read(0xf8401bbe40, 0xf840086000, 0x2000, 0x2000, 0x1eda08, ...)
        /Users/bradfitz/go/src/pkg/net/http/chunked.go:65 +0x88
net/http.(*body).Read(0xf8401ff740, 0xf840086000, 0x2000, 0x2000, 0x30, ...)
        /Users/bradfitz/go/src/pkg/net/http/transfer.go:539 +0x8c
io/ioutil.devNull.ReadFrom(0x0, 0xf8400bd7e0, 0xf8401ff740, 0x0, 0x0, ...)
        /Users/bradfitz/go/src/pkg/io/ioutil/ioutil.go:137 +0x8f
io.Copy(0xf840071210, 0x0, 0xf8400bd7e0, 0xf8401ff740, 0x0, ...)
        /Users/bradfitz/go/src/pkg/io/io.go:352 +0xa2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions