Message ID | 20240517192222.20555-2-probb@iol.unh.edu (mailing list archive) |
---|---|
State | Superseded |
Headers |
Return-Path: <ci-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 65FA844055; Fri, 17 May 2024 21:22:38 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 600C240278; Fri, 17 May 2024 21:22:38 +0200 (CEST) Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by mails.dpdk.org (Postfix) with ESMTP id 9DB8E40268 for <ci@dpdk.org>; Fri, 17 May 2024 21:22:36 +0200 (CEST) Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6a3652a740aso4857876d6.3 for <ci@dpdk.org>; Fri, 17 May 2024 12:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1715973756; x=1716578556; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Idw8mGWd3cYl2FQ5rAVOT7XV9u3R7FRswmemnH5159U=; b=cfe8pilR6bylEBGOv4L748qpqibqmcmGOhmAahWeJuLYqBfbCUtxnYvmQGi+DMay27 +GxEa88DWJ4i1ESnW2ilPqFYA1yZnwFrL7/re1SvgiHlQuVpq3XbYCwnAUNHY3wLzyn5 /HblfWs7YSonPQvBJfmIAYR1ZoPvVTJFpCFTg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715973756; x=1716578556; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Idw8mGWd3cYl2FQ5rAVOT7XV9u3R7FRswmemnH5159U=; b=V2lrDkfgpuBCAW35wA2leqvu3xUbAhiOUohNxORxtAsvM+k5fTVXFxRB7wWBPyRrBE H0C8sNQibvwHEluyuRTEX3EGni0YczHaye+ySeECsujJFcZUFB+2tMdtWUiLHScbu18H KhBlADUhgSjUAFcBI8ebQqGmZZOpjrxFV3CBhokFe5xLa5gcbLBrbqjlGDqMiCKC4TC3 LccNYzRp4f9X10cuSudv29PWFwhu3HTZd/CeEy4gHCzvsLKqnot9hX8koT4gxjaQ7C7e Pq233vQF+t573GHfdCyqMBF6H13+fAzA1ECAnaMe/XTdlE+3kjTg8ClIZX4nncFhzkJA I4eA== X-Gm-Message-State: AOJu0YyQd84e6D1Pj0SCw0uWDQJGIpJr012LFi+Y8DHjFiswO19cGzsw e5XZR2/D/BAELM/8xalQzC65sNPwNqNRzpOIQUQ2m8OzqA4JfpRlCLP9ENIaeONM8OGHcRO2528 4Yh7htdVJX6cRlQlWmYa7sKelYlNbV3K9v95YZK19AIBmjBngN99fYxcVWZiL7tDzCZb/KsTDPh dsrKuPiqi89mwe+wf8SRjwRQ== X-Google-Smtp-Source: AGHT+IHWU8kfQjNdWk6QQlQ6mpztsQ+tsa/gAhkohbfLZKUVhpAuEa/3+OWfczBbmYnBqCQkYYYyvQ== X-Received: by 2002:a05:6214:428f:b0:6a0:d298:e04e with SMTP id 6a1803df08f44-6a168259307mr295891276d6.43.1715973755534; Fri, 17 May 2024 12:22:35 -0700 (PDT) Received: from localhost.unh.edu ([2606:4100:3880:1271:7cf:ede5:53c9:3711]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6a354a0a802sm34117856d6.81.2024.05.17.12.22.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 May 2024 12:22:35 -0700 (PDT) From: Patrick Robb <probb@iol.unh.edu> To: ci@dpdk.org Cc: probb@iol.unh.edu, ahassick@iol.unh.edu Subject: [PATCH 1/1] tools: check for pending test status when parsing emails Date: Fri, 17 May 2024 15:22:22 -0400 Message-Id: <20240517192222.20555-2-probb@iol.unh.edu> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20240517192222.20555-1-probb@iol.unh.edu> References: <20240517192222.20555-1-probb@iol.unh.edu> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: ci@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK CI discussions <ci.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/ci>, <mailto:ci-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/ci/> List-Post: <mailto:ci@dpdk.org> List-Help: <mailto:ci-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/ci>, <mailto:ci-request@dpdk.org?subject=subscribe> Errors-To: ci-bounces@dpdk.org |
Series |
pending results parsing for DPDK patchwork
|
|
Commit Message
Patrick Robb
May 17, 2024, 7:22 p.m. UTC
Signed-off-by: Patrick Robb <probb@iol.unh.edu>
---
tools/update-pw.sh | 1 +
1 file changed, 1 insertion(+)
Comments
+Aaron Conole +Ali Alnubani Sorry, I mistakenly didn't add you guys to CC
> -----Original Message----- > From: Patrick Robb <probb@iol.unh.edu> > Sent: Friday, May 17, 2024 10:22 PM > To: ci@dpdk.org > Cc: probb@iol.unh.edu; ahassick@iol.unh.edu > Subject: [PATCH 1/1] tools: check for pending test status when parsing emails > > Signed-off-by: Patrick Robb <probb@iol.unh.edu> > --- > tools/update-pw.sh | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/update-pw.sh b/tools/update-pw.sh > index 07067dd..b0f0baa 100755 > --- a/tools/update-pw.sh > +++ b/tools/update-pw.sh > @@ -49,6 +49,7 @@ case $status in > 'SUCCESS') pwstatus='success' ;; > 'WARNING') pwstatus='warning' ;; > 'FAILURE') pwstatus='fail' ;; > + 'PENDING') pwstatus='pending' ;; > esac > printf 'id = %s\nlabel = %s\nstatus = %s/%s %s\nurl = %s\n' \ > "$pwid" "$label" "$status" "$pwstatus" "$desc" "$url" > -- > 2.40.0 Acked-by: Ali Alnubani <alialnu@nvidia.com>
17/05/2024 21:22, Patrick Robb: > Signed-off-by: Patrick Robb <probb@iol.unh.edu> Please could you explain what it is doing? Having a workflow understanding would be nice. > --- a/tools/update-pw.sh > +++ b/tools/update-pw.sh > @@ -49,6 +49,7 @@ case $status in > 'SUCCESS') pwstatus='success' ;; > 'WARNING') pwstatus='warning' ;; > 'FAILURE') pwstatus='fail' ;; > + 'PENDING') pwstatus='pending' ;;
On Mon, May 20, 2024 at 3:03 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > 17/05/2024 21:22, Patrick Robb: > > Signed-off-by: Patrick Robb <probb@iol.unh.edu> > > Please could you explain what it is doing? > Having a workflow understanding would be nice. Yes good idea. For context, pending is already a supported check state in patchwork server: https://patchwork.readthedocs.io/en/latest/usage/overview/#checks 1. DPDK patch is submitted. Patch is acquired by UNH Lab. 2. UNH Lab triggers some testrun pipelines in our CI system (jenkins). The first action the pipeline takes is to create in our database a test result record for each testrun, setting the status to PENDING. It is important to note that one patchwork context, Like "iol-compile-amd64-testing," may consist of many individual testruns, each for different distros, hardware, environment etc. 3. When each testrun completes, it will send a report to Patchwork with the new result (pass or fail). When it does this it will update the context's results table, changing the environment's result from pending to pass/fail. So, when the first report comes in for, say, context "iol-compile-amd64-testing," you would see 1 pass/fail, 12 pending, or similar. Then, as subsequent testruns complete, and report their results, the updated table comes with the new report. The overall context result (the _Testing {PASS/FAIL/PENDING}_ at the top of the test report email) is determined in the manner you might expect, i.e. if there is at least one testrun fail result, overall context is fail, else if there is at least one pending result, overall context is pending, else if all results are passing, overall result is passing. As an example, when testing is nearly complete, the top of the report email may look like this: _Testing PENDING_ Branch: tags/v22.11 a409653a123bf105970a25c594711a3cdc44d139 --> testing pass Test environment and result as below: +------------------------------------+-----------------------------------------------------+ | Environment | dpdk_meson_compile | +====================================+====================+ | Ubuntu 20.04 ARM SVE | PASS | +------------------------------------+--------------------+ | Debian 12 with MUSDK | PENDING | +------------------------------------+--------------------+ | Fedora 37 (ARM) | PASS | +------------------------------------+--------------------+ | Ubuntu 20.04 (ARM) | PASS | +------------------------------------+--------------------+ | Fedora 38 (ARM) | PASS | +------------------------------------+--------------------+ | Fedora 39 (ARM) | PENDING | +------------------------------------+--------------------+ | Debian 12 (arm) | PASS | +------------------------------------+--------------------+ | CentOS Stream 9 (ARM) | PASS | +------------------------------------+--------------------+ | Debian 11 (Buster) (ARM) | PASS | +------------------------------------+--------------------+ | Ubuntu 20.04 ARM GCC Cross Compile | PASS | +------------------------------------+--------------------+ 4. Eventually, all testruns are complete for a patchwork context, and the table switches from pending to pass or fail. This does not slow the delivery of results, nor does it increase the number of test report emails sent. We still send only 1 email per testrun. This way it is plainly visible to the user when all testing is complete, and it also flags for the submitter and for CI people if some infra failure prevents a testrun from completing, or from a result being properly emailed, etc. The idea is to provide more complete status updates and check against infra fails better, but without any adverse effects in user experience or load on the email server. > > > --- a/tools/update-pw.sh > > +++ b/tools/update-pw.sh > > @@ -49,6 +49,7 @@ case $status in > > 'SUCCESS') pwstatus='success' ;; > > 'WARNING') pwstatus='warning' ;; > > 'FAILURE') pwstatus='fail' ;; > > + 'PENDING') pwstatus='pending' ;; > > >
20/05/2024 23:36, Patrick Robb: > 2. UNH Lab triggers some testrun pipelines in our CI system (jenkins). > The first action the pipeline takes is to create in our database a > test result record for each testrun, setting the status to PENDING. It > is important to note that one patchwork context, Like > "iol-compile-amd64-testing," may consist of many individual testruns, > each for different distros, hardware, environment etc. > 3. When each testrun completes, it will send a report to Patchwork > with the new result (pass or fail). When it does this it will update > the context's results table, changing the environment's result from > pending to pass/fail. So, when the first report comes in for, say, > context "iol-compile-amd64-testing," you would see 1 pass/fail, 12 > pending, or similar. Then, as subsequent testruns complete, and report > their results, the updated table comes with the new report. The > overall context result (the _Testing {PASS/FAIL/PENDING}_ at the top > of the test report email) is determined in the manner you might > expect, i.e. if there is at least one testrun fail result, overall > context is fail, else if there is at least one pending result, overall > context is pending, else if all results are passing, overall result is > passing. As an example, when testing is nearly complete, the top of > the report email may look like this: > > _Testing PENDING_ > > Branch: tags/v22.11 > > a409653a123bf105970a25c594711a3cdc44d139 --> testing pass > > Test environment and result as below: > > +------------------------------------+-----------------------------------------------------+ > | Environment | dpdk_meson_compile | > +====================================+====================+ > | Ubuntu 20.04 ARM SVE | PASS | > +------------------------------------+--------------------+ > | Debian 12 with MUSDK | PENDING | > +------------------------------------+--------------------+ > | Fedora 37 (ARM) | PASS | > +------------------------------------+--------------------+ > | Ubuntu 20.04 (ARM) | PASS | > +------------------------------------+--------------------+ > | Fedora 38 (ARM) | PASS | > +------------------------------------+--------------------+ > | Fedora 39 (ARM) | PENDING | > +------------------------------------+--------------------+ > | Debian 12 (arm) | PASS | > +------------------------------------+--------------------+ > | CentOS Stream 9 (ARM) | PASS | > +------------------------------------+--------------------+ > | Debian 11 (Buster) (ARM) | PASS | > +------------------------------------+--------------------+ > | Ubuntu 20.04 ARM GCC Cross Compile | PASS | > +------------------------------------+--------------------+ It is quite strange to receive a new email each time a line of the table is updated. > 4. Eventually, all testruns are complete for a patchwork context, and > the table switches from pending to pass or fail. > > This does not slow the delivery of results, nor does it increase the > number of test report emails sent. We still send only 1 email per > testrun. I had not realised that so many emails are sent. I thought it was 1 patchwork context == 1 email. > This way it is plainly visible to the user when all testing is > complete, and it also flags for the submitter and for CI people if > some infra failure prevents a testrun from completing, or from a > result being properly emailed, etc. The idea is to provide more > complete status updates and check against infra fails better, but > without any adverse effects in user experience or load on the email > server. I understand it gives a new information: test is pending.
Patrick Robb <probb@iol.unh.edu> writes: > On Mon, May 20, 2024 at 3:03 PM Thomas Monjalon <thomas@monjalon.net> wrote: >> >> 17/05/2024 21:22, Patrick Robb: >> > Signed-off-by: Patrick Robb <probb@iol.unh.edu> >> >> Please could you explain what it is doing? >> Having a workflow understanding would be nice. +1. It would usually be used in the commit message to show the rationale for the change. Here's a suggestion for an even shorter distillation from your message below: Today, the community CI infrastructure only uses post-result reporting, such as "SUCCESS", "FAILED", and "WARNING". These results get reported only after a test finishes. This creates some confusion about whether a test might have been started for the series in question. It isn't easy to tell at-a-glance which tests are currently running for a given patch or series. This patch aims to introduce support for a "PENDING" state in the CI infrastructure. This allows labs to indicate which tests have started and are awaiting results. That means test writers should now send a "PENDING" status for tests as they start, and then update with a post-test result after. With this change, understanding which tests ran at-a-glance is something we can achieve. This change should have no affect on the actual tests being run. Maybe a v2 with something like this as the commit message? WDYT? > Yes good idea. > > For context, pending is already a supported check state in patchwork > server: https://patchwork.readthedocs.io/en/latest/usage/overview/#checks > > 1. DPDK patch is submitted. Patch is acquired by UNH Lab. > 2. UNH Lab triggers some testrun pipelines in our CI system (jenkins). > The first action the pipeline takes is to create in our database a > test result record for each testrun, setting the status to PENDING. It > is important to note that one patchwork context, Like > "iol-compile-amd64-testing," may consist of many individual testruns, > each for different distros, hardware, environment etc. > 3. When each testrun completes, it will send a report to Patchwork > with the new result (pass or fail). When it does this it will update > the context's results table, changing the environment's result from > pending to pass/fail. So, when the first report comes in for, say, > context "iol-compile-amd64-testing," you would see 1 pass/fail, 12 > pending, or similar. Then, as subsequent testruns complete, and report > their results, the updated table comes with the new report. The > overall context result (the _Testing {PASS/FAIL/PENDING}_ at the top > of the test report email) is determined in the manner you might > expect, i.e. if there is at least one testrun fail result, overall > context is fail, else if there is at least one pending result, overall > context is pending, else if all results are passing, overall result is > passing. As an example, when testing is nearly complete, the top of > the report email may look like this: > > _Testing PENDING_ > > Branch: tags/v22.11 > > a409653a123bf105970a25c594711a3cdc44d139 --> testing pass > > Test environment and result as below: > > +------------------------------------+-----------------------------------------------------+ > | Environment | dpdk_meson_compile | > +====================================+====================+ > | Ubuntu 20.04 ARM SVE | PASS | > +------------------------------------+--------------------+ > | Debian 12 with MUSDK | PENDING | > +------------------------------------+--------------------+ > | Fedora 37 (ARM) | PASS | > +------------------------------------+--------------------+ > | Ubuntu 20.04 (ARM) | PASS | > +------------------------------------+--------------------+ > | Fedora 38 (ARM) | PASS | > +------------------------------------+--------------------+ > | Fedora 39 (ARM) | PENDING | > +------------------------------------+--------------------+ > | Debian 12 (arm) | PASS | > +------------------------------------+--------------------+ > | CentOS Stream 9 (ARM) | PASS | > +------------------------------------+--------------------+ > | Debian 11 (Buster) (ARM) | PASS | > +------------------------------------+--------------------+ > | Ubuntu 20.04 ARM GCC Cross Compile | PASS | > +------------------------------------+--------------------+ > > > 4. Eventually, all testruns are complete for a patchwork context, and > the table switches from pending to pass or fail. > > This does not slow the delivery of results, nor does it increase the > number of test report emails sent. We still send only 1 email per > testrun. > > This way it is plainly visible to the user when all testing is > complete, and it also flags for the submitter and for CI people if > some infra failure prevents a testrun from completing, or from a > result being properly emailed, etc. The idea is to provide more > complete status updates and check against infra fails better, but > without any adverse effects in user experience or load on the email > server. > >> >> > --- a/tools/update-pw.sh >> > +++ b/tools/update-pw.sh >> > @@ -49,6 +49,7 @@ case $status in >> > 'SUCCESS') pwstatus='success' ;; >> > 'WARNING') pwstatus='warning' ;; >> > 'FAILURE') pwstatus='fail' ;; >> > + 'PENDING') pwstatus='pending' ;; >> >> >>
On Tue, May 21, 2024 at 12:08 PM Thomas Monjalon <thomas@monjalon.net> wrote: > > 20/05/2024 23:36, Patrick Robb: > > 2. UNH Lab triggers some testrun pipelines in our CI system (jenkins). > > The first action the pipeline takes is to create in our database a > > test result record for each testrun, setting the status to PENDING. It > > is important to note that one patchwork context, Like > > "iol-compile-amd64-testing," may consist of many individual testruns, > > each for different distros, hardware, environment etc. > > 3. When each testrun completes, it will send a report to Patchwork > > with the new result (pass or fail). When it does this it will update > > the context's results table, changing the environment's result from > > pending to pass/fail. So, when the first report comes in for, say, > > context "iol-compile-amd64-testing," you would see 1 pass/fail, 12 > > pending, or similar. Then, as subsequent testruns complete, and report > > their results, the updated table comes with the new report. The > > overall context result (the _Testing {PASS/FAIL/PENDING}_ at the top > > of the test report email) is determined in the manner you might > > expect, i.e. if there is at least one testrun fail result, overall > > context is fail, else if there is at least one pending result, overall > > context is pending, else if all results are passing, overall result is > > passing. As an example, when testing is nearly complete, the top of > > the report email may look like this: > > > > _Testing PENDING_ > > > > Branch: tags/v22.11 > > > > a409653a123bf105970a25c594711a3cdc44d139 --> testing pass > > > > Test environment and result as below: > > > > +------------------------------------+-----------------------------------------------------+ > > | Environment | dpdk_meson_compile | > > +====================================+====================+ > > | Ubuntu 20.04 ARM SVE | PASS | > > +------------------------------------+--------------------+ > > | Debian 12 with MUSDK | PENDING | > > +------------------------------------+--------------------+ > > | Fedora 37 (ARM) | PASS | > > +------------------------------------+--------------------+ > > | Ubuntu 20.04 (ARM) | PASS | > > +------------------------------------+--------------------+ > > | Fedora 38 (ARM) | PASS | > > +------------------------------------+--------------------+ > > | Fedora 39 (ARM) | PENDING | > > +------------------------------------+--------------------+ > > | Debian 12 (arm) | PASS | > > +------------------------------------+--------------------+ > > | CentOS Stream 9 (ARM) | PASS | > > +------------------------------------+--------------------+ > > | Debian 11 (Buster) (ARM) | PASS | > > +------------------------------------+--------------------+ > > | Ubuntu 20.04 ARM GCC Cross Compile | PASS | > > +------------------------------------+--------------------+ > > It is quite strange to receive a new email each time a line of the table is updated. > > > 4. Eventually, all testruns are complete for a patchwork context, and > > the table switches from pending to pass or fail. > > > > This does not slow the delivery of results, nor does it increase the > > number of test report emails sent. We still send only 1 email per > > testrun. > > I had not realised that so many emails are sent. > I thought it was 1 patchwork context == 1 email. This is how it worked until last year, but our test results delivery was slow in some cases. So, we implemented "tail reporting" i.e. the ability for an environment to report its own test run when it finishes testing, as opposed to relying on a testrun aggregator which runs later. If a test run fails, we want to share that information as soon as we can, not block it on other testing.
diff --git a/tools/update-pw.sh b/tools/update-pw.sh index 07067dd..b0f0baa 100755 --- a/tools/update-pw.sh +++ b/tools/update-pw.sh @@ -49,6 +49,7 @@ case $status in 'SUCCESS') pwstatus='success' ;; 'WARNING') pwstatus='warning' ;; 'FAILURE') pwstatus='fail' ;; + 'PENDING') pwstatus='pending' ;; esac printf 'id = %s\nlabel = %s\nstatus = %s/%s %s\nurl = %s\n' \ "$pwid" "$label" "$status" "$pwstatus" "$desc" "$url"