diff --git a/linux-ramdump-parser-v2/parsers/runqueue.py b/linux-ramdump-parser-v2/parsers/runqueue.py
index ed46664f6121248fa865f68d42788afc9fbd1998..41180b5435cef1309dd5687108539a1c39ae0f60 100644
--- a/linux-ramdump-parser-v2/parsers/runqueue.py
+++ b/linux-ramdump-parser-v2/parsers/runqueue.py
@@ -139,6 +139,7 @@ class RunQueues(RamParser):
             array_wsize = 4
             idx_size = 32
 
+        seen_nodes = set()
         for i in range(0, bitmap_range):
             bitmap = self.ramdump.read_word(array_addr + i * array_wsize)
             while True:
@@ -149,6 +150,9 @@ class RunQueues(RamParser):
                     queue_addr = self.ramdump.read_word(
                         array_addr + queue_offset + idx)
                     while queue_addr != array_addr + queue_offset + idx:
+                        if queue_addr in seen_nodes:
+                            break
+                        seen_nodes.add(queue_addr)
                         task_addr = queue_addr - rt_offset
                         self.print_task_state('pend', task_addr)
                         queue_addr = self.ramdump.read_word(queue_addr)