The Wire · Showcase
SPANNER FIXES DATA LOSS IN AUTOCOMMIT MODE
By RepoJournal · Filed · About Google
Spanner's Python client silently dropped rows from multi-row DML statements in autocommit mode, and the fix is live.
Google Cloud Python shipped a critical Spanner fix for autocommit DML statements, where the underlying transaction terminated before all returned rows were fetched, causing data loss [1]. The NDB client also got a Python 3.12 compatibility fix, switching to the single-argument generator.throw() signature that was deprecated [2]. Meanwhile, a breaking change removed erroneous monitoring dashboard clients that could break your imports [3]. Over in the GenAI SDK, python-genai v2.19.0 introduces VERBATIM and SMART modes for audio transcription, alongside other new options [4]. JAX quietly added dynamic tile strides for memref slicing and updated Bazel to v8.7.0 [6][5]. The release notes call the new transcription modes a "`mode` enum (`VERBATIM`, `SMART`)" for `AudioTranscriptionConfig` [4]. If you depend on Spanner autocommit, upgrade now.
One email a day. Unsubscribe in one click.
Keep up with Google in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade google-cloud-spanner to the latest release before your next deploy to avoid data loss in autocommit DML googleapis/google-cloud-python [immediate]
- → Upgrade python-genai to v2.19.0 to get the new transcription modes and check for breaking changes in monitoring dashboard clients googleapis/python-genai [plan]
- → Update google-cloud-ndb to fix Python 3.12 generator.throw() deprecation warnings googleapis/google-cloud-python [plan]
- → Monitor google-cloud-bigtable system tests as real-service tests are temporarily disabled googleapis/google-cloud-python [monitor]
References
- [1] fix(spanner): buffer returned rows in autocommit DML statements (#18152) googleapis/google-cloud-python
- [2] fix(ndb): use the single-argument generator.throw() signature (#18159) googleapis/google-cloud-python
- [3] fix!: Remove erroneous google/monitoring/dashboard clients (#18165) googleapis/google-cloud-python
- [4] v2.19.0 ↗ googleapis/python-genai
- [5] Update Bazel to v8.7.0. ↗ google/jax
- [6] Add support for slicing of dynamic shaped memref's including adding support for dynamic tile strides. google/jax