@@ -526,41 +526,37 @@ void BufferOrch::doTask(Consumer &consumer)
526526 auto it = consumer.m_toSync .begin ();
527527 while (it != consumer.m_toSync .end ())
528528 {
529- KeyOpFieldsValuesTuple tuple = it->second ;
530- string map_type_name = consumer.m_consumer ->getTableName ();
531- if (m_buffer_type_maps.find (map_type_name) == m_buffer_type_maps.end ())
532- {
533- SWSS_LOG_ERROR (" Unrecognised qos table encountered:%s" , map_type_name.c_str ());
534- it = consumer.m_toSync .erase (it);
535- continue ;
536- }
529+ /* Make sure the handler is initialized for the task */
530+ auto map_type_name = consumer.m_consumer ->getTableName ();
537531 if (m_bufferHandlerMap.find (map_type_name) == m_bufferHandlerMap.end ())
538532 {
539533 SWSS_LOG_ERROR (" No handler for key:%s found." , map_type_name.c_str ());
540534 it = consumer.m_toSync .erase (it);
541535 continue ;
542536 }
543- task_process_status task_status = (this ->*(m_bufferHandlerMap[map_type_name]))(consumer);
537+
538+ auto task_status = (this ->*(m_bufferHandlerMap[map_type_name]))(consumer);
544539 switch (task_status)
545540 {
546- case task_process_status::task_success :
547- it = consumer.m_toSync .erase (it);
548- break ;
549- case task_process_status::task_invalid_entry:
550- SWSS_LOG_ERROR (" Invalid buffer task item was encountered, removing from queue." );
551- it = consumer.m_toSync .erase (it);
552- break ;
553- case task_process_status::task_failed:
554- SWSS_LOG_ERROR (" Processing buffer task item failed, exiting." );
555- return ;
556- case task_process_status::task_need_retry:
557- SWSS_LOG_INFO (" Processing buffer task item failed, will retry." );
558- it++;
559- break ;
560- default :
561- SWSS_LOG_ERROR (" Unknown task status: %d" , task_status);
562- it = consumer.m_toSync .erase (it);
563- break ;
541+ case task_process_status::task_success :
542+ it = consumer.m_toSync .erase (it);
543+ break ;
544+ case task_process_status::task_invalid_entry:
545+ SWSS_LOG_ERROR (" Failed to process invalid buffer task" );
546+ it = consumer.m_toSync .erase (it);
547+ break ;
548+ case task_process_status::task_failed:
549+ SWSS_LOG_ERROR (" Failed to process buffer task, drop it" );
550+ it = consumer.m_toSync .erase (it);
551+ return ;
552+ case task_process_status::task_need_retry:
553+ SWSS_LOG_INFO (" Failed to process buffer task, retry it" );
554+ it++;
555+ break ;
556+ default :
557+ SWSS_LOG_ERROR (" Invalid task status %d" , task_status);
558+ it = consumer.m_toSync .erase (it);
559+ break ;
564560 }
565561 }
566562}
0 commit comments