Comment 5 for bug 2056330

Revision history for this message
Anton Troyanov (troyanov) wrote (last edit ):

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);

 id | hostname
----+----------
  4 | chladni
  6 | scheele
  7 | lapras
(3 rows)

Did we lose database integrity?