Skip to content

Commit ff0c6c0

Browse files
committed
Handle decoding outside of locking mechanism
1 parent 1133bcd commit ff0c6c0

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

ldclient/impl/datasystem/store.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,19 @@ def set_basis(self, collections: Collections):
9292
Initializes the store with a full set of data, replacing any existing data.
9393
"""
9494
try:
95-
self._lock.lock()
96-
9795
all_decoded = {}
9896
for kind in collections:
9997
collection = collections[kind]
10098
items_decoded = {}
10199
for key in collection:
102100
items_decoded[key] = kind.decode(collection[key])
103101
all_decoded[kind] = items_decoded
102+
except Exception as e:
103+
log.error("Failed decoding set_basis collection. Aborting", exc_info=e)
104+
return
104105

106+
try:
107+
self._lock.lock()
105108
self._items.clear()
106109
self._items.update(all_decoded)
107110
self._initialized = True

0 commit comments

Comments
 (0)