microcks / microcks/microcks-cli
Nil Pointer Dereference in Watcher Executor -> dereference panic.
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 52
- Forks
- 68
- Merge medio
- 6 h 54 min
- PR fusionados (30 d)
- 10
Descripción
Describe the bug
Diagram
sequenceDiagram
participant Watcher
participant Executor
participant Client as connectors.NewClient
Watcher->>Executor: TriggerImport(entry)
Executor->>Client: NewClient(*globalClientOpts)
Note over Client: Fails (e.g. invalid context)
Client-->>Executor: nil, err
Note over Executor: Logs error, but DOES NOT return!
Executor->>Executor: mc.UploadArtifact(entry.FilePath, entry.MainArtifact)
Note over Executor: Panic: nil pointer dereference (mc is nil)
Description
In pkg/watcher/executor.go, the TriggerImport function instantiates the Microcks client using connectors.NewClient. If this fails (e.g., due to an invalid context or server address), it prints an error message but continues execution instead of returning early. It subsequently calls mc.UploadArtifact(), causing a nil pointer dereference panic.
Impact
The watcher daemon crashes with a stack trace instead of handling the connection/context resolution failure gracefully.
Steps to Reproduce
- Configure a watch entry with an invalid or expired context.
- Modify the watched file to trigger an fsnotify event.
- The watch manager invokes
TriggerImport, which prints[ERROR] Cannot connect to Microcks client...and immediately panics with a segmentation fault.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Lee pkg/watcher/executor.go y comienza en TriggerImport, siguiendo la ruta de error de connectors.NewClient antes de que se llame a mc.UploadArtifact. Reproduce el problema con un context no válido o expirado y un cambio en un archivo observado; después, verifica que el watcher gestione el fallo del cliente sin un nil-pointer panic.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go
- Área
- cli
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Activo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 84/100