[netsa-tools-discuss] segfaults in rwflowpack/rwflowappend

John Green John.Green at jisc.ac.uk
Thu Dec 4 03:00:34 EST 2014


On Wed, 2014-12-03 at 17:43 -0500, Michael Welsh Duggan wrote:
> We found it!  You were correct.  There is an extremely subtle bug
> involving the redblack code and multithreading.  The redblack
> implementation we are using uses a global null element (called RBNULL in
> the code).  This null element, startlingly, is not necessarily
> constant.  When deleting a node, the null element's color and up pointer
> can both change and be used.  If another thread is also deleting an
> element from a tree, they can both be modifying this null element.

Great news.   Ironically as part of my debugging I compiled Silk with
clang + thread sanitizer and it identified exactly the same issue.  It
didn't make much sense to me though (I hadn't spotted that RBNULL was
global) so I parked it whilst I investigated other possibilities.   

Thanks for investigating this.

John

Jisc is a registered charity (number 1149740) and a company limited by guarantee which is registered in England under Company No. 5747339, VAT No. GB 882 5529 90. Jisc’s registered office is: One Castlepark, Tower Hill, Bristol, BS2 0JA. T 0203 697 5800.
 
Jisc Collections and Janet Ltd. is a wholly owned Jisc subsidiary and a company limited by guarantee which is registered in England under Company No. number 2881024, VAT No. GB 614 9442 38. The registered office is: Lumen House, Library Avenue, Harwell, Didcot, Oxfordshire, OX11 0SG. T 01235 822200.



More information about the netsa-tools-discuss mailing list