Skip to content

Commit

Permalink
fix(api): error inserting UpdateSpawnErrorWorkerModel with UTF8 0x00 (#…
Browse files Browse the repository at this point in the history
…4072)

* fix(api): error inserting UpdateSpawnErrorWorkerModel whith UTF8 0x00

close #4055

* Update model.go
  • Loading branch information
fsamin authored and richardlt committed Mar 25, 2019
1 parent 8cb106b commit b5ac2ad
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
5 changes: 5 additions & 0 deletions engine/api/worker/model.go
Expand Up @@ -426,6 +426,11 @@ func updateAllToCheckRegistration(db gorp.SqlExecutor) error {

// UpdateSpawnErrorWorkerModel updates worker model error registration
func UpdateSpawnErrorWorkerModel(db gorp.SqlExecutor, modelID int64, spawnError sdk.SpawnErrorForm) error {
// some times when the docker container fails to start, the docker logs is not empty but only contains utf8 null char
if spawnError.Error == string([]byte{0x00}) {
spawnError.Error = ""
}

query := `UPDATE worker_model SET nb_spawn_err=nb_spawn_err+1, last_spawn_err=$3, last_spawn_err_log=$4, date_last_spawn_err=$2 WHERE id = $1`
res, err := db.Exec(query, modelID, time.Now(), spawnError.Error, spawnError.Logs)
if err != nil {
Expand Down
4 changes: 4 additions & 0 deletions engine/api/worker_model.go
Expand Up @@ -168,6 +168,10 @@ func (api *API) spawnErrorWorkerModelHandler() service.Handler {
return err
}

if spawnErrorForm.Error == "" && len(spawnErrorForm.Logs) == 0 {
return nil
}

if err := worker.UpdateSpawnErrorWorkerModel(tx, model.ID, spawnErrorForm); err != nil {
return sdk.WrapError(err, "cannot update spawn error on worker model")
}
Expand Down

0 comments on commit b5ac2ad

Please sign in to comment.