I traced it a bit more today, and these were my findings:
- It does only happen when buildout shall be used with a different buildout version, and buildout upgrades the zc.buildout, and restarts itself.
- In zc.buildout.buildout._maybe_upgrade the new version is called, and this one correctly returns the exit code one because of a failure. _maybe_upgrade calls sys.exit() with the correct exit code
- The Exception bubbles up the stack until zc.buildout.buildout.main, here the exceptions SystemExit are being catched and ignored
I don't know why SystemExit gets swallowed here, I only know it happened then:
I traced it a bit more today, and these were my findings:
- It does only happen when buildout shall be used with a different buildout version, and buildout upgrades the zc.buildout, and restarts itself. buildout. _maybe_ upgrade the new version is called, and this one correctly returns the exit code one because of a failure. _maybe_upgrade calls sys.exit() with the correct exit code buildout. main, here the exceptions SystemExit are being catched and ignored
- In zc.buildout.
- The Exception bubbles up the stack until zc.buildout.
I don't know why SystemExit gets swallowed here, I only know it happened then:
http:// zope3.pov. lt/trac/ changeset/ 73082
As I don't understand the reasons good enough, I just post my findings here.