Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#2149 closed defect (fixed)

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 (10)

comment:1 Changed 8 years ago by dustin

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

comment:2 Changed 8 years 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 8 years 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 8 years 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 8 years 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 8 years 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 8 years 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 8 years ago by dustin

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

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

comment:9 Changed 7 years ago by Tom Prince

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

Allow MasterShellCommand? to be interrupted.

Fixes #2149.

Changeset: c6e3e2d20da60fd6da8985153bb66e24d89e38f1

comment:10 Changed 7 years ago by Tom Prince

Allow MasterShellCommand? to be interrupted.

Fixes #2149.

Changeset: c6e3e2d20da60fd6da8985153bb66e24d89e38f1

Note: See TracTickets for help on using tickets.