Wow, this is a huge one for the classical storage part of oA.
At the moment, the backend will write everything in the database, without checking that much. Basically, a new kernel process is started which will execute the system command, e.g. creating volumes, deleting volumes.
No one checks, if this background process completes successfully.
No one waits for these processes.
No one tells the UI, something is running.
So, what will happen, if a volume creation fails? Nothing
But, the volume is added to the database!
And, the backend will run into errors constantly afterwards, thus the only cure is to recreate the database.
Also, as the actual volume creation is done in the background, our CI will constantly fail at random tests. Of cause, increasing the sleep time for some CI tests will decrease the likelihood of test failures, but this is of course not a real fix.
Thus we need to fix the software architecture here.
And yes, using the task queue would fix this.
This architecture is the cause of lots of issues in jira: