这是indexloc提供的服务,不要输入任何密码
Skip to content

spanner: "iter.Do" always sets ExecuteStreamingSql span Status to "error" #12221

@AlexB-mgtc

Description

@AlexB-mgtc

Client

Spanner

Environment

Alpine Docker on GKE

Code and Dependencies

if err := iter.Do(func(r *spanner.Row) error {
	var version domain.GameVersion
	if err := r.ToStructLenient(&version); err != nil {
		return err
	}
	// Do something with it
	return nil
}); err != nil {
	return nil, err
}
go.mod
go 1.24.0

require (
	cloud.google.com/go/spanner v1.80.0
        go.opentelemetry.io/otel v1.35.0
	go.opentelemetry.io/otel/trace v1.35.0
)

Expected behavior

Spanner spans are all with Status: unset.

Actual behavior

The span called google.spanner.v1.Spanner/ExecuteStreamingSql has:

    Status: error
    Status Message: context canceled
    Library Name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc
    Library Version: 0.60.0

Note that NO error is returned from the iter.Do func call and the context is not canceled while executing it.

Screenshots

Image

Metadata

Metadata

Labels

api: spannerIssues related to the Spanner API.triage meI really want to be triaged.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions