canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #02100
[Merge] autopkgtest-cloud:or-replace into autopkgtest-cloud:master
Brian Murray has proposed merging autopkgtest-cloud:or-replace into autopkgtest-cloud:master.
Requested reviews:
Canonical's Ubuntu QA (canonical-ubuntu-qa)
For more details, see:
https://code.launchpad.net/~ubuntu-release/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/457095
publish-db had been failing for the past couple of days due to the following Traceback:
publish-db[2289488]: Traceback (most recent call last):
publish-db[2289488]: File "/home/ubuntu/webcontrol/publish-db", line 197, in <module>
publish-db[2289488]: db_con = init_db(target_new, target, config["web"]["database"])
publish-db[2289488]: File "/home/ubuntu/webcontrol/publish-db", line 68, in init_db
publish-db[2289488]: db.execute(
publish-db[2289488]: sqlite3.IntegrityError: UNIQUE constraint failed: current_version.release, current_version.package
systemd[1]: publish-db.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: publish-db.service: Failed with result 'exit-code'.
>From what I can tell the code copies package version information from the path_current (~/public/autopkgtest.db) database into the current_version table for the path (~/public/autopkgtest.db.new) database. For unknown reasons (perhaps it failed earlier for different reasons?) the primary key (release, version) already exist in the autopkgtest.db.new database. Regardless we can work around this by either using 'INSERT OR REPLACE INTO' or 'INSERT OR IGNORE INTO'. I chose the former as it seemed to be like we should be updating the database with the most recent information e.g. if a package moved pockets or components.
--
Your team Canonical's Ubuntu QA is requested to review the proposed merge of autopkgtest-cloud:or-replace into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-web/webcontrol/publish-db b/charms/focal/autopkgtest-web/webcontrol/publish-db
index 76a2177..76883bd 100755
--- a/charms/focal/autopkgtest-web/webcontrol/publish-db
+++ b/charms/focal/autopkgtest-web/webcontrol/publish-db
@@ -66,7 +66,7 @@ def init_db(path, path_current, path_rw):
try:
db.execute(
- "INSERT INTO current_version "
+ "INSERT OR REPLACE INTO current_version "
"(release, pocket, component, package, version) "
"SELECT release, pocket, component, package, version "
"FROM current.current_version"
Follow ups