Skip to content

Tags: NVIDIA/OSMO

Tags

6.3.1

Toggle 6.3.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #1110 from NVIDIA/elookpotts/cherrypick-nextjs-6-3

fix: bump next.js compliance dependencies

6.3.1-prerelease-rc12

Toggle 6.3.1-prerelease-rc12's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #1110 from NVIDIA/elookpotts/cherrypick-nextjs-6-3

fix: bump next.js compliance dependencies

6.3.0

Toggle 6.3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Upgrade urllib3 to 2.7.0 (#1034)

Pin urllib3 directly in runtime and test requirements and refresh generated lockfiles.

Reason: GHSA-mf9v-mfxr-j63j

6.3.0-prerelease-rc11

Toggle 6.3.0-prerelease-rc11's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Upgrade urllib3 to 2.7.0 (#1034)

Pin urllib3 directly in runtime and test requirements and refresh generated lockfiles.

Reason: GHSA-mf9v-mfxr-j63j

6.3.0-prerelease-rc10

Toggle 6.3.0-prerelease-rc10's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
release notes: 6.3.0 (#1032)

6.3.0-prerelease-rc9

Toggle 6.3.0-prerelease-rc9's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
rsync: error on download when remote source does not exist (#1019)

* rsync: error on download when remote source does not exist

The gokrazy/rsync daemon exits 0 with zero files transferred when the
requested remote path doesn't exist on the task pod, so the CLI's
returncode check was the success branch — printing "Synced N files"
(N counted from rsync's verbose chatter, not real transfers) and
"Rsync download completed successfully" while leaving the local
destination empty.

After a successful rsync, compare destination contents against a
pre-transfer snapshot.  For sources without a trailing slash we look
for the basename in dst (correctly handles re-download of in-sync
files); for trailing-slash sources we check for any new entry.  Drop
the misleading "Synced N files" tail in _stream_progress.

Fixes NVBug 6176483 / OSMO-6380.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* rsync: rename dest_before -> dst_before, snapshot only for trailing-slash

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* rsync: address CodeRabbit S108 — neutral placeholder local_path in test

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

6.3.0-prerelease-rc8

Toggle 6.3.0-prerelease-rc8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Update distroless image (#1007)

6.3.0-prerelease-rc7

Toggle 6.3.0-prerelease-rc7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
rsync: fix ValueError 'Invalid file descriptor: -1' on download shutd…

…own (#987)

* rsync: fix ValueError 'Invalid file descriptor: -1' on download shutdown

Three layered fixes for the spurious shutdown error reported after a
successful rsync download:

1. rsync.py RsyncClient.stop(): remove self._sock.close(). Once
   asyncio.start_server(sock=sock) is called in run_tcp_with_sock, the
   event loop owns the socket registration. Closing the fd externally
   before server.close() runs causes _stop_serving() to call
   sock.fileno() and get -1.

2. port_forward.py run_tcp_with_sock: drop server.serve_forever() from
   first_completed. The server is already active inside `async with
   server`; serve_forever() is redundant there. first_completed cancels
   tasks it creates but never awaits them, so the serve_forever task was
   leaking to asyncio.run() shutdown where its CancelledError handler
   called server.close() on an already-closed socket.

3. port_forward.py run_tcp_with_sock: catch ValueError from
   server.close() → _stop_serving() when the socket fd is already -1.
   This defensive layer handles run_tcp_with_sock itself being leaked by
   its caller (_port_forward's first_completed), cancelled during
   asyncio.run() cleanup after _port_forward's finally block closed the
   socket.

Fixes NVBug 6164110 / OSMO-6361.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* rsync: strengthen shutdown fix and add unit tests

Follow-up to the initial fix:

- rsync.py RsyncClient.stop(): await task cancellation via
  asyncio.gather so the port-forward task's server.close() and socket
  cleanup fully complete before stop() returns. Also skip tasks that are
  already done or are the current task.

- port_forward.py run_tcp_with_sock: replace `async with server` with
  explicit try/finally so server.close() + wait_closed() are called
  under our control. Suppress ValueError only when sock.fileno() == -1
  (closed externally); re-raise for any other ValueError.

- Add test_port_forward.py with two cases: suppresses the shutdown
  ValueError when the socket is externally closed, and re-raises
  ValueError when the socket is still open.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* rsync: shorten stop() comment to one line

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* rsync: log non-cancellation errors from gather in stop()

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

v6.2-rc12

Toggle v6.2-rc12's commit message
Release candidate for 6.2

v6.2-rc11

Toggle v6.2-rc11's commit message
Release candidate for 6.2