Do not insert already sleeping tbb task back into sleeping list
During testing, it was found that tbb sleeping threads singly linked
list was corrupted and had become circular. This seemingly caused
my_slack count to get permanently stuck at -1, as the sleeping list
traversal would potentially never end.
During testing, using a specific assert, it was confirmed that duplicate
insertion did happen.
Fixed it by modifying the sleeing threads singly linked list into a
doubly linked list and then making sure that a thread if already in
the list is never prepended back as the head of the list.
Also take commit db50e81685290df3da491b31e51d0c5a20c63c0f to fix build with
newer TBB.
Reviewed: https:/ /review. opencontrail. org/47319 github. com/Juniper/ contrail- controller/ commit/ d3512f407a90f9d f038d36e5ce8f9f 4ba80f70e5
Committed: http://
Submitter: Abhay Joshi (<email address hidden>)
Branch: R3.2
commit d3512f407a90f9d f038d36e5ce8f9f 4ba80f70e5
Author: Ananth Suryanarayana <email address hidden>
Date: Mon Nov 26 11:21:41 2018 -0800
Do not insert already sleeping tbb task back into sleeping list
During testing, it was found that tbb sleeping threads singly linked
list was corrupted and had become circular. This seemingly caused
my_slack count to get permanently stuck at -1, as the sleeping list
traversal would potentially never end.
During testing, using a specific assert, it was confirmed that duplicate
insertion did happen.
Fixed it by modifying the sleeing threads singly linked list into a
doubly linked list and then making sure that a thread if already in
the list is never prepended back as the head of the list.
Also take commit db50e81685290df 3da491b31e51d0c 5a20c63c0f to fix build with
newer TBB.
https:/ /github. com/01org/ tbb/issues/ 86
Change-Id: I83a7d267d4558c 02715c675db5fc0 8f58f1208e2 db732b191503d07 47e4b0ff229
Depends-On: I79bcd7192ea7c7
Closes-Bug: #1684993