Skip to content

Commit 887442a

Browse files
committed
fix: correct iSCSI service reload return type (int, not bool)
TrueNAS service.control API returns a job ID (integer), but ReloadISCSIService was unmarshaling into a bool, causing every iSCSI target creation to fail the reload with "cannot unmarshal number into Go value of type bool". This made new targets not immediately discoverable, causing flaky iSCSI E2E tests.
1 parent 98402e5 commit 887442a

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

pkg/tnsapi/client.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2770,21 +2770,18 @@ func (c *Client) ReloadISCSIService(ctx context.Context) error {
27702770

27712771
// service.control(verb, service, options) is the documented API for managing services.
27722772
// For iSCSI, the service name is "iscsitarget" on TrueNAS Scale.
2773-
var result bool
2774-
err := c.Call(ctx, "service.control", []interface{}{"RELOAD", "iscsitarget"}, &result)
2773+
// The API returns a job ID (integer), not a boolean.
2774+
var jobID int
2775+
err := c.Call(ctx, "service.control", []interface{}{"RELOAD", "iscsitarget"}, &jobID)
27752776
if err != nil {
27762777
// If reload fails, try restart as fallback
27772778
klog.V(4).Infof("Service reload failed (%v), trying restart", err)
2778-
err = c.Call(ctx, "service.control", []interface{}{"RESTART", "iscsitarget"}, &result)
2779+
err = c.Call(ctx, "service.control", []interface{}{"RESTART", "iscsitarget"}, &jobID)
27792780
if err != nil {
27802781
return fmt.Errorf("failed to reload/restart iSCSI service: %w", err)
27812782
}
27822783
}
27832784

2784-
if !result {
2785-
klog.Warning("iSCSI service reload/restart returned false - service may not have reloaded properly")
2786-
}
2787-
2788-
klog.V(4).Info("iSCSI service reload completed")
2785+
klog.V(4).Infof("iSCSI service reload completed (job ID: %d)", jobID)
27892786
return nil
27902787
}

0 commit comments

Comments
 (0)