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
|
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
|
// ensure socket removal so ephemeral directory is empty at revert
|
||||||
if err := os.Remove(p.session[1]); err != nil && !errors.Is(err, os.ErrNotExist) {
|
if err := os.Remove(p.session[1]); err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||||
errs[1] = err
|
errs[1] = err
|
||||||
|
@ -84,6 +84,7 @@ func (seal *outcome) Run(ctx context.Context, rs *fst.RunState) error {
|
|||||||
ec.Set(system.Process)
|
ec.Set(system.Process)
|
||||||
if states, err := c.Load(); err != nil {
|
if states, err := c.Load(); err != nil {
|
||||||
// revert per-process state here to limit damage
|
// revert per-process state here to limit damage
|
||||||
|
fmsg.Verbosef("cannot load state entries: %v", err)
|
||||||
return errors.Join(err, seal.sys.Revert(ec))
|
return errors.Join(err, seal.sys.Revert(ec))
|
||||||
} else {
|
} else {
|
||||||
if l := len(states); l == 0 {
|
if l := len(states); l == 0 {
|
||||||
|
Loading…
Reference in New Issue
Block a user