@@ -323,10 +323,6 @@ def _oneloop(self):
323323 files = self ._switchboard .files ()
324324 filecnt = len (files )
325325
326- # Only log at debug level if we found files to process
327- if filecnt > 0 :
328- mailman_log ('debug' , 'RetryRunner._oneloop: Found %d files to process' , filecnt )
329-
330326 # Process each file
331327 for filebase in files :
332328 try :
@@ -335,41 +331,38 @@ def _oneloop(self):
335331 if msg is None :
336332 continue
337333
338- mailman_log ( 'info' , 'RetryRunner._oneloop: Successfully dequeued file %s' , filebase )
339-
340- # Process the message
341- try :
342- # Get the list name from the message data
343- listname = msgdata . get ( 'listname' , mm_cfg . MAILMAN_SITE_LIST )
334+ # Get the list name from the message data
335+ listname = msgdata . get ( 'listname' )
336+ if not listname :
337+ syslog ( 'error' , 'RetryRunner._oneloop: No listname in message data for file %s' , filebase )
338+ self . _shunt . enqueue ( msg , msgdata )
339+ continue
344340
345- # Process the message
346- result = self ._dispose (listname , msg , msgdata )
341+ # Open the list
342+ try :
343+ mlist = self ._open_list (listname )
344+ except Exception as e :
345+ self .log_error ('list_open_error' , str (e ), listname = listname )
346+ self ._shunt .enqueue (msg , msgdata )
347+ continue
347348
348- # If the message should be kept in the queue, requeue it
349+ # Process the message
350+ try :
351+ result = self ._dispose (mlist , msg , msgdata )
349352 if result :
350353 self ._switchboard .enqueue (msg , msgdata )
351- mailman_log ('info' , 'RetryRunner._oneloop: Message requeued for later processing: %s' , filebase )
352- else :
353- mailman_log ('info' , 'RetryRunner._oneloop: Message processing complete, moving to shunt queue %s (msgid: %s)' ,
354- filebase , msg .get ('message-id' , 'n/a' ))
355-
356354 except Exception as e :
357- mailman_log ('error' , 'RetryRunner._oneloop: Error processing message: %s\n %s' ,
358- str (e ), traceback .format_exc ())
359- # Move to shunt queue on error
360- self ._shunt .enqueue (msg , msgdata )
355+ self ._handle_error (e , msg = msg , mlist = mlist )
361356
362357 except Exception as e :
363- mailman_log ('error' , 'RetryRunner._oneloop: Error dequeuing file %s: %s\n %s' ,
364- filebase , str ( e ), traceback . format_exc ())
358+ syslog ('error' , 'RetryRunner._oneloop: Error dequeuing file %s: %s' , filebase , str ( e ))
359+ continue
365360
366- # Only log completion at debug level if we processed files
367- if filecnt > 0 :
368- mailman_log ('debug' , 'RetryRunner._oneloop: Loop complete, processed %d files' , filecnt )
369-
370361 except Exception as e :
371- mailman_log ('error' , 'RetryRunner._oneloop: Unexpected error in main loop: %s\n %s' ,
372- str (e ), traceback .format_exc ())
362+ syslog ('error' , 'RetryRunner._oneloop: Error in main loop: %s' , str (e ))
363+ return 0
364+
365+ return filecnt
373366
374367 def _snooze (self , filecnt ):
375368 # We always want to snooze, but check for stop flag periodically
0 commit comments