Repository navigation
fix(ollama): end the span when a chat call is interrupted or cancelled - #4029
Open
mayuriphad wants to merge 1 commit into
Open
mayuriphad wants to merge 1 commit into
mayuriphad wants to merge 1 commit into
Conversation
KeyboardInterrupt and asyncio.CancelledError derive from BaseException, so the except Exception around the wrapped call never ran and the span was never ended or exported. Catch BaseException and record it on the span. Fixes Arize-ai#4022 Signed-off-by: mayuriphad <mayuriphad656@gmail.com>
Contributor
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4022
Problem
The Ollama chat wrappers end the span only in
except Exceptionand after a successful response.KeyboardInterruptandasyncio.CancelledErrorderive fromBaseException, so when either interrupts an in-flightchat()call (Ctrl-C, a cancelled task,asyncio.wait_fortimeout, a client disconnect) the span is never ended or exported. Same pattern as #3968, fixed for OpenAI in #3971.Fix
Catch
BaseExceptionaround the wrapped call in both_ChatWrapperand_AsyncChatWrapper._record_exceptionalready acceptsBaseException, so the span gets status ERROR and the exception event, and the exception is re-raised unchanged.Tests
Added
test_chat_keyboard_interrupt_ends_spanandtest_async_chat_cancelled_ends_span. Both fail onmain(no finished span) and pass with this change. The other tests that don't need a recorded Ollama cassette still pass.