From b5411e708924cb427282718577f633a8a2c1b8eb Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Mon, 27 May 2024 07:03:31 +0200 Subject: [PATCH 1/3] mxqsub: Remove a stray space character from output --- mxqsub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mxqsub.c b/mxqsub.c index 478886a..72893be 100644 --- a/mxqsub.c +++ b/mxqsub.c @@ -1184,7 +1184,7 @@ int main(int argc, char *argv[]) return 1; } - printf("mxq_group_id=%" PRIu64 " \n", group.group_id); + printf("mxq_group_id=%" PRIu64 "\n", group.group_id); printf("mxq_group_name=%s\n", group.group_name); printf("mxq_job_id=%" PRIu64 "\n", job.job_id); From f6a8a4267039a31c0368b4eefb9d39b5cc663d49 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sun, 2 Jun 2024 16:15:27 +0200 Subject: [PATCH 2/3] test_parser: Add tests for empty keywordsets --- test_parser.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test_parser.c b/test_parser.c index 1c56638..bb1248b 100644 --- a/test_parser.c +++ b/test_parser.c @@ -68,6 +68,11 @@ int main() { keywordset_free(tags); + tags = keywordset_new("x"); + test_expression(tags, "bla", 0, 0); + test_expression(tags, "!bla", 0, 1); + keywordset_free(tags); + static char text[8002]; text[8001] = 0; memset(text, '(', 8000); From 7c3e220e6567084442b6c19ae4097c6d496f4ed8 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sun, 2 Jun 2024 17:49:23 +0200 Subject: [PATCH 3/3] mxqd_control: Check prerequisites against empty group tags We want to be able to use group tags as a stigma so that servers can be configured to accept only jobs without certain tags. For example, mxqi can add a tag "mxqi" to its jobs and the servers which shouldn't run mxqi jobs can use "!mxqi" as their prerequisites. However, for that to work, we need to evaluate server prerequistes even for jobs which don't have any tags. Remove the check, which skips server prerequistes evaluation for jobs without tags. --- mxqd_control.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/mxqd_control.c b/mxqd_control.c index d51ffeb..7a00b12 100644 --- a/mxqd_control.c +++ b/mxqd_control.c @@ -35,9 +35,6 @@ static int server_is_qualified(struct mxq_server *server, struct mxq_group *grou return 0; // evaluated to false } if (*server->daemon.prerequisites != 0) { - if (*group->tags == 0) { - return 0; - } _mx_cleanup_(keywordset_free_byref) struct keywordset *kws = keywordset_new(group->tags); struct parser_context parser_context = { .input = server->daemon.prerequisites,