$ the-wire · showcase
Spanner deadlock fixed, JAX 0.11.2 adds minmax and log2
By RepoJournal · Filed · About Google · Composed from the cited sources · methodology
A latent Spanner transaction lock leak became an active deadlock when async/sync parity returned to snapshot.py, and JAX v0.11.2 lands new primitives alongside a libtpu pin bump.
fix(spanner): release transaction lock if inline begin fails googleapis/google-cloud-python
execute_update() and batch_update() acquire self._lock while waiting on an inline begin when transaction_id is None; if that request errored, the lock was never released. The bug was latent in _async/transaction.py until async/sync parity was restored in snapshot.py, where reintroducing _wait_for_transaction_begin() made later queries in the same transaction block on the held lock. Upgrade to g...
JAX v0.11.2 google/jax
jax.numpy.minmax returns both the minimum and maximum of an array, matching NumPy 2.3+, and log2 is now a first-class primitive: jax.lax.log2 and jax.lax.log2_p, with jnp.log2 lowering through it. jax.lax.one_minus_square computes 1 - x^2 accurately near +/- 1 and gives accurate derivatives near 0, and jax.export gains symbolic_dim_boun.
[Pallas/Mosaic GPU] Add a `plgpu.store` API. google/jax
plgpu.store(dst, value, *, optimized) is the write-side counterpart to plgpu.load, where optimized controls whether a conflict-free transfer is required for SMEM. The stated intent is to eventually remove swap's implicit downgrade behavior so callers choose explicitly; for now all GMEM transfers are allowed to be unoptimized.
Bump libtpu pin to v0.0.48. google/jax
JAX's TPU backend pin moves to libtpu v0.0.48, which governs the libtpu version installed alongside this release.
Add a batched version of jax.copy_to_host_async. google/jax
A batched _batched_copy_to_host_async splits arrays into single-device arrays and copies each separately, unchanged from today's jax.copy_to_host_async behavior, as the first step toward letting IFRT implementations provide a more efficient path. Meanwhile the rest of the day was routine: google-cloud-compute v1.54.0 and v1beta v0.12.6, devicestreaming v0.5.1, and admanager v0.10.5 all regenera...
Action items
- → Upgrade google-cloud-spanner to the release containing the inline-begin lock fix googleapis/google-cloud-python [plan]