When executing many concurrent API requests to create targets/extents/targetextents the end result *can* be an invalid ctl.conf file that will not clean itself up without manual intervention.
Observe the following snippet of my config file after running many requests:
Notice the portal groups got written *inside* the target block. At best this leaves iscsi service unable to properly handle requests, at worst I *think* I've seen it crash the daemon before but that seems uncommon.
To semi correct the issue I've written crude scripts available here: https://github.com/democratic-csi/democratic-csi/tree/master/contrib
to run as background 'daemon' services on the server(s)