From acbecdc5a7ba972b020f25438f16deecf92f467c Mon Sep 17 00:00:00 2001 From: SahilYadav-op Date: Sat, 9 May 2026 17:14:41 +0530 Subject: [PATCH] fix: resolve publisher resource leak and field parse validation --- trustgraph-base/trustgraph/objects/field.py | 6 +++--- trustgraph-flow/trustgraph/librarian/service.py | 13 +++++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/trustgraph-base/trustgraph/objects/field.py b/trustgraph-base/trustgraph/objects/field.py index e4d84991..84db32aa 100644 --- a/trustgraph-base/trustgraph/objects/field.py +++ b/trustgraph-base/trustgraph/objects/field.py @@ -29,8 +29,8 @@ class Field: parts = defn.split(":") - if len(parts) == 0: - raise RuntimeError("Field definition cannot be empty") + if len(parts) > 5: + raise RuntimeError("Too many fields in definition") if len(parts) == 1: parts.append("string") if len(parts) == 2: parts.append("0") @@ -43,7 +43,7 @@ class Field: try: type = FieldType[type.upper()] - except: + except KeyError: raise RuntimeError(f"Field type {type} is not known") pri = True if pri == "pri" else False diff --git a/trustgraph-flow/trustgraph/librarian/service.py b/trustgraph-flow/trustgraph/librarian/service.py index c24a5fe8..0ab04ec4 100755 --- a/trustgraph-flow/trustgraph/librarian/service.py +++ b/trustgraph-flow/trustgraph/librarian/service.py @@ -418,14 +418,11 @@ class Processor(AsyncProcessor): self.pubsub, q, schema=schema ) - await pub.start() - - # FIXME: Time wait kludge? - await asyncio.sleep(1) - - await pub.send(None, doc) - - await pub.stop() + try: + await pub.start() + await pub.send(None, doc) + finally: + await pub.stop() logger.debug("Document submitted")