Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bigquery: Stack overflow in paramType #6884

Closed
Thomasdezeeuw opened this issue Oct 18, 2022 · 5 comments · Fixed by #6890
Closed

bigquery: Stack overflow in paramType #6884

Thomasdezeeuw opened this issue Oct 18, 2022 · 5 comments · Fixed by #6890
Assignees
Labels
api: bigquery Issues related to the BigQuery API. priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release.

Comments

@Thomasdezeeuw
Copy link

Client

BigQuery.

Environment

macOS M1, Darwin MacBook-Pro.local 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:20:05 PDT 2022; root:xnu-8020.140.49~2/RELEASE_ARM64_T8101 arm64.

Go Environment

Version: go version go1.19.2 darwin/arm64.

Environment:

GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/thomas/Library/Caches/go-build"
GOENV="/Users/thomas/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/thomas/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/thomas/go"
GOPRIVATE=""
GOPROXY="direct"
GOROOT="/opt/homebrew/Cellar/go/1.19.2/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/homebrew/Cellar/go/1.19.2/libexec/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.19.2"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="$WORK"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/lv/qbz3lh7j6gdc43dd1p22bcc40000gn/T/go-build188376126=/tmp/go-build -gno-record-gcc-switches -fno-common"

Code

I can't share all code, but the following is pretty close. Note that I'm not sure that passing []string to RowIterator.Next is valid, but it's shouldn't overflow it's stack.

package main

func main() {
	query := client.Query("...") // Select a single array of strings.
	rows, err := query.Read(ctx)
	if err != nil {
		return nil, err
	}
	rows.PageInfo().MaxSize = 1 // Only expect a single row.

	var options []string
	if err := rows.Next(&options); err != nil {
		return nil, err
	}

	// Never reached...
}

Expected behavior

Filled options with the array, or at the very least no stack overflow.

Actual behavior

Stack overflow. Backtrace:

runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0x140206403a0 stack=[0x14020640000, 0x14040640000]
fatal error: stack overflow

runtime stack:
runtime.throw({0x10391275e?, 0x1044f3600?})
        /opt/homebrew/Cellar/go/1.19.2/libexec/src/runtime/panic.go:1047 +0x40 fp=0x16d066d50 sp=0x16d066d20 pc=0x102ee2e20
runtime.newstack()
        /opt/homebrew/Cellar/go/1.19.2/libexec/src/runtime/stack.go:1103 +0x464 fp=0x16d066f00 sp=0x16d066d50 pc=0x102efd8a4
runtime.morestack()
        /opt/homebrew/Cellar/go/1.19.2/libexec/src/runtime/asm_arm64.s:316 +0x70 fp=0x16d066f00 sp=0x16d066f00 pc=0x102f14900

goroutine 10 [running]:
runtime.mapaccess2(0x103c379c0, 0x140001bd7d0, 0x14020640408?)
        /opt/homebrew/Cellar/go/1.19.2/libexec/src/runtime/map.go:456 +0x21c fp=0x140206403a0 sp=0x140206403a0 pc=0x102eba7dc
sync.(*Map).Load(0x14000404a98, {0x103dcb380, 0x103d11ba0})
        /opt/homebrew/Cellar/go/1.19.2/libexec/src/sync/map.go:112 +0xc0 fp=0x14020640420 sp=0x140206403a0 pc=0x102f1e970
cloud.google.com/go/internal/fields.(*Cache).cachedTypeFields(0x14000404a80, {0x103e09b20?, 0x103d11ba0})
        /Users/thomas/go/pkg/mod/cloud.google.com/go@v0.104.0/internal/fields/fields.go:215 +0x64 fp=0x140206404c0 sp=0x14020640420 pc=0x1034460a4
cloud.google.com/go/internal/fields.(*Cache).Fields(0x14020640538?, {0x103e09b20, 0x103d11ba0})
        /Users/thomas/go/pkg/mod/cloud.google.com/go@v0.104.0/internal/fields/fields.go:176 +0x48 fp=0x140206404f0 sp=0x140206404c0 pc=0x103445df8
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:378 +0x5d0 fp=0x140206406d0 sp=0x140206404f0 pc=0x1034653a0
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206408b0 sp=0x140206406d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020640a90 sp=0x140206408b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020640c70 sp=0x14020640a90 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020640e50 sp=0x14020640c70 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641030 sp=0x14020640e50 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641210 sp=0x14020641030 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206413f0 sp=0x14020641210 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206415d0 sp=0x140206413f0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206417b0 sp=0x140206415d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641990 sp=0x140206417b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641b70 sp=0x14020641990 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641d50 sp=0x14020641b70 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020641f30 sp=0x14020641d50 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020642110 sp=0x14020641f30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206422f0 sp=0x14020642110 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206424d0 sp=0x140206422f0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206426b0 sp=0x140206424d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020642890 sp=0x140206426b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020642a70 sp=0x14020642890 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020642c50 sp=0x14020642a70 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020642e30 sp=0x14020642c50 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643010 sp=0x14020642e30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206431f0 sp=0x14020643010 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206433d0 sp=0x140206431f0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206435b0 sp=0x140206433d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643790 sp=0x140206435b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643970 sp=0x14020643790 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643b50 sp=0x14020643970 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643d30 sp=0x14020643b50 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020643f10 sp=0x14020643d30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206440f0 sp=0x14020643f10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206442d0 sp=0x140206440f0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206444b0 sp=0x140206442d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644690 sp=0x140206444b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644870 sp=0x14020644690 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644a50 sp=0x14020644870 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644c30 sp=0x14020644a50 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644e10 sp=0x14020644c30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020644ff0 sp=0x14020644e10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206451d0 sp=0x14020644ff0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206453b0 sp=0x140206451d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645590 sp=0x140206453b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645770 sp=0x14020645590 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645950 sp=0x14020645770 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645b30 sp=0x14020645950 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645d10 sp=0x14020645b30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020645ef0 sp=0x14020645d10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206460d0 sp=0x14020645ef0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206462b0 sp=0x140206460d0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646490 sp=0x140206462b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646670 sp=0x14020646490 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646850 sp=0x14020646670 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646a30 sp=0x14020646850 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646c10 sp=0x14020646a30 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646df0 sp=0x14020646c10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020646fd0 sp=0x14020646df0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206471b0 sp=0x14020646fd0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647390 sp=0x140206471b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647570 sp=0x14020647390 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647750 sp=0x14020647570 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647930 sp=0x14020647750 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647b10 sp=0x14020647930 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647cf0 sp=0x14020647b10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020647ed0 sp=0x14020647cf0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x140206480b0 sp=0x14020647ed0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648290 sp=0x140206480b0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648470 sp=0x14020648290 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648650 sp=0x14020648470 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648830 sp=0x14020648650 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648a10 sp=0x14020648830 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648bf0 sp=0x14020648a10 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648dd0 sp=0x14020648bf0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020648fb0 sp=0x14020648dd0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649190 sp=0x14020648fb0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649370 sp=0x14020649190 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649550 sp=0x14020649370 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649730 sp=0x14020649550 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649910 sp=0x14020649730 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649af0 sp=0x14020649910 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649cd0 sp=0x14020649af0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x14020649eb0 sp=0x14020649cd0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a090 sp=0x14020649eb0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a270 sp=0x1402064a090 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a450 sp=0x1402064a270 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a630 sp=0x1402064a450 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a810 sp=0x1402064a630 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064a9f0 sp=0x1402064a810 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064abd0 sp=0x1402064a9f0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064adb0 sp=0x1402064abd0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064af90 sp=0x1402064adb0 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064b170 sp=0x1402064af90 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064b350 sp=0x1402064b170 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064b530 sp=0x1402064b350 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064b710 sp=0x1402064b530 pc=0x103465768
cloud.google.com/go/bigquery.paramType({0x103e09b20, 0x103c54160}, {0x103d4ea60?, 0x1400018ebe0?, 0x0?})
        /Users/thomas/go/pkg/mod/cloud.google.com/go/bigquery@v1.42.0/params.go:383 +0x998 fp=0x1402064b8f0 sp=0x1402064b710 pc=0x103465768
...additional frames elided...
created by google.golang.org/grpc.(*Server).serveStreams.func1
        /Users/thomas/go/pkg/mod/google.golang.org/grpc@v1.50.0/server.go:953 +0x290

Additional context

Related code is:

pt, err := paramType(f.Type, v)

@Thomasdezeeuw Thomasdezeeuw added the triage me I really want to be triaged. label Oct 18, 2022
@product-auto-label product-auto-label bot added the api: bigquery Issues related to the BigQuery API. label Oct 18, 2022
@Thomasdezeeuw Thomasdezeeuw changed the title bigquery: Stack overflow in bigquery: Stack overflow in paramType Oct 18, 2022
@Thomasdezeeuw
Copy link
Author

Thomasdezeeuw commented Oct 18, 2022

I also tried with

var options []bigquery.NullString
var options []bigquery.Value
type returnOptions struct {
	options []string
}

var opts returnOptions

Also overflows.

@shollyman shollyman assigned alvarowolfx and unassigned shollyman Oct 18, 2022
@alvarowolfx alvarowolfx added priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. and removed triage me I really want to be triaged. labels Oct 18, 2022
@alvarowolfx
Copy link
Contributor

I'm taking a look here. Are you passing any QueryParameter on your query @Thomasdezeeuw ?

@alvarowolfx
Copy link
Contributor

I tried here and managed to read a list of strings in some ways. It works with []bigquery.Value and with a custom struct ( on your example, I think is missing the bigquery struct tag and exporting the field ). Here are some examples:

ctx := context.Background()
query := `SELECT '1-one' as str UNION ALL SELECT '2-two' as str UNION ALL SELECT '3-three' as str ORDER BY str`
q := client.Query(query)
it, err := q.Read(ctx)
if err != nil {
    log.Fatal(err)
}
expectedRows := [][]Value{{"1-one"}, {"2-two"}, {"3-three"}}
valueRows := [][]Value{}
for {
    var row []Value
    err := it.Next(&row)
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    valueRows = append(valueRows, row)
}
if !testutil.Equal(valueRows, expectedRows) {
    log.Fatalf("expected `%v`, got `%v`", expectedRows, valueRows)
}

query = `SELECT ['1-one','2-two','3-three'] as options`
q = client.Query(query)
it, err = q.Read(ctx)
if err != nil {
    log.Fatal(err)
}
expectedRows = [][]Value{
    {
        []Value{"1-one", "2-two", "3-three"},
    },
}
valueRows = [][]Value{}
for {
    var row []Value
    err := it.Next(&row)
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    valueRows = append(valueRows, row)
}
if !testutil.Equal(valueRows, expectedRows) {
    log.Fatalf("expected `%v`, got `%v`", expectedRows, valueRows)
}

q = client.Query(query)
it, err = q.Read(ctx)
if err != nil {
    log.Fatal(err)
}
type singleArray struct {
    Options []string `bigquery:"options"`
}
rows := []singleArray{}
for {
    var row singleArray
    err := it.Next(&row)
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    rows = append(rows, row)
}
if len(rows) != 1 {
    log.Fatal("found more than 1 row")
}
gotList := rows[0].Options
expectedList := []string{"1-one", "2-two", "3-three"}
if !testutil.Equal(gotList, expectedList) {
    log.Fatalf("expected `%v` but found `%v`", expectedList, gotList)
}

In any case, I managed to reproduce the issue that you reported, but is only when a QueryParamter is informed and is a struct with recursive types. I'm still investigating how to solve that problem in particular.

@Thomasdezeeuw
Copy link
Author

@alvarowolfx thanks for the quick response.

I am indeed using QueryParameter, only to set the limit, so I guess I could use a int64 directly as well. I'm using the following as parameters:

	query.Parameters = []bigquery.QueryParameter{
		{
			Name: "limit",
			Value: bigquery.QueryParameterValue{
				Type: bigquery.StandardSQLDataType{
					TypeKind: "INT64",
				},
				Value: "123",
			},
		},
	}

The following indeed works correctly.

	query.Parameters = []bigquery.QueryParameter{
		{
			Name:  "limit",
			Value: int64(request.MaxOptions),
		},
	}

@alvarowolfx
Copy link
Contributor

The bigquery.QueryParameterValue needs to be a pointer. Some other typed parameters needs to be a pointer, like *QueryParameterValue, *big.Rat and *IntervalValue . And by coincidence, the QueryParameterValue have a cycle of types that generated the stack overflow issue. I already opened a PR to mitigate that.

Thanks for the report and hopefully is all good now on your end.

gcf-merge-on-green bot pushed a commit that referenced this issue Oct 24, 2022
🤖 I have created a release *beep* *boop*
---


## [1.43.0](https://togithub.com/googleapis/google-cloud-go/compare/bigquery/v1.42.0...bigquery/v1.43.0) (2022-10-24)


### Features

* **bigquery/analyticshub:** rename nodejs analyticshub library package name ([52dddd1](https://togithub.com/googleapis/google-cloud-go/commit/52dddd1ed89fbe77e1859311c3b993a77a82bfc7))
* **bigquery/storage/managedwriter:** Enable field name indirection ([#6247](https://togithub.com/googleapis/google-cloud-go/issues/6247)) ([1969273](https://togithub.com/googleapis/google-cloud-go/commit/19692735b0fbafa176d0315bda923528e1eedf6d))
* **bigquery/storage/managedwriter:** Retry on FailedPrecondition ([#6761](https://togithub.com/googleapis/google-cloud-go/issues/6761)) ([d1a444d](https://togithub.com/googleapis/google-cloud-go/commit/d1a444d769c9578b586bef608d343b4b0abd3658))
* **bigquery/storage/managedwriter:** Support append retries ([#6695](https://togithub.com/googleapis/google-cloud-go/issues/6695)) ([6ae9c67](https://togithub.com/googleapis/google-cloud-go/commit/6ae9c670a11d80b34872cb05fda933303b81851d))
* **bigquery/storage/managedwriter:** Switch to opt-in retry ([#6765](https://togithub.com/googleapis/google-cloud-go/issues/6765)) ([a3e97a6](https://togithub.com/googleapis/google-cloud-go/commit/a3e97a6f15ad1989ef815b9bd5838192f9f226f1))
* **bigquery:** Add remote function options to routine metadata ([#6702](https://togithub.com/googleapis/google-cloud-go/issues/6702)) ([d9a437d](https://togithub.com/googleapis/google-cloud-go/commit/d9a437de75a5f5151cd000d8f9a6b7fc567d8551))


### Bug Fixes

* **bigquery/storage/managedwriter:** Address possible resource leak ([#6775](https://togithub.com/googleapis/google-cloud-go/issues/6775)) ([979440b](https://togithub.com/googleapis/google-cloud-go/commit/979440b43573c1cfd744d3f63d0c633c7319ad46))
* **bigquery:** Avoid stack overflow on query param with recursive types ([#6890](https://togithub.com/googleapis/google-cloud-go/issues/6890)) ([854ccfc](https://togithub.com/googleapis/google-cloud-go/commit/854ccfca259d747759d283fc0d0053893f3c8f8d)), refs [#6884](https://togithub.com/googleapis/google-cloud-go/issues/6884)
* **bigquery:** Bq connection auth scopes ([#6752](https://togithub.com/googleapis/google-cloud-go/issues/6752)) ([8e09288](https://togithub.com/googleapis/google-cloud-go/commit/8e09288185f721d90288c3aa873980fc44b98613)), refs [#6744](https://togithub.com/googleapis/google-cloud-go/issues/6744)


### Documentation

* **bigquery/storage/managedwriter/adapt:** Typo in error string ([#6729](https://togithub.com/googleapis/google-cloud-go/issues/6729)) ([bb26153](https://togithub.com/googleapis/google-cloud-go/commit/bb26153d38475cd9784edbf241df84c368f5a166))
* **bigquery/storage/managedwriter:** Add retry info to package docs ([#6803](https://togithub.com/googleapis/google-cloud-go/issues/6803)) ([81e52e5](https://togithub.com/googleapis/google-cloud-go/commit/81e52e59dcf3c4a44108e039fb0e3a0e2ce8284f))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
kimihrr pushed a commit to kimihrr/google-cloud-go-kimia that referenced this issue Oct 25, 2022
kimihrr pushed a commit to kimihrr/google-cloud-go-kimia that referenced this issue Oct 25, 2022
🤖 I have created a release *beep* *boop*
---


## [1.43.0](https://togithub.com/googleapis/google-cloud-go/compare/bigquery/v1.42.0...bigquery/v1.43.0) (2022-10-24)


### Features

* **bigquery/analyticshub:** rename nodejs analyticshub library package name ([52dddd1](https://togithub.com/googleapis/google-cloud-go/commit/52dddd1ed89fbe77e1859311c3b993a77a82bfc7))
* **bigquery/storage/managedwriter:** Enable field name indirection ([googleapis#6247](https://togithub.com/googleapis/google-cloud-go/issues/6247)) ([1969273](https://togithub.com/googleapis/google-cloud-go/commit/19692735b0fbafa176d0315bda923528e1eedf6d))
* **bigquery/storage/managedwriter:** Retry on FailedPrecondition ([googleapis#6761](https://togithub.com/googleapis/google-cloud-go/issues/6761)) ([d1a444d](https://togithub.com/googleapis/google-cloud-go/commit/d1a444d769c9578b586bef608d343b4b0abd3658))
* **bigquery/storage/managedwriter:** Support append retries ([googleapis#6695](https://togithub.com/googleapis/google-cloud-go/issues/6695)) ([6ae9c67](https://togithub.com/googleapis/google-cloud-go/commit/6ae9c670a11d80b34872cb05fda933303b81851d))
* **bigquery/storage/managedwriter:** Switch to opt-in retry ([googleapis#6765](https://togithub.com/googleapis/google-cloud-go/issues/6765)) ([a3e97a6](https://togithub.com/googleapis/google-cloud-go/commit/a3e97a6f15ad1989ef815b9bd5838192f9f226f1))
* **bigquery:** Add remote function options to routine metadata ([googleapis#6702](https://togithub.com/googleapis/google-cloud-go/issues/6702)) ([d9a437d](https://togithub.com/googleapis/google-cloud-go/commit/d9a437de75a5f5151cd000d8f9a6b7fc567d8551))


### Bug Fixes

* **bigquery/storage/managedwriter:** Address possible resource leak ([googleapis#6775](https://togithub.com/googleapis/google-cloud-go/issues/6775)) ([979440b](https://togithub.com/googleapis/google-cloud-go/commit/979440b43573c1cfd744d3f63d0c633c7319ad46))
* **bigquery:** Avoid stack overflow on query param with recursive types ([googleapis#6890](https://togithub.com/googleapis/google-cloud-go/issues/6890)) ([854ccfc](https://togithub.com/googleapis/google-cloud-go/commit/854ccfca259d747759d283fc0d0053893f3c8f8d)), refs [googleapis#6884](https://togithub.com/googleapis/google-cloud-go/issues/6884)
* **bigquery:** Bq connection auth scopes ([googleapis#6752](https://togithub.com/googleapis/google-cloud-go/issues/6752)) ([8e09288](https://togithub.com/googleapis/google-cloud-go/commit/8e09288185f721d90288c3aa873980fc44b98613)), refs [googleapis#6744](https://togithub.com/googleapis/google-cloud-go/issues/6744)


### Documentation

* **bigquery/storage/managedwriter/adapt:** Typo in error string ([googleapis#6729](https://togithub.com/googleapis/google-cloud-go/issues/6729)) ([bb26153](https://togithub.com/googleapis/google-cloud-go/commit/bb26153d38475cd9784edbf241df84c368f5a166))
* **bigquery/storage/managedwriter:** Add retry info to package docs ([googleapis#6803](https://togithub.com/googleapis/google-cloud-go/issues/6803)) ([81e52e5](https://togithub.com/googleapis/google-cloud-go/commit/81e52e59dcf3c4a44108e039fb0e3a0e2ce8284f))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: bigquery Issues related to the BigQuery API. priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants