Bug #659

Thread dead lock in ActionManager.rb

Added by Krzysztof Pawlik about 8 years ago. Updated over 7 years ago.

Status:ClosedStart date:05/23/2011
Priority:HighDue date:
Assignee:Ruben S. Montero% Done:

0%

Category:Core & System
Target version:-
Resolution:worksforme Pull request:
Affected Versions:OpenNebula 3.0

Description

Hello,

It's possible for ActionManager threads to dead lock, periodic wake up (or `signalling') solves this. When deadlocked hosts will flip between INIT and MONITORING states until oned is restarted. Attached patch solves this by adding a new thread that every 5..15 seconds wakes up and signals, this has no side effects as if the queue is empty the thread wake-up will end up as a no-op anyway.

ActionManager.rb-wakeup.patch Magnifier (586 Bytes) Krzysztof Pawlik, 05/23/2011 11:49 AM

History

#1 Updated by Ruben S. Montero about 8 years ago

Hi,

Could you provide some details to reproduce this?

Thanks for the feedback and the patch!

Ruben

#2 Updated by Krzysztof Pawlik about 8 years ago

As with most race-conditions it was quite hard to reproduce, the original cause was that a call to signal() has been made before wait() was called on conditional. Such scenario occurs when the monitoring thread completes very quickly (for example dead host).

#3 Updated by Ruben S. Montero over 7 years ago

  • Status changed from New to Closed
  • Resolution set to worksforme
  • Affected Versions OpenNebula 3.0 added

Closing this one as we can not verify this issue. Even with dummy drivers that returns immediately...

Also available in: Atom PDF