Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[spanner] RequestOptions.transaction_tag is unexpectedly mutated to '' when passed to snapshot.read()

Aberta
#17,902 1 comentário 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@steotia já está trabalhando nisso.

Desde 31/7/2026.

Avaliação

Esta issue ainda não foi avaliada.

Descrição

api: spanner priority: p2 type: bug
Determine this is the right repository
  • I determined this is the correct repository in which to report this bug.
Summary of the issue

When passing a RequestOptions instance with a transaction_tag to snapshot.read(), the transaction_tag attribute of the original object is unexpectedly mutated to '' (empty string).

API client name and version

google-cloud-spanner==3.69.0

Reproduction steps: code

from google.cloud import spanner
from google.cloud.spanner_v1.types import RequestOptions

spanner_client = spanner.Client()
instance = spanner_client.instance("your-instance-id")
database = instance.database("your-database-id")

request_opts = RequestOptions(transaction_tag="tran1")

print("Before read:", request_opts.transaction_tag)

with database.snapshot() as snapshot:
snapshot.read(
table="Singers",
columns=("SingerId", "FirstName"),
keyset=spanner.KeySet(all_=True),
request_options=request_opts,
)

print("After read:", request_opts.transaction_tag)

Reproduction steps: supporting files

No response

Reproduction steps: actual results

Before read: tran1
After read:

Reproduction steps: expected results

Before read: tran1
After read: tran1

OS & version + platform

Windows 11

Python environment

Python 3.14.6

Python dependencies

pip list
Package Version


certifi 2026.7.22
cffi 2.1.0
charset-normalizer 3.4.9
cryptography 49.0.0
google-api-core 2.33.0
google-auth 2.56.2
google-cloud-core 2.6.0
google-cloud-monitoring 2.31.0
google-cloud-spanner 3.69.0
google-cloud-storage 3.13.0
google-crc32c 1.8.0
google-resumable-media 2.10.0
googleapis-common-protos 1.75.0
grpc-google-iam-v1 0.14.4
grpc-interceptor 0.15.4
grpcio 1.82.1
grpcio-status 1.82.1
idna 3.18
mmh3 5.2.1
opentelemetry-api 1.44.0
opentelemetry-resourcedetector-gcp 1.12.0a0
opentelemetry-sdk 1.44.0
opentelemetry-semantic-conventions 0.65b0
pip 26.1.2
proto-plus 1.28.2
protobuf 7.35.1
pyasn1 0.6.4
pyasn1_modules 0.4.2
pycparser 3.0
requests 2.34.2
sqlparse 0.5.5
typing_extensions 4.16.0
urllib3 2.7.0

Additional context

Passing an object as an argument should not destructively mutate the caller's input object.

Linguagem predominante
Python
Estrelas
5.4k
Forks
1.8k
Merge médio
2d 11h
PRs com merge (30d)
129

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de googleapis/google-cloud-python

Todas as issues de googleapis/google-cloud-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.