bhouse-nexthop commented on PR #14199:
URL: https://github.com/apache/cloudstack/pull/14199#issuecomment-6176976931

   @Damans227 you're right, out of the box this doesn't bound that wait. With 
both timeouts at 0, `CephUtil` leaves the librados options unset, and the 
command still runs on the agent request thread, so an `rbd_open` that never 
completes still parks it and the host's queue behind it.
   
   Leaving them at 0 was deliberate. A single value that fits every cluster is 
hard to pick, and a timeout that's too tight turns a slow but healthy operation 
during backfill or recovery into a failed deploy or snapshot. So I made it opt 
in and put a suggested starting point in `agent.properties` (60s osd / 30s mon).
   
   What does apply by default: the clone parent is now opened read only, so 
`rbd_open` no longer registers a header watch or sets up the exclusive lock. 
That is the kind of internal completion the stuck thread was waiting on. 
Cluster handles are released deterministically, and the silent failures (short 
reads, failed snapshot create/remove) are now reported. None of that guarantees 
the hang can't happen again, though. Only the timeouts bound it, and as the 
description says, even they may not reach every internal librbd wait.
   
   If you and the other reviewers would prefer non-zero defaults, I'm happy to 
switch to 60/30. I've also fixed the description, which overstated what happens 
without the timeouts set.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to