Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

InMemoryMemoryService loses sessionless memories when a session ID equals its fallback bucket name

Chiusa Adatta ai principianti
#7,711 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

@llalitkumarrr ci sta già lavorando.

Dal 25/10/2026.

  • #7752 di @tonmoy-y — chiusa senza merge
  • #7753 di @tonmoy-y — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia leggendo InMemoryMemoryService.add_events_to_memory() e add_session_to_memory(), poi confronta come ciascuno gestisce gli ID di sessione in google/adk/memory/in_memory_memory_service.py. Riproduci la collisione con la sequenza fornita e controlla i test esistenti del memory service. Il lavoro è completato quando l’aggiunta di una sessione il cui ID è __unknown_session_id__ preserva le memorie aggiunte senza un ID di sessione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Required Information

Describe the Bug:
InMemoryMemoryService.add_events_to_memory() maps an omitted session ID to the string __unknown_session_id__. InMemorySessionService also accepts that literal as an ordinary session ID. Passing that session to add_session_to_memory() replaces the same bucket, silently removing previously added sessionless memories.

Steps to Reproduce:

  1. Add an event without a session ID and confirm it is searchable.
  2. Create an empty session with ID __unknown_session_id__ through InMemorySessionService.
  3. Add that session to memory and search again using the code below.

Expected Behavior:
Adding an unrelated empty session should preserve existing sessionless memories, as it does with ordinary-session.

Observed Behavior:

ordinary-session: before=1, after=1
__unknown_session_id__: before=1, after=0

Environment Details:

  • ADK: source checkout of main at 12c7bed7661ccf942f0f6d3b62bed22a23ea0a85.
  • Desktop OS: macOS, arm64.
  • Python: 3.13.16.

Model Information:

  • LiteLLM: No.
  • Model: N/A; local memory/session services only.

Optional Information

Regression: Unknown; reproduced on current main.

Minimal Reproduction Code:

import asyncio
from google.adk.events import Event
from google.adk.memory.in_memory_memory_service import InMemoryMemoryService
from google.adk.sessions.in_memory_session_service import InMemorySessionService
from google.genai import types

async def run(session_id):
    memory = InMemoryMemoryService()
    await memory.add_events_to_memory(
        app_name="app", user_id="user",
        events=[Event(author="user", content=types.Content(
            parts=[types.Part(text="saffron")]))],
    )
    before = len((await memory.search_memory(
        app_name="app", user_id="user", query="saffron")).memories)
    session = await InMemorySessionService().create_session(
        app_name="app", user_id="user", session_id=session_id)
    await memory.add_session_to_memory(session)
    after = len((await memory.search_memory(
        app_name="app", user_id="user", query="saffron")).memories)
    print(f"{session_id}: before={before}, after={after}")

async def main():
    await run("ordinary-session")
    await run("__unknown_session_id__")

asyncio.run(main())

How often: Always for the sequence above.

Additional Context: This uses only public service methods, with no internal state mutation. The collision is within one app/user scope. The fallback bucket needs an identity that cannot alias a caller-provided session ID. No fix is included in this report.

Lingua principale
Python
Stelle
22k
Fork
4.2k
Merge medio
3g 21h
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di google/adk-python

Tutte le issue di google/adk-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.