Actually, it seems that abort() never works properly. The cases in which I thought it worked were actually just caused by the build finishing.
It seems to me that it could never have worked, since there has always been a shell script in between the slave and sbuild (at least as far as I can see back in RF). abort() will attempt to and succeed in killing sbuild-package, but that will leave sbuild running. sbuild inherits sbuild-package's FDs, so processEnded isn't called until sbuild dies too.
If I alter sbuild-package to trap SIGTERM and forward it on to sbuild, abort() works fine!
Actually, it seems that abort() never works properly. The cases in which I thought it worked were actually just caused by the build finishing.
It seems to me that it could never have worked, since there has always been a shell script in between the slave and sbuild (at least as far as I can see back in RF). abort() will attempt to and succeed in killing sbuild-package, but that will leave sbuild running. sbuild inherits sbuild-package's FDs, so processEnded isn't called until sbuild dies too.
If I alter sbuild-package to trap SIGTERM and forward it on to sbuild, abort() works fine!