@@ -274,16 +274,24 @@ def _extract_loop(proc_id, queue, trap_dir, archive, options, reply_queue, logge
274274 # Syntax errors have already been handled in extractor.py
275275 reply_queue .put (("FAILURE" , unit , None ))
276276 except RecursionError as ex :
277- error = recursion_error_message (ex , unit )
278- diagnostics_writer .write (error )
279277 logger .error ("Failed to extract %s: %s" , unit , ex )
280278 logger .traceback (WARN )
279+ try :
280+ error = recursion_error_message (ex , unit )
281+ diagnostics_writer .write (error )
282+ except Exception as ex :
283+ logger .warning ("Failed to write diagnostics: %s" , ex )
284+ logger .traceback (WARN )
281285 reply_queue .put (("FAILURE" , unit , None ))
282286 except Exception as ex :
283- error = internal_error_message (ex , unit )
284- diagnostics_writer .write (error )
285287 logger .error ("Failed to extract %s: %s" , unit , ex )
286288 logger .traceback (WARN )
289+ try :
290+ error = internal_error_message (ex , unit )
291+ diagnostics_writer .write (error )
292+ except Exception as ex :
293+ logger .warning ("Failed to write diagnostics: %s" , ex )
294+ logger .traceback (WARN )
287295 reply_queue .put (("FAILURE" , unit , None ))
288296 else :
289297 reply_queue .put (("SUCCESS" , unit , None ))
0 commit comments