Traceback when deleting iSCSI target while service is running

Description

When rolling back a VMFS datastore, the newly created target is deleted. This currently fails, leading the following traceback returned by the DELETE API call ` http://ds-x10-ds01a-itr03-igb0.tn.ixsystems.net/api/v2.0/pool/dataset/id/tank%2Ftestvmfs01 `

"(sqlite3.IntegrityError) FOREIGN KEY constraint failed\n[SQL DELETE FROM services_iscsitarget WHERE services_iscsitarget.id = ?]\n[parameters (2,)]\n(Background on this error at http//sqlalche.me/e/gkpj)", "traceback" "Traceback (most recent call last)\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 1247, in execute_context\n self.dialect.do_execute(\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py\", line 590, in do_execute\n cursor.execute(statement, parameters)\nsqlite3.IntegrityError FOREIGN KEY constraint failed\n\nThe above exception was the direct cause of the following exception\n\nTraceback (most recent call last)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/restful.py\", line 575, in do\n result = await self.middleware.call(methodname, *method_args, **method_kwargs)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1241, in call\n return await self._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/service.py\", line 506, in delete\n rv = await self.middleware._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/schema.py\", line 973, in nf\n return await f(*args, **kwargs)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/pool.py\", line 3279, in do_delete\n await delegate.delete(attachments)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/iscsi.py\", line 1657, in delete\n await self.middleware.call('iscsi.target.delete', target_id, True)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1241, in call\n return await self._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/service.py\", line 506, in delete\n rv = await self.middleware._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/schema.py\", line 973, in nf\n return await f(*args, **kwargs)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/iscsi.py\", line 1415, in do_delete\n rv = await self.middleware.call('datastore.delete', self._config.datastore, id)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1241, in call\n return await self._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/schema.py\", line 973, in nf\n return await f(*args, **kwargs)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/datastore/write.py\", line 134, in delete\n await self.middleware.call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1241, in call\n return await self._call(\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1198, in _call\n return await methodobj(*prepared_call.args)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/datastore/connection.py\", line 65, in execute_write\n return await self.middleware.run_in_executor(self.thread_pool, self._execute_write, sql, binds,\n File \"/usr/local/lib/python3.9/site-packages/middlewared/main.py\", line 1113, in run_in_executor\n return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))\n File \"/usr/local/lib/python3.9/concurrent/futures/thread.py\", line 52, in run\n result = self.fn(*self.args, **self.kwargs)\n File \"/usr/local/lib/python3.9/site-packages/middlewared/plugins/datastore/connection.py\", line 69, in _execute_write\n result = self.connection.execute(sql, binds)\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 976, in execute\n return self._execute_text(object, multiparams, params)\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 1145, in execute_text\n ret = self._execute_context(\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 1287, in _execute_context\n self._handle_dbapi_exception(\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 1481, in _handle_dbapi_exception\n util.raise(\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py\", line 178, in raise_\n raise exception\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py\", line 1247, in _execute_context\n self.dialect.do_execute(\n File \"/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py\", line 590, in do_execute\n cursor.execute(statement, parameters)\nsqlalchemy.exc.IntegrityError (sqlite3.IntegrityError) FOREIGN KEY constraint failed\n[SQL DELETE FROM services_iscsitarget WHERE services_iscsitarget.id = ?]\n[parameters (2,)]\n(Background on this error at http//sqlalche.me/e/gkpj)\n"

First I'll draw attention to the escaped chars in the API response. I saw this in 12.0 stable. The target must be in use since the service is running, but after talking with Caleb, he said "we're supposed to actually map all the running services to that iscsi extent and reload the service". This was a month ago, and I've been able to enounter it since then.

To reprodce: Create a target while the iSCSI service is running, then try to delete it via the API.

Problem/Justification

None

Impact

None

Activity

Show:

Bug Clerk August 19, 2021 at 7:16 AM

Zack August 6, 2021 at 4:34 PM

I also cannot start the service because of

 

In ctl.conf

 

Zack August 6, 2021 at 4:30 PM

I got this when the service was not running. This appears to be FC related.

Complete

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

More fields

Katalon Platform

Created August 4, 2021 at 10:58 PM
Updated July 6, 2022 at 8:58 PM
Resolved August 19, 2021 at 3:13 PM