From 42235c298c9666b06cf1d6ced7346882ce0f1b33 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 25 Apr 2018 14:14:39 +0200 Subject: lib/mysql-functions: mysql_cleanup: a build_assignment might be handed out a couple of times, with one set of built packages not on the build-list anymore - do not remove build_assignments in that case --- lib/mysql-functions | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'lib/mysql-functions') diff --git a/lib/mysql-functions b/lib/mysql-functions index 8101e0c..a15a8bb 100755 --- a/lib/mysql-functions +++ b/lib/mysql-functions @@ -882,16 +882,19 @@ mysql_cleanup() { printf ');\n' # remove jobs from build slaves that are not on the build-list if [ "${operator}" = 'DELETE' ]; then - printf 'UPDATE `build_slaves`' + printf 'UPDATE `repositories`' else - printf 'SELECT COUNT(DISTINCT `build_slaves`.`id`) FROM `build_slaves`' + printf 'SELECT COUNT(DISTINCT `build_slaves`.`id`) FROM `repositories`' fi - mysql_join_build_slaves_binary_packages - mysql_join_binary_packages_repositories + mysql_join_repositories_binary_packages + printf ' AND `repositories`.`name`="build-list"' + printf ' RIGHT' + mysql_join_binary_packages_build_slaves if [ "${operator}" = 'DELETE' ]; then printf ' SET `build_slaves`.`currently_building`=NULL' fi - printf ' WHERE `repositories`.`name`!="build-list";\n' + printf ' WHERE `build_slaves`.`currently_building` IS NOT NULL' + printf ' AND `repositories`.`id` IS NULL;\n' # remove build orders from build slaves which have not connected within 1h if [ "${operator}" = 'DELETE' ]; then printf 'UPDATE `build_slaves`' -- cgit v1.2.3-54-g00ecf