dbus: filter exit errors caused by signal
Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
3f869f0bf2
commit
6cf6924fe5
@ -149,6 +149,15 @@ func (p *Proxy) Wait() error {
|
||||
errs[0] = nil
|
||||
}
|
||||
|
||||
var exitError *exec.ExitError
|
||||
if errors.As(errs[0], &exitError) &&
|
||||
exitError != nil &&
|
||||
exitError.Exited() &&
|
||||
exitError.ExitCode() == -1 {
|
||||
// exit due to signal
|
||||
errs[0] = nil
|
||||
}
|
||||
|
||||
// ensure socket removal so ephemeral directory is empty at revert
|
||||
if err := os.Remove(p.session[1]); err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||
errs[1] = err
|
||||
|
@ -84,6 +84,7 @@ func (seal *outcome) Run(ctx context.Context, rs *fst.RunState) error {
|
||||
ec.Set(system.Process)
|
||||
if states, err := c.Load(); err != nil {
|
||||
// revert per-process state here to limit damage
|
||||
fmsg.Verbosef("cannot load state entries: %v", err)
|
||||
return errors.Join(err, seal.sys.Revert(ec))
|
||||
} else {
|
||||
if l := len(states); l == 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user