fix: ensure publisher cleanup on error in submit_document

Resolves #871

The submit_document method creates a Publisher but doesn't wrap the
start/send calls in try/finally. If pub.send() raises, pub.stop() is
never called and the publisher leaks.

This matches the existing pattern in emit_document_provenance (line 345)
which already uses try/finally correctly.
This commit is contained in:
Baima (Hermes Agent) 2026-05-08 07:23:55 +08:00
parent a943c4d4b6
commit 5e835c575e

View file

@ -418,14 +418,15 @@ class Processor(AsyncProcessor):
self.pubsub, q, schema=schema self.pubsub, q, schema=schema
) )
await pub.start() try:
await pub.start()
# FIXME: Time wait kludge? # FIXME: Time wait kludge?
await asyncio.sleep(1) await asyncio.sleep(1)
await pub.send(None, doc) await pub.send(None, doc)
finally:
await pub.stop() await pub.stop()
logger.debug("Document submitted") logger.debug("Document submitted")