Skip to content

fix(server/mcp): guard nil dereference in sseManager.get#2557

Merged
duwenxin99 merged 2 commits intogoogleapis:mainfrom
marlonbarreto-git:fix-sse-manager-nil-deref
Mar 2, 2026
Merged

fix(server/mcp): guard nil dereference in sseManager.get#2557
duwenxin99 merged 2 commits intogoogleapis:mainfrom
marlonbarreto-git:fix-sse-manager-nil-deref

Conversation

@marlonbarreto-git
Copy link
Copy Markdown
Contributor

Description

sseManager.get() unconditionally accesses session.lastActive after a map lookup, even when the session ID doesn't exist. Since the zero value for a *sseSession pointer is nil, this causes a nil pointer dereference panic at runtime.

This can happen when a client sends a request with a stale or invalid sessionId query parameter — for example, after a network reconnection or if a session was cleaned up by cleanupRoutine.

Changes

Add an ok guard before accessing session.lastActive:

session, ok := m.sseSessions[id]
if ok {
    session.lastActive = time.Now()
}

Test

Added TestSseManagerGetNonExistentSession that calls get() with a non-existent ID and verifies it returns nil, false without panicking.

Fixes #2548

@marlonbarreto-git marlonbarreto-git requested a review from a team as a code owner February 24, 2026 16:42
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @marlonbarreto-git, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical bug where the SSE manager could panic due to a nil pointer dereference when attempting to retrieve a non-existent or stale session. The fix ensures robust handling of invalid session IDs, improving the stability of the server's SSE functionality. A new test case has been introduced to validate this behavior.

Highlights

  • Nil Dereference Fix: Implemented a guard in sseManager.get() to prevent a nil pointer dereference panic when a non-existent or stale session ID is provided, ensuring session.lastActive is only accessed if the session exists.
  • New Test Case: Added TestSseManagerGetNonExistentSession to specifically verify that the get() method correctly handles requests for non-existent sessions by returning nil, false without panicking.
Changelog
  • internal/server/mcp.go
    • Added a conditional check (if ok) before accessing session.lastActive to prevent panics when sseSessions[id] returns a nil session.
  • internal/server/mcp_test.go
    • Introduced TestSseManagerGetNonExistentSession to confirm that sseManager.get returns nil, false and does not panic for IDs not present in the map.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@google-cla
Copy link
Copy Markdown

google-cla bot commented Feb 24, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively addresses a critical nil pointer dereference issue in the sseManager.get() method by adding a necessary ok guard before accessing session.lastActive. The accompanying test case, TestSseManagerGetNonExistentSession, thoroughly validates the fix, ensuring that the function handles non-existent session IDs gracefully without panicking and returns the expected nil, false.

@marlonbarreto-git
Copy link
Copy Markdown
Contributor Author

@anubhav756 this PR is ready for review — single commit, CLA signed, conventional commit format.

Could you please trigger the CI by applying the tests: run label or commenting /gcbrun? As an external contributor I can't trigger the Cloud Build checks myself.

All tests pass locally:

$ go test ./internal/server/... -v -run TestSseManager
=== RUN   TestSseManagerGetNonExistentSession
--- PASS: TestSseManagerGetNonExistentSession (0.00s)
PASS

@marlonbarreto-git
Copy link
Copy Markdown
Contributor Author

Friendly ping @anubhav756 — both this PR and #2558 are ready for review (single commit each, CLA signed, conventional commits). The only blocker is the integration test which needs a maintainer to trigger (/gcbrun or tests: run label). Happy to address any feedback!

@marlonbarreto-git
Copy link
Copy Markdown
Contributor Author

Hey @duwenxin99, I see you've been on a roll this week with the repo — any chance you could spare a few minutes to glance at this one and #2558? They're both pretty small and self-contained (nil deref guard and a defer fix). Main thing blocking CI is a /gcbrun trigger since I can't kick that off as an external contributor. Thanks!

@averikitsch
Copy link
Copy Markdown
Contributor

/gcbrun

@averikitsch averikitsch added the tests: run Label to trigger Github Action tests. label Feb 27, 2026
@github-actions github-actions bot removed the tests: run Label to trigger Github Action tests. label Feb 27, 2026
@averikitsch averikitsch added the release candidate Use label to signal PR should be included in the next release. label Feb 27, 2026
When a client requests with an unknown session ID, sseManager.get()
returns the zero value (nil) from the map lookup but unconditionally
accesses session.lastActive, causing a nil pointer dereference panic.

Add an ok-check before updating lastActive.

Fixes googleapis#2548
@marlonbarreto-git marlonbarreto-git force-pushed the fix-sse-manager-nil-deref branch from 7d4ce21 to 50381b0 Compare February 27, 2026 23:21
@duwenxin99
Copy link
Copy Markdown
Contributor

/gcbrun

@duwenxin99 duwenxin99 added the tests: run Label to trigger Github Action tests. label Mar 2, 2026
@duwenxin99 duwenxin99 enabled auto-merge (squash) March 2, 2026 01:20
@github-actions github-actions bot removed the tests: run Label to trigger Github Action tests. label Mar 2, 2026
@duwenxin99 duwenxin99 merged commit e534196 into googleapis:main Mar 2, 2026
16 checks passed
AjmeraParth132 pushed a commit to AjmeraParth132/genai-toolbox that referenced this pull request Mar 2, 2026
…2557)

## Description

`sseManager.get()` unconditionally accesses `session.lastActive` after a
map lookup, even when the session ID doesn't exist. Since the zero value
for a `*sseSession` pointer is `nil`, this causes a nil pointer
dereference panic at runtime.

This can happen when a client sends a request with a stale or invalid
`sessionId` query parameter — for example, after a network reconnection
or if a session was cleaned up by `cleanupRoutine`.

## Changes

Add an `ok` guard before accessing `session.lastActive`:

```go
session, ok := m.sseSessions[id]
if ok {
    session.lastActive = time.Now()
}
```

## Test

Added `TestSseManagerGetNonExistentSession` that calls `get()` with a
non-existent ID and verifies it returns `nil, false` without panicking.

Fixes googleapis#2548

Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
duwenxin99 added a commit that referenced this pull request Mar 2, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([#2466](#2466))
([fcaac9b](fcaac9b))
* Added basic template for sdks doc migrate
([#1961](#1961))
([87f2eaf](87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](#2407))
([cc05e57](cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](#2477))
([57b77bc](57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](#2432))
([d6af290](d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](#2522))
([e01139a](e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](#2488))
([0036d8c](0036d8c))
* **ui:** Make tool list panel resizable
([#2253](#2253))
([276cf60](276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](#2540))
([04dd2a7](04dd2a7))
* Deflake alloydb omni
([#2431](#2431))
([62b8309](62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](#2418))
([4d44abb](4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](#2426))
([36edfd3](36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](#2519))
([d5e9512](d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](#2323))
([72146a4](72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](#2557))
([e534196](e534196)),
closes [#2548](#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](#2377))
([8a96fb1](8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](#2521))
([7041e79](7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](#2597))
([ac11f5a](ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
github-actions bot pushed a commit that referenced this pull request Mar 2, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.28.0](v0.27.0...v0.28.0)
(2026-03-02)

### Features

* Add polling system to dynamic reloading
([#2466](#2466))
([fcaac9b](fcaac9b))
* Added basic template for sdks doc migrate
([#1961](#1961))
([87f2eaf](87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](#2407))
([cc05e57](cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](#2477))
([57b77bc](57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](#2432))
([d6af290](d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](#2522))
([e01139a](e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](#2488))
([0036d8c](0036d8c))
* **ui:** Make tool list panel resizable
([#2253](#2253))
([276cf60](276cf60))

### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](#2540))
([04dd2a7](04dd2a7))
* Deflake alloydb omni
([#2431](#2431))
([62b8309](62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](#2418))
([4d44abb](4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](#2426))
([36edfd3](36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](#2519))
([d5e9512](d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](#2323))
([72146a4](72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](#2557))
([e534196](e534196)),
closes [#2548](#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](#2377))
([8a96fb1](8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](#2521))
([7041e79](7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](#2597))
([ac11f5a](ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 81253a0
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 3, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)

### Features

* Add polling system to dynamic reloading
([googleapis#2466](googleapis#2466))
([fcaac9b](googleapis@fcaac9b))
* Added basic template for sdks doc migrate
([googleapis#1961](googleapis#1961))
([87f2eaf](googleapis@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([googleapis#2407](googleapis#2407))
([cc05e57](googleapis@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([googleapis#2477](googleapis#2477))
([57b77bc](googleapis@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([googleapis#2432](googleapis#2432))
([d6af290](googleapis@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([googleapis#2522](googleapis#2522))
([e01139a](googleapis@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([googleapis#2488](googleapis#2488))
([0036d8c](googleapis@0036d8c))
* **ui:** Make tool list panel resizable
([googleapis#2253](googleapis#2253))
([276cf60](googleapis@276cf60))

### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([googleapis#2540](googleapis#2540))
([04dd2a7](googleapis@04dd2a7))
* Deflake alloydb omni
([googleapis#2431](googleapis#2431))
([62b8309](googleapis@62b8309))
* **docs/adk:** Resolve dependency duplication
([googleapis#2418](googleapis#2418))
([4d44abb](googleapis@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([googleapis#2426](googleapis#2426))
([36edfd3](googleapis@36edfd3))
* Enforce required validation for explicit null parameter values
([googleapis#2519](googleapis#2519))
([d5e9512](googleapis@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([googleapis#2323](googleapis#2323))
([72146a4](googleapis@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([googleapis#2557](googleapis#2557))
([e534196](googleapis@e534196)),
closes [googleapis#2548](googleapis#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([googleapis#2377](googleapis#2377))
([8a96fb1](googleapis@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([googleapis#2521](googleapis#2521))
([7041e79](googleapis@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([googleapis#2597](googleapis#2597))
([ac11f5a](googleapis@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 81253a0
@marlonbarreto-git marlonbarreto-git deleted the fix-sse-manager-nil-deref branch March 5, 2026 03:40
@gemini-code-assist gemini-code-assist bot mentioned this pull request Mar 10, 2026
6 tasks
NightStack15 added a commit to NightStack15/googleapis-_-genai-toolbox that referenced this pull request Mar 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([#2466](googleapis/mcp-toolbox#2466))
([fcaac9b](googleapis/mcp-toolbox@fcaac9b))
* Added basic template for sdks doc migrate
([#1961](googleapis/mcp-toolbox#1961))
([87f2eaf](googleapis/mcp-toolbox@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](googleapis/mcp-toolbox#2407))
([cc05e57](googleapis/mcp-toolbox@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](googleapis/mcp-toolbox#2477))
([57b77bc](googleapis/mcp-toolbox@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](googleapis/mcp-toolbox#2432))
([d6af290](googleapis/mcp-toolbox@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](googleapis/mcp-toolbox#2522))
([e01139a](googleapis/mcp-toolbox@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](googleapis/mcp-toolbox#2488))
([0036d8c](googleapis/mcp-toolbox@0036d8c))
* **ui:** Make tool list panel resizable
([#2253](googleapis/mcp-toolbox#2253))
([276cf60](googleapis/mcp-toolbox@276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](googleapis/mcp-toolbox#2540))
([04dd2a7](googleapis/mcp-toolbox@04dd2a7))
* Deflake alloydb omni
([#2431](googleapis/mcp-toolbox#2431))
([62b8309](googleapis/mcp-toolbox@62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](googleapis/mcp-toolbox#2418))
([4d44abb](googleapis/mcp-toolbox@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](googleapis/mcp-toolbox#2426))
([36edfd3](googleapis/mcp-toolbox@36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](googleapis/mcp-toolbox#2519))
([d5e9512](googleapis/mcp-toolbox@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](googleapis/mcp-toolbox#2323))
([72146a4](googleapis/mcp-toolbox@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](googleapis/mcp-toolbox#2557))
([e534196](googleapis/mcp-toolbox@e534196)),
closes [#2548](googleapis/mcp-toolbox#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](googleapis/mcp-toolbox#2377))
([8a96fb1](googleapis/mcp-toolbox@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](googleapis/mcp-toolbox#2521))
([7041e79](googleapis/mcp-toolbox@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](googleapis/mcp-toolbox#2597))
([ac11f5a](googleapis/mcp-toolbox@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
NirajNandre pushed a commit to NirajNandre/genai-toolbox-fork that referenced this pull request Mar 24, 2026
…2557)

## Description

`sseManager.get()` unconditionally accesses `session.lastActive` after a
map lookup, even when the session ID doesn't exist. Since the zero value
for a `*sseSession` pointer is `nil`, this causes a nil pointer
dereference panic at runtime.

This can happen when a client sends a request with a stale or invalid
`sessionId` query parameter — for example, after a network reconnection
or if a session was cleaned up by `cleanupRoutine`.

## Changes

Add an `ok` guard before accessing `session.lastActive`:

```go
session, ok := m.sseSessions[id]
if ok {
    session.lastActive = time.Now()
}
```

## Test

Added `TestSseManagerGetNonExistentSession` that calls `get()` with a
non-existent ID and verifies it returns `nil, false` without panicking.

Fixes googleapis#2548

Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
NirajNandre pushed a commit to NirajNandre/genai-toolbox-fork that referenced this pull request Mar 24, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([googleapis#2466](googleapis#2466))
([fcaac9b](googleapis@fcaac9b))
* Added basic template for sdks doc migrate
([googleapis#1961](googleapis#1961))
([87f2eaf](googleapis@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([googleapis#2407](googleapis#2407))
([cc05e57](googleapis@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([googleapis#2477](googleapis#2477))
([57b77bc](googleapis@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([googleapis#2432](googleapis#2432))
([d6af290](googleapis@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([googleapis#2522](googleapis#2522))
([e01139a](googleapis@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([googleapis#2488](googleapis#2488))
([0036d8c](googleapis@0036d8c))
* **ui:** Make tool list panel resizable
([googleapis#2253](googleapis#2253))
([276cf60](googleapis@276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([googleapis#2540](googleapis#2540))
([04dd2a7](googleapis@04dd2a7))
* Deflake alloydb omni
([googleapis#2431](googleapis#2431))
([62b8309](googleapis@62b8309))
* **docs/adk:** Resolve dependency duplication
([googleapis#2418](googleapis#2418))
([4d44abb](googleapis@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([googleapis#2426](googleapis#2426))
([36edfd3](googleapis@36edfd3))
* Enforce required validation for explicit null parameter values
([googleapis#2519](googleapis#2519))
([d5e9512](googleapis@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([googleapis#2323](googleapis#2323))
([72146a4](googleapis@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([googleapis#2557](googleapis#2557))
([e534196](googleapis@e534196)),
closes [googleapis#2548](googleapis#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([googleapis#2377](googleapis#2377))
([8a96fb1](googleapis@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([googleapis#2521](googleapis#2521))
([7041e79](googleapis@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([googleapis#2597](googleapis#2597))
([ac11f5a](googleapis@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release candidate Use label to signal PR should be included in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: sseManager.get() dereferences nil session pointer — panics on unknown sessionId

4 participants