Would be difficult to fit into the same line because event names can get quite long. But yes before/after status message seems like the right place conceptually.
Maybe another section in Juju status would be useful?
"Operations in progress"? (hooks, actions)
or
"Stale operations"
> do we really expect an update-status hook implementation with these characteristics?
This is just an example - you may want to execute some binary in a child process even though it's update-status. For other events this is more important though.
Also if a process is in D state (uninterruptible sleep) for some reason you won't be able to kill it anyway. I am trying to explore generic cases.
> The executing state is no longer surfaced for the update-status hook
I see.
> I believe juju shouldn't allow their hooks go rogue :-)
I agree, let's figure out what works best without asking to make Juju track too much state.
It could be a goroutine per unit agent that tracks execution time as we only have one Uniter executing charm code per logical machine at a time. Such tracking would depend on clocks and has to be synchronized with retries of failed hooks which is additional complexity.
> any suggestion where this could fit?
Would be difficult to fit into the same line because event names can get quite long. But yes before/after status message seems like the right place conceptually.
Maybe another section in Juju status would be useful?
"Operations in progress"? (hooks, actions)
or
"Stale operations"
> do we really expect an update-status hook implementation with these characteristics?
This is just an example - you may want to execute some binary in a child process even though it's update-status. For other events this is more important though.
Also if a process is in D state (uninterruptible sleep) for some reason you won't be able to kill it anyway. I am trying to explore generic cases.
> The executing state is no longer surfaced for the update-status hook
I see.
> I believe juju shouldn't allow their hooks go rogue :-)
I agree, let's figure out what works best without asking to make Juju track too much state.
It could be a goroutine per unit agent that tracks execution time as we only have one Uniter executing charm code per logical machine at a time. Such tracking would depend on clocks and has to be synchronized with retries of failed hooks which is additional complexity.