From nobody Tue Nov 4 11:29:30 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1602095235; cv=none; d=zohomail.com; s=zohoarc; b=T0CVzNxd23om5pzVEjGS3xyjW8+Dg1UNF4JV9whkD8l9UG7HvBISmwxSiX9bP1loPEMp+EM6RBAs6TxvV7A+lLiTHPCZmrbyC2CDQOHPIBmqs6oEhD7N7p3eJ55v8adBKJPPoJQdWLrWhwa9PxhfVv9Ga58gP4Bn8Sr/vRkZ1cY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602095235; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zBd/7+GhzArNwLd/1QNUHLlXz5wBzVpbzRDDkNsjXR8=; b=MyYndO2AnKTHPBvk79rF4vTRZ+sZBH2JwfiNZVIz//RoudJMrC1Ph/ArCHnxPBE6fJc/dIn4mQBodOLT0BYpAxpxTO/+WdUNn81SiK/Ow+Wkst1Bb9oWyGgIBj4YVt+CBKh/u7Uy7O6Qhmk3/6We3iozv939D3Cuhh+K+CZ89uc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 160209523595091.64522980072172; Wed, 7 Oct 2020 11:27:15 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.3682.10759 (Exim 4.92) (envelope-from ) id 1kQE9S-0001Ga-G2; Wed, 07 Oct 2020 18:26:58 +0000 Received: by outflank-mailman (output) from mailman id 3682.10759; Wed, 07 Oct 2020 18:26:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE9S-0001GC-Av; Wed, 07 Oct 2020 18:26:58 +0000 Received: by outflank-mailman (input) for mailman id 3682; Wed, 07 Oct 2020 18:26:57 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE4h-00072Q-M9 for xen-devel@lists.xenproject.org; Wed, 07 Oct 2020 18:22:03 +0000 Received: from chiark.greenend.org.uk (unknown [2001:ba8:1e3::]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e10c92d9-2c86-48a5-a857-634025a4b23d; Wed, 07 Oct 2020 18:20:26 +0000 (UTC) Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk) by chiark.greenend.org.uk (Debian Exim 4.84_2 #1) with esmtp (return-path ijackson@chiark.greenend.org.uk) id 1kQDkA-0007CF-6l; Wed, 07 Oct 2020 19:00:50 +0100 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE4h-00072Q-M9 for xen-devel@lists.xenproject.org; Wed, 07 Oct 2020 18:22:03 +0000 Received: from chiark.greenend.org.uk (unknown [2001:ba8:1e3::]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e10c92d9-2c86-48a5-a857-634025a4b23d; Wed, 07 Oct 2020 18:20:26 +0000 (UTC) Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk) by chiark.greenend.org.uk (Debian Exim 4.84_2 #1) with esmtp (return-path ijackson@chiark.greenend.org.uk) id 1kQDkA-0007CF-6l; Wed, 07 Oct 2020 19:00:50 +0100 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: e10c92d9-2c86-48a5-a857-634025a4b23d From: Ian Jackson To: xen-devel@lists.xenproject.org Cc: Ian Jackson Subject: [OSSTEST PATCH 68/82] host lifecycle: Prevent referential integrity violation Date: Wed, 7 Oct 2020 19:00:10 +0100 Message-Id: <20201007180024.7932-69-iwj@xenproject.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201007180024.7932-1-iwj@xenproject.org> References: <20201007180024.7932-1-iwj@xenproject.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ian Jackson We can't use normal constraints for either of these, sadly. We can make the constraints into a single query which says "OK". Signed-off-by: Ian Jackson --- Osstest/JobDB/Executive.pm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Osstest/JobDB/Executive.pm b/Osstest/JobDB/Executive.pm index 3a8308e9..f69ce277 100644 --- a/Osstest/JobDB/Executive.pm +++ b/Osstest/JobDB/Executive.pm @@ -553,6 +553,28 @@ END ON h.taskid =3D t.taskid WHERE h.hostname =3D ? ORDER BY h.lcseq; +END + # We simulate two foreign key constraints which can't be in the + # db schema, by checking the values we are going to insert. + # + # For "resources" we would need a foreign key constraint + # with a literal value as part of the foreign key, which is + # not supported until PostgreSQL 13. + # + # For "tasks" we only want to apply the constraint on inserts into + # "host_lifecycle" - in particular, we want to allow delet6ions + # from "tasks" to render the taskid foreign key unresolvable. + # This could be done with a trigger, but since here is the only + # place we do insertions into host_lifecycle, this seems easier. + my $constraintsq =3D $dbh_tests->prepare(<prepare(<{stepno}$osuffix"; } } + $constraintsq->execute($hostname, $ttaskid); + $constraintsq->fetchrow_array() or confess "$hostname ?"; + if (defined $flight) { $insertq->execute($hostname, $ttaskid, $flight, $job, --=20 2.20.1