﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	field_blocks	field_dependson	field_seealso
874	Incorrect blocking chain printed by fibril deadlock detector	Jiri Svoboda	Jiri Svoboda	"I've found that the fibril mutex deadlock detector does not print the correct blocking chain. So I added a new 'deadlock' test to tester that demonstrates this.

{{{
 # tester deadlock
Creating fibril
F1: Lock M1
F1: Lock M1
F2: Lock M2
F2: Lock M1
F2: Lock M1
F1: Lock M2
Deadlock detected.
0x0000000070141ce0: 0x00000000701794e3()
0x0000000070141d20: 0x000000007016af44()
0x0000000070141d80: 0x000000007016b2d7()
0x0000000070141d90: 0x0000000000402400()
0x0000000070141dd0: 0x000000000040200e()
0x0000000070141e10: 0x000000007015c54b()
0x0000000070141e20: 0x00000000004083dc()
0x0000000070141e30: 0x000000000040834a()
-- end of stack trace --
Fibril 0x000000007018d3e0 waits for primitive 0x000000000040f460.
Primitive 0x000000000040f460 is owned by fibril 0x000000007018d3e0.
bdsh: Command failed (unexpectedly terminated)
/ # 
}}}

I am not sure why some messages are printed twice. Nevertheless the correct blocking chain is M1 -> F1 -> M2 -> F2 -> M1. But the detector says the cycle contains just one fibril and one lock.
"	defect	closed	minor	0.16.1	helenos/unspecified	mainline	fixed					
