Top posting makes it hard for others to join the
conversation... See my comments inline.
On Monday, May 09, 2016 02:14:46 PM Robin Bobbitt wrote:
> We used the gerrit kill command.
>
> On Mon, May 9, 2016 at 1:48 PM, Martin Fick
<
mf...@codeaurora.org> wrote:
> > On Monday, May 09, 2016 10:33:56 AM Robin Bobbitt wrote:
> > > We have a custom GitReferenceUpdatedListener that adds
> > > tasks to the default work queue that post a payload to
> > > some external endpoints. This has been running without
> > > issue for a long time. Last week, one of our tasks got
> > > stuck in "running" indefinitely, and all of our other
> > > tasks backed up behind it. This morning, we killed
> > > most
> > > of the waiting tasks and then killed the running task,
> > > hoping that everything would become unstuck and get
> > > back
> > > to working.
> >
> > How did you kill them? Using OS tools such as kill, or
> > in the gerrit queue using gerrit ssh commands?
Since you did not explicitly kill the process, did it
actually terminate? Could the "blockage" have been your
hook? Have you done any testing/simulation to see if new
tasks are blocking when you run them outside of Gerrit?
FYI, hook tasks need to terminate AND close STDOUT and
STDERR for them to unblock. If a descendant process of the
initial hook is still holding either STDOUT or STDERR from
the initial hook process open, Gerrit will not consider the
hook terminated, and it will wait for them to be released
before proceeding to the next hook,