Detailed steps to reproduce the problem?
Include full traceback, if possible
Reproducible with the following script:
package main
|
|
import (
|
"bytes"
|
"fmt"
|
"io"
|
|
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson/bsonrw"
|
)
|
|
func main() {
|
ej := []byte(`[{"x":1},{"y":2}]`)
|
|
rw, err := bsonrw.NewExtJSONValueReader(bytes.NewReader(ej), true)
|
if err != nil {
|
panic(err)
|
}
|
|
dec, err := bson.NewDecoder(rw)
|
if err != nil {
|
panic(err)
|
}
|
|
for {
|
var data interface{}
|
err := dec.Decode(&data)
|
if err == io.EOF {
|
break
|
}
|
|
if err != nil {
|
panic(err)
|
}
|
|
fmt.Println("data: ", data)
|
}
|
}
|
Output:
❯ go run main.go
|
data: [[{x 1}] [{y 2}]]
|
panic: runtime error: index out of range [-2]
|
|
goroutine 1 [running]:
|
go.mongodb.org/mongo-driver/bson/bsonrw.(*extJSONValueReader).Type(0x14000143b98?)
|
/Users/preston.vasquez/Developer/mongo-go-driver/bson/bsonrw/extjson_reader.go:237 +0x48
|
go.mongodb.org/mongo-driver/bson/bsoncodec.EmptyInterfaceCodec.decodeType({0xa0?}, {0x1400013cc40, 0x0, {0x0, 0x0}, {0x0, 0x0}, 0x0, 0x0, 0x0, ...}, ...)
|
/Users/preston.vasquez/Developer/mongo-go-driver/bson/bsoncodec/empty_interface_codec.go:116 +0x1cc
|
go.mongodb.org/mongo-driver/bson/bsoncodec.EmptyInterfaceCodec.DecodeValue({0x74?}, {0x1400013cc40, 0x0, {0x0, 0x0}, {0x0, 0x0}, 0x0, 0x0, 0x0, ...}, ...)
|
/Users/preston.vasquez/Developer/mongo-go-driver/bson/bsoncodec/empty_interface_codec.go:152 +0x178
|
go.mongodb.org/mongo-driver/bson.(*Decoder).Decode(0x14000143f18, {0x1043d6260?, 0x1400010bad0})
|
/Users/preston.vasquez/Developer/mongo-go-driver/bson/decoder.go:134 +0x3b4
|
main.main()
|
/Users/preston.vasquez/Developer/technical/workshop/mongo/bson/more/main.go:27 +0x1b4
|
exit status 2
|
Definition of done: what must be done to consider the task complete?
An io.Reader should return io.EOF when the stack is exhuasted.
The exact Go version used, with patch level:
go version go1.20.5 darwin/arm64
The exact version of the Go driver used:
go.mongodb.org/mongo-driver v1.11.4
Describe how MongoDB is set up. Local vs Hosted, version, topology, load balanced, etc.
local distro, 7.0.2 server version, replica set:
${DRIVERS_TOOLS}/.evergreen/start-orchestration.sh /Users/preston.vasquez/Developer/mongo-orchestration-home
|
curl -X POST http://localhost:8889/v1/replica_sets \ -H 'Content-Type: application/json' \ -d @${DRIVERS_TOOLS}/.evergreen/orchestration/configs/replica_sets/basic.json
|
|
The operating system and version (e.g. Windows 7, OSX 10.8, ...)
OSX ventura 13.6
Security Vulnerabilities
NA
|