Ticket #2149 (closed defect: fixed)

Opened 18 months ago

Last modified 12 months ago

MasterShellCommand cannot be interrupted

Reported by: pwp Owned by:
Priority: major Milestone: 0.8.+
Version: 0.8.4p2 Keywords:
Cc: tom.prince@…

Description

Stop build button cannot kill dependent schedule sched1. Even after kill the related processes in buildmaster, the buildbot still show sched1 as building.

sched1 = Dependent(upstream=sched,

name="test", builderNames=test?)

cschedulers?.append(sched1)

Change History

comment:1 Changed 17 months ago by dustin

  • Keywords kill dependent schedule removed
  • Milestone changed from undecided to 0.8.6

comment:2 Changed 16 months ago by tom.prince

  • Cc tom.prince@… added
  • Milestone changed from 0.8.6 to undecided

I am not entirely sure what you are expecting to happens vs. what is actually happening.

comment:3 Changed 16 months ago by pwp

Say there is a scheduler called sched, and then create another dependent scheduler sched1 sched1 = Dependent(upstream=sched,

name="test", builderNames=test?)

cschedulers.append(sched1)

If sched1 is calling cmd1 underneath, pressing Stop build button cannot kill dependent schedule cmd1 and sched1.

comment:4 Changed 16 months ago by dustin

OK, here's what I did to try to replicate:

c['schedulers'].append(ForceScheduler(
                            name="force",
                            builderNames=["builder"]))
c['schedulers'].append(dependent.Dependent(name="dep",
                                builderNames=[ 'builder2', ],
                                upstream=c['schedulers'][-1]))

I then forced a build on 'builder'. The dependent correctly triggered a build on 'builder2'. I hit the "stop build" there, and the build stopped.

I'm confused by your replication recipe -- schedulers don't call commands, and the "Stop Build" button doesn't kill schedulers (or "schedules", which isn't a concept in Buildbot).

comment:5 Changed 16 months ago by pwp

Would multiple-step builder make a difference here? Our dependent builder has 10 steps. We always wanted to kill a middle step which failed.

comment:6 Changed 16 months ago by dustin

It shouldn't make a difference. You still haven't told me precisely what you're seeing, so it's hard to say.

comment:7 Changed 16 months ago by pwp

When I click the stop button, nothing happened. Everything is running as usual. I can click the button as many times as I want. BTW, the builder is running in buildmaster by using MasterShellCommand?() But if I go to buildmaster to kill (without -9, just kill cmd) the process, buildbot can show the builder as an exception.

comment:8 Changed 16 months ago by dustin

  • Summary changed from "Stop build" button cannot kill dependent schedule to MasterShellCommand cannot be interrupted
  • Milestone changed from undecided to 0.8.+

Ah! I suspect you've incidentally mentioned what is actually the culprit here.

comment:9 Changed 12 months ago by Tom Prince

  • Status changed from new to closed
  • Resolution set to fixed

Allow MasterShellCommand? to be interrupted.

Fixes #2149.

Changeset: c6e3e2d20da60fd6da8985153bb66e24d89e38f1

comment:10 Changed 12 months ago by Tom Prince

Allow MasterShellCommand? to be interrupted.

Fixes #2149.

Changeset: c6e3e2d20da60fd6da8985153bb66e24d89e38f1

Note: See TracTickets for help on using tickets.