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"
--
Mailing list: https://launchpad.net/~canonical-ubuntu-qa
Post to : [email protected]
Unsubscribe : https://launchpad.net/~canonical-ubuntu-qa
More help : https://help.launchpad.net/ListHelp