mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
csi: tolerate missing plugins on job delete (#12114)
If a plugin job fails before successfully fingerprinting the plugins, the plugin will not exist when we try to delete the job. Tolerate missing plugins.
This commit is contained in:
3
.changelog/12114.txt
Normal file
3
.changelog/12114.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
csi: Fixed a bug where purging a job with a missing plugin would fail
|
||||
```
|
||||
@@ -1460,7 +1460,9 @@ func (s *StateStore) deleteJobFromPlugins(index uint64, txn Txn, job *structs.Jo
|
||||
return fmt.Errorf("error getting plugin: %s, %v", x.pluginID, err)
|
||||
}
|
||||
if plug == nil {
|
||||
return fmt.Errorf("plugin missing: %s %v", x.pluginID, err)
|
||||
// plugin was never successfully registered or has been
|
||||
// GC'd out from under us
|
||||
continue
|
||||
}
|
||||
// only copy once, so we update the same plugin on each alloc
|
||||
plugins[x.pluginID] = plug.Copy()
|
||||
@@ -1484,8 +1486,10 @@ func (s *StateStore) deleteJobFromPlugins(index uint64, txn Txn, job *structs.Jo
|
||||
}
|
||||
}
|
||||
|
||||
if err = txn.Insert("index", &IndexEntry{"csi_plugins", index}); err != nil {
|
||||
return fmt.Errorf("index update failed: %v", err)
|
||||
if len(plugins) > 0 {
|
||||
if err = txn.Insert("index", &IndexEntry{"csi_plugins", index}); err != nil {
|
||||
return fmt.Errorf("index update failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user