Skip to content

אינדקס ה-TTL של push_events נבנה בלי בדיקת התוצאה — כשל שלו לא ייראה, והתור יגדל בלי גבול #3505

Description

@amirbiron

עלה בעבודה על PR #3502 (כבר נמצא בסקירה על התוכנית). מחוץ לתחום שלו, ולכן לא תוקן שם.

הבעיה במשפט אחד

_create_indexes בונה את שני האינדקסים של push_events, כולל ה-TTL שמנקה את התור, ומתעלם מהתוצאה של safe_create_index. safe_create_index לעולם אינו זורק: כשל חוזר כ-False (דפוס K11). כלומר אם ה-TTL לא נבנה, אף אחד לא יידע.

מה נבדק (main, 928addc)

מה זה עושה בפועל

היום כנראה כלום, כי האינדקס קיים. הבעיה היא ביום שהבנייה תיכשל (התנגשות עם אינדקס קיים על created_at שה-enforce לא מצליח ליישר, הרשאות, מסד חדש): התור יגדל בלי גבול, והסימן היחיד יהיה שורת warn כללית בעלייה.

כיוון לתיקון (לא החלטה — לדיון)

  1. מפרט אחד לאינדקסים של push_events, עם required לאינדקס ה-TTL, כמו file_deletion.py ו-mcp_uploads.py (feat(mcp): העלאת תוכן ארוך בלי לעבור דרך המודל — PUT /api/agent/upload ו-upload_id #3502).
  2. בדיקת התוצאה, ואירוע ברמת error (db_push_events_ttl_index_missing או דומה), עם שורה ב-docs/observability/events_catalog.rst.
  3. אולי גם ב-/admin/verify-indexes, עם ttl_index.is_ttl_index (נכנס ב-feat(mcp): העלאת תוכן ארוך בלי לעבור דרך המודל — PUT /api/agent/upload ו-upload_id #3502), כמו ה-TTL של סל המיחזור.
  4. כדי שה-TTL הבא לא יחזור על זה: טסט מבני (AST) על database/manager.py, שבודק שכל קריאה ל-safe_create_index עם expire_after_seconds= אינה משפט-ביטוי שהערך שלו נזרק.
  5. טסט שנופל היום: safe_create_index שמחזיר False ל-push_events_ttl ← אירוע ברמת error.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions