Skip to content

Commit a321180

Browse files
committed
Iterate over a copy of keys when moving fields in the logging event
This prevents a "dictionary changed size during iteration" exception because before we iterated over the dictionary while modifying its contents which is never a good idea. Closes #2.
1 parent 321a99a commit a321180

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

logstash_async/formatter.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,9 @@ def _move_extra_record_fields_to_prefix(self, message):
191191
return # early out if no prefix is configured
192192

193193
field_skip_list = LOGSTASH_MESSAGE_FIELD_LIST + [self._extra_prefix]
194-
for key, value in message.items():
194+
for key in list(message):
195195
if key not in field_skip_list:
196-
message[self._extra_prefix][key] = value
197-
del message[key]
196+
message[self._extra_prefix][key] = message.pop(key)
198197

199198
# ----------------------------------------------------------------------
200199
def _serialize(self, message):

0 commit comments

Comments
 (0)