diff mbox series

[v2] send-error-report: improve debugging

Message ID 20250418133504.932848-1-thomas.perrot@bootlin.com
State Accepted, archived
Commit 71635a36c03ea5ac8dcc678d7991676f4b9d0ff5
Headers show
Series [v2] send-error-report: improve debugging | expand

Commit Message

Thomas Perrot April 18, 2025, 1:35 p.m. UTC
From: Thomas Perrot <thomas.perrot@bootlin.com>

- add a debug mode
- print the request and the response when an error occurs.

Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
---

Changes in version 2:
- Drop the redundant checks

scripts/send-error-report | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

--
2.49.0

Comments

Quentin Schulz April 18, 2025, 1:58 p.m. UTC | #1
Hi Thomas,

On 4/18/25 3:35 PM, Thomas Perrot via lists.openembedded.org wrote:
> From: Thomas Perrot <thomas.perrot@bootlin.com>
> 
> - add a debug mode
> - print the request and the response when an error occurs.
> 
> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>

Thanks!
Quentin
Gyorgy Sarvari April 20, 2025, 10:44 a.m. UTC | #2
I noticed that this (or at least v1) was applied on master - would like
to call some attention to a related discussion[1] in a neighboring list,
and some patches[2][3][4] that followed it - at least [3] is a
pre-requisite for this patch (error-report-web has hardcoded the version
of the script to 0.3).

[1]: https://lists.yoctoproject.org/g/yocto/message/65184
[2]: https://lists.yoctoproject.org/g/yocto/message/65188
[3]: https://lists.yoctoproject.org/g/yocto/message/65199
[4]: https://lists.yoctoproject.org/g/yocto/message/65200

On 4/18/25 15:35, Thomas Perrot via lists.openembedded.org wrote:
> From: Thomas Perrot <thomas.perrot@bootlin.com>
>
> - add a debug mode
> - print the request and the response when an error occurs.
>
> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
> ---
>
> Changes in version 2:
> - Drop the redundant checks
>
> scripts/send-error-report | 25 ++++++++++++++++++++-----
>  1 file changed, 20 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/send-error-report b/scripts/send-error-report
> index cfbcaa52cbc3..9ea7160f52c4 100755
> --- a/scripts/send-error-report
> +++ b/scripts/send-error-report
> @@ -6,6 +6,7 @@
>  # Copyright (C) 2013 Intel Corporation
>  # Author: Andreea Proca <andreea.b.proca@intel.com>
>  # Author: Michael Wood <michael.g.wood@intel.com>
> +# Author: Thomas Perrot <thomas.perrot@bootlin.com>
>  #
>  # SPDX-License-Identifier: GPL-2.0-only
>  #
> @@ -22,7 +23,7 @@ scripts_lib_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'li
>  sys.path.insert(0, scripts_lib_path)
>  import argparse_oe
>
> -version = "0.3"
> +version = "0.4"
>
>  log = logging.getLogger("send-error-report")
>  logging.basicConfig(format='%(levelname)s: %(message)s')
> @@ -140,14 +141,21 @@ def send_data(data, args):
>          url = args.protocol+args.server+"/ClientPost/"
>
>      req = urllib.request.Request(url, data=data, headers=headers)
> +
> +    log.debug(f"Request URL: {url}")
> +    log.debug(f"Request Headers: {headers}")
> +    log.debug(f"Request Data: {data.decode('utf-8')}")
> +
>      try:
>          response = urllib.request.urlopen(req)
>      except urllib.error.HTTPError as e:
> -        logging.error(str(e))
> +        log.error(f"HTTP Error {e.code}: {e.reason}")
> +        log.debug(f"Response Content: {e.read().decode('utf-8')}")
>          sys.exit(1)
>
> -    print(response.read().decode('utf-8'))
> -
> +    log.debug(f"Response Status: {response.status}")
> +    log.debug(f"Response Headers: {response.getheaders()}")
> +    log.info(response.read().decode('utf-8'))
>
>  if __name__ == '__main__':
>      arg_parse = argparse_oe.ArgumentParser(description="This scripts will send an error report to your specified error-report-web server.")
> @@ -195,13 +203,20 @@ if __name__ == '__main__':
>                             dest="protocol",
>                             action="store_const", const="http://", default="https://")
>
> -
> +    arg_parse.add_argument("-d",
> +                           "--debug",
> +                           help="Enable debug mode to print request/response details",
> +                           action="store_true")
>
>      args = arg_parse.parse_args()
>
>      if (args.json == False):
>          print("Preparing to send errors to: "+args.server)
>
> +    # Enable debugging if requested
> +    if args.debug:
> +        log.setLevel(logging.DEBUG)
> +
>      data = prepare_data(args)
>      send_data(data, args)
>
> --
> 2.49.0
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#215131): https://lists.openembedded.org/g/openembedded-core/message/215131
> Mute This Topic: https://lists.openembedded.org/mt/112330994/6084445
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [skandigraun@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Thomas Perrot April 25, 2025, 3:02 p.m. UTC | #3
Hello,

On Sun, 2025-04-20 at 12:44 +0200, Gyorgy Sarvari via
lists.openembedded.org wrote:
> I noticed that this (or at least v1) was applied on master - would
> like
> to call some attention to a related discussion[1] in a neighboring
> list,
> and some patches[2][3][4] that followed it - at least [3] is a
> pre-requisite for this patch (error-report-web has hardcoded the
> version
> of the script to 0.3).
> 
> [1]: https://lists.yoctoproject.org/g/yocto/message/65184
> [2]: https://lists.yoctoproject.org/g/yocto/message/65188
> [3]: https://lists.yoctoproject.org/g/yocto/message/65199
> [4]: https://lists.yoctoproject.org/g/yocto/message/65200
> 

Can you revert the patch v1 and then apply patch v2, at least after
patch [3] has been applied to error-report-web?

Kind regards,
Thomas Perrot

> On 4/18/25 15:35, Thomas Perrot via lists.openembedded.org wrote:
> > From: Thomas Perrot <thomas.perrot@bootlin.com>
> > 
> > - add a debug mode
> > - print the request and the response when an error occurs.
> > 
> > Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
> > ---
> > 
> > Changes in version 2:
> > - Drop the redundant checks
> > 
> > scripts/send-error-report | 25 ++++++++++++++++++++-----
> >  1 file changed, 20 insertions(+), 5 deletions(-)
> > 
> > diff --git a/scripts/send-error-report b/scripts/send-error-report
> > index cfbcaa52cbc3..9ea7160f52c4 100755
> > --- a/scripts/send-error-report
> > +++ b/scripts/send-error-report
> > @@ -6,6 +6,7 @@
> >  # Copyright (C) 2013 Intel Corporation
> >  # Author: Andreea Proca <andreea.b.proca@intel.com>
> >  # Author: Michael Wood <michael.g.wood@intel.com>
> > +# Author: Thomas Perrot <thomas.perrot@bootlin.com>
> >  #
> >  # SPDX-License-Identifier: GPL-2.0-only
> >  #
> > @@ -22,7 +23,7 @@ scripts_lib_path =
> > os.path.join(os.path.dirname(os.path.realpath(__file__)), 'li
> >  sys.path.insert(0, scripts_lib_path)
> >  import argparse_oe
> > 
> > -version = "0.3"
> > +version = "0.4"
> > 
> >  log = logging.getLogger("send-error-report")
> >  logging.basicConfig(format='%(levelname)s: %(message)s')
> > @@ -140,14 +141,21 @@ def send_data(data, args):
> >          url = args.protocol+args.server+"/ClientPost/"
> > 
> >      req = urllib.request.Request(url, data=data, headers=headers)
> > +
> > +    log.debug(f"Request URL: {url}")
> > +    log.debug(f"Request Headers: {headers}")
> > +    log.debug(f"Request Data: {data.decode('utf-8')}")
> > +
> >      try:
> >          response = urllib.request.urlopen(req)
> >      except urllib.error.HTTPError as e:
> > -        logging.error(str(e))
> > +        log.error(f"HTTP Error {e.code}: {e.reason}")
> > +        log.debug(f"Response Content: {e.read().decode('utf-8')}")
> >          sys.exit(1)
> > 
> > -    print(response.read().decode('utf-8'))
> > -
> > +    log.debug(f"Response Status: {response.status}")
> > +    log.debug(f"Response Headers: {response.getheaders()}")
> > +    log.info(response.read().decode('utf-8'))
> > 
> >  if __name__ == '__main__':
> >      arg_parse = argparse_oe.ArgumentParser(description="This
> > scripts will send an error report to your specified error-report-
> > web server.")
> > @@ -195,13 +203,20 @@ if __name__ == '__main__':
> >                             dest="protocol",
> >                             action="store_const", const="http://",
> > default="https://")
> > 
> > -
> > +    arg_parse.add_argument("-d",
> > +                           "--debug",
> > +                           help="Enable debug mode to print
> > request/response details",
> > +                           action="store_true")
> > 
> >      args = arg_parse.parse_args()
> > 
> >      if (args.json == False):
> >          print("Preparing to send errors to: "+args.server)
> > 
> > +    # Enable debugging if requested
> > +    if args.debug:
> > +        log.setLevel(logging.DEBUG)
> > +
> >      data = prepare_data(args)
> >      send_data(data, args)
> > 
> > --
> > 2.49.0
> > 
> > 
> > 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#215153):
> https://lists.openembedded.org/g/openembedded-core/message/215153
> Mute This Topic: https://lists.openembedded.org/mt/112330994/5443093
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe:
> https://lists.openembedded.org/g/openembedded-core/unsub [
> thomas.perrot@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Richard Purdie April 25, 2025, 3:19 p.m. UTC | #4
On Fri, 2025-04-25 at 17:02 +0200, Thomas Perrot via
lists.openembedded.org wrote:
> Hello,
> 
> On Sun, 2025-04-20 at 12:44 +0200, Gyorgy Sarvari via
> lists.openembedded.org wrote:
> > I noticed that this (or at least v1) was applied on master - would
> > like
> > to call some attention to a related discussion[1] in a neighboring
> > list,
> > and some patches[2][3][4] that followed it - at least [3] is a
> > pre-requisite for this patch (error-report-web has hardcoded the
> > version
> > of the script to 0.3).
> > 
> > [1]: https://lists.yoctoproject.org/g/yocto/message/65184
> > [2]: https://lists.yoctoproject.org/g/yocto/message/65188
> > [3]: https://lists.yoctoproject.org/g/yocto/message/65199
> > [4]: https://lists.yoctoproject.org/g/yocto/message/65200
> > 
> 
> Can you revert the patch v1 and then apply patch v2, at least after
> patch [3] has been applied to error-report-web?

It would be helpful to address that to the person who maintains the
repo. I've updated to the v2 of your patch.

I've queued your patch for the server but updating the instance is
beyond my access/skills. I also queued a django and python3 upgrade on
master-next there which it would be good to test.

Copying helpdesk to see if they can schedule in some help in updating
the instance either to master (easier) or ultimately to test master-
next and move to that.

Cheers,

Richard
Michael Halstead May 7, 2025, 4:10 p.m. UTC | #5
The new Django 4.2.20 https://errors.yoctoproject.org/ is live. The
previous version is still available at
https://errors-prev.yoctoproject.org/Errors/Latest/Autobuilder/ for
comparison. Tracking at
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15336.


Thanks to everyone who helped with the upgrade.


On Fri, Apr 25, 2025 at 8:19 AM Richard Purdie via lists.openembedded.org
<richard.purdie=linuxfoundation.org@lists.openembedded.org> wrote:

> On Fri, 2025-04-25 at 17:02 +0200, Thomas Perrot via
> lists.openembedded.org wrote:
> > Hello,
> >
> > On Sun, 2025-04-20 at 12:44 +0200, Gyorgy Sarvari via
> > lists.openembedded.org wrote:
> > > I noticed that this (or at least v1) was applied on master - would
> > > like
> > > to call some attention to a related discussion[1] in a neighboring
> > > list,
> > > and some patches[2][3][4] that followed it - at least [3] is a
> > > pre-requisite for this patch (error-report-web has hardcoded the
> > > version
> > > of the script to 0.3).
> > >
> > > [1]: https://lists.yoctoproject.org/g/yocto/message/65184
> > > [2]: https://lists.yoctoproject.org/g/yocto/message/65188
> > > [3]: https://lists.yoctoproject.org/g/yocto/message/65199
> > > [4]: https://lists.yoctoproject.org/g/yocto/message/65200
> > >
> >
> > Can you revert the patch v1 and then apply patch v2, at least after
> > patch [3] has been applied to error-report-web?
>
> It would be helpful to address that to the person who maintains the
> repo. I've updated to the v2 of your patch.
>
> I've queued your patch for the server but updating the instance is
> beyond my access/skills. I also queued a django and python3 upgrade on
> master-next there which it would be good to test.
>
> Copying helpdesk to see if they can schedule in some help in updating
> the instance either to master (easier) or ultimately to test master-
> next and move to that.
>
> Cheers,
>
> Richard
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#215480):
> https://lists.openembedded.org/g/openembedded-core/message/215480
> Mute This Topic: https://lists.openembedded.org/mt/112330994/1003190
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> mhalstead@linuxfoundation.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

diff --git a/scripts/send-error-report b/scripts/send-error-report
index cfbcaa52cbc3..9ea7160f52c4 100755
--- a/scripts/send-error-report
+++ b/scripts/send-error-report
@@ -6,6 +6,7 @@ 
 # Copyright (C) 2013 Intel Corporation
 # Author: Andreea Proca <andreea.b.proca@intel.com>
 # Author: Michael Wood <michael.g.wood@intel.com>
+# Author: Thomas Perrot <thomas.perrot@bootlin.com>
 #
 # SPDX-License-Identifier: GPL-2.0-only
 #
@@ -22,7 +23,7 @@  scripts_lib_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'li
 sys.path.insert(0, scripts_lib_path)
 import argparse_oe

-version = "0.3"
+version = "0.4"

 log = logging.getLogger("send-error-report")
 logging.basicConfig(format='%(levelname)s: %(message)s')
@@ -140,14 +141,21 @@  def send_data(data, args):
         url = args.protocol+args.server+"/ClientPost/"

     req = urllib.request.Request(url, data=data, headers=headers)
+
+    log.debug(f"Request URL: {url}")
+    log.debug(f"Request Headers: {headers}")
+    log.debug(f"Request Data: {data.decode('utf-8')}")
+
     try:
         response = urllib.request.urlopen(req)
     except urllib.error.HTTPError as e:
-        logging.error(str(e))
+        log.error(f"HTTP Error {e.code}: {e.reason}")
+        log.debug(f"Response Content: {e.read().decode('utf-8')}")
         sys.exit(1)

-    print(response.read().decode('utf-8'))
-
+    log.debug(f"Response Status: {response.status}")
+    log.debug(f"Response Headers: {response.getheaders()}")
+    log.info(response.read().decode('utf-8'))

 if __name__ == '__main__':
     arg_parse = argparse_oe.ArgumentParser(description="This scripts will send an error report to your specified error-report-web server.")
@@ -195,13 +203,20 @@  if __name__ == '__main__':
                            dest="protocol",
                            action="store_const", const="http://", default="https://")

-
+    arg_parse.add_argument("-d",
+                           "--debug",
+                           help="Enable debug mode to print request/response details",
+                           action="store_true")

     args = arg_parse.parse_args()

     if (args.json == False):
         print("Preparing to send errors to: "+args.server)

+    # Enable debugging if requested
+    if args.debug:
+        log.setLevel(logging.DEBUG)
+
     data = prepare_data(args)
     send_data(data, args)