It seems that the query that returns wrong result is:
SELECT
"maasserver_scriptset"."id",
"maasserver_scriptset"."last_ping",
"maasserver_scriptset"."node_id",
"maasserver_scriptset"."result_type",
"maasserver_scriptset"."power_state_before_transition",
"maasserver_scriptset"."tags"
FROM "maasserver_scriptset"
WHERE "maasserver_scriptset"."id" = 2594
LIMIT 21
After checking DB data I found that this ID is set for `select * from maasserver_node where id = 4;` (chladni)
...
current_commissioning_script_set_id | 2594
current_installation_script_set_id |
current_testing_script_set_id | 2595
...
However both scriptsets do not exist.
maasdb=# select * from maasserver_scriptset where id = 2594;
(0 rows)
maasdb=# select * from maasserver_scriptset where id = 2595;
(0 rows)
SELECT
n.id,
n.hostname
FROM maasserver_node n
LEFT JOIN maasserver_scriptset scom
ON n.current_commissioning_script_set_id = scom.id
LEFT JOIN maasserver_scriptset sinst
ON n.current_installation_script_set_id = sinst.id
LEFT JOIN maasserver_scriptset stest
ON n.current_testing_script_set_id = stest.id
LEFT JOIN maasserver_scriptset srel
ON n.current_release_script_set_id = srel.id
WHERE (scom.id is null AND n.current_commissioning_script_set_id is not null)
OR (sinst.id is null AND n.current_installation_script_set_id is not null)
OR (stest.id is null AND n.current_testing_script_set_id is not null)
OR (srel.id is null AND n.current_release_script_set_id is not null);
It seems that the query that returns wrong result is:
SELECT _scriptset" ."id", _scriptset" ."last_ ping", _scriptset" ."node_ id", _scriptset" ."result_ type", _scriptset" ."power_ state_before_ transition" , _scriptset" ."tags" scriptset" scriptset" ."id" = 2594
"maasserver
"maasserver
"maasserver
"maasserver
"maasserver
"maasserver
FROM "maasserver_
WHERE "maasserver_
LIMIT 21
After checking DB data I found that this ID is set for `select * from maasserver_node where id = 4;` (chladni) commissioning_ script_ set_id | 2594 installation_ script_ set_id | testing_ script_ set_id | 2595
...
current_
current_
current_
...
However both scriptsets do not exist.
maasdb=# select * from maasserver_ scriptset where id = 2594;
(0 rows)
maasdb=# select * from maasserver_ scriptset where id = 2595;
(0 rows)
SELECT scriptset scom commissioning_ script_ set_id = scom.id scriptset sinst installation_ script_ set_id = sinst.id scriptset stest testing_ script_ set_id = stest.id scriptset srel release_ script_ set_id = srel.id commissioning_ script_ set_id is not null) installation_ script_ set_id is not null) testing_ script_ set_id is not null) release_ script_ set_id is not null);
n.id,
n.hostname
FROM maasserver_node n
LEFT JOIN maasserver_
ON n.current_
LEFT JOIN maasserver_
ON n.current_
LEFT JOIN maasserver_
ON n.current_
LEFT JOIN maasserver_
ON n.current_
WHERE (scom.id is null AND n.current_
OR (sinst.id is null AND n.current_
OR (stest.id is null AND n.current_
OR (srel.id is null AND n.current_
id | hostname
----+----------
4 | chladni
6 | scheele
7 | lapras
(3 rows)
Did we lose database integrity?