All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups)
@ 2022-08-21  8:41 Yann E. MORIN
  2022-08-21  8:41 ` [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version Yann E. MORIN
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Yann E. MORIN @ 2022-08-21  8:41 UTC (permalink / raw)
  To: buildroot; +Cc: Yann E . MORIN

Hello All!

This two-patch series does what it says on the tin, and ensures such
issues are easier to debug in the future.

Regards,
Yann E. MORIN.


----------------------------------------------------------------
Yann E. MORIN (2):
      utils/genrandconfig: fix checking host glibc version
      utils/genrandconfig: dump traceback for unhandled exceptions

 utils/genrandconfig | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version
  2022-08-21  8:41 [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Yann E. MORIN
@ 2022-08-21  8:41 ` Yann E. MORIN
  2022-09-17 11:06   ` Peter Korsgaard
  2022-08-21  8:41 ` [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions Yann E. MORIN
  2022-08-23 20:20 ` [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Thomas Petazzoni via buildroot
  2 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2022-08-21  8:41 UTC (permalink / raw)
  To: buildroot; +Cc: Yann E. MORIN

Unless explicitly told otherwise, subprocess.check_output() returns
bytes objects [0].

When we try to check the C library version (to check the Linaro
toolchain is usable), genrandconfig currently fails with:
    TypeError: cannot use a string pattern on a bytes-like object

So, as suggested in the python documentation, decocde() the output of
subprocess.check_output() before we can use it.

[0] https://docs.python.org/3/library/subprocess.html#subprocess.check_output

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
 utils/genrandconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/genrandconfig b/utils/genrandconfig
index c6b3123feb..21d4592049 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -181,7 +181,7 @@ def is_toolchain_usable(configfile, config):
            'BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE=y\n' in configlines or \
            'BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB=y\n' in configlines:
             ldd_version_output = subprocess.check_output(['ldd', '--version'])
-            glibc_version = ldd_version_output.splitlines()[0].split()[-1]
+            glibc_version = ldd_version_output.decode().splitlines()[0].split()[-1]
             if StrictVersion('2.14') > StrictVersion(glibc_version):
                 print("WARN: ignoring the Linaro ARM toolchains because too old host glibc", file=sys.stderr)
                 return False
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions
  2022-08-21  8:41 [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Yann E. MORIN
  2022-08-21  8:41 ` [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version Yann E. MORIN
@ 2022-08-21  8:41 ` Yann E. MORIN
  2022-09-17 11:06   ` Peter Korsgaard
  2022-08-23 20:20 ` [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Thomas Petazzoni via buildroot
  2 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2022-08-21  8:41 UTC (permalink / raw)
  To: buildroot; +Cc: Yann E. MORIN

In case of an unexpected error, we currently only print the exception as
an str(). For example, the recent issue with the glibc version check
only reported:
    TypeError: cannot use a string pattern on a bytes-like object

That does not help in fixing the issue; the exception text is also not
usually very user-friendly either anyway.

We change the reporting to print the traceback, which in the glibc
version check mentioned above, the error is reported as:

    Traceback (most recent call last):
      File "./utils/genrandconfig", line 740, in <module>
        ret = gen_config(args)
      File "./utils/genrandconfig", line 676, in gen_config
        if not is_toolchain_usable(configfile, toolchainconfig):
      File "./utils/genrandconfig", line 186, in is_toolchain_usable
        if StrictVersion('2.14') > StrictVersion(glibc_version):
      File "/usr/lib/python3.8/distutils/version.py", line 40, in __init__
        self.parse(vstring)
      File "/usr/lib/python3.8/distutils/version.py", line 135, in parse
        match = self.version_re.match(vstring)
    TypeError: cannot use a string pattern on a bytes-like object

With this, the error is much easier to pinpoint (it's the last one that
is not in a system module).

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
 utils/genrandconfig | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/utils/genrandconfig b/utils/genrandconfig
index 21d4592049..4c00d67691 100755
--- a/utils/genrandconfig
+++ b/utils/genrandconfig
@@ -25,6 +25,7 @@ import os
 from random import randint
 import subprocess
 import sys
+import traceback
 from distutils.version import StrictVersion
 import platform
 
@@ -737,7 +738,7 @@ if __name__ == '__main__':
 
     try:
         ret = gen_config(args)
-    except Exception as e:
-        print(str(e), file=sys.stderr)
+    except Exception:
+        traceback.print_exc()
         parser.exit(1)
     parser.exit(ret)
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups)
  2022-08-21  8:41 [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Yann E. MORIN
  2022-08-21  8:41 ` [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version Yann E. MORIN
  2022-08-21  8:41 ` [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions Yann E. MORIN
@ 2022-08-23 20:20 ` Thomas Petazzoni via buildroot
  2 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-08-23 20:20 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: Peter Korsgaard, buildroot

On Sun, 21 Aug 2022 10:41:25 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

>       utils/genrandconfig: fix checking host glibc version
>       utils/genrandconfig: dump traceback for unhandled exceptions

Both applied to master, thanks!

Peter: these commits should go in 2022.02.x and 2022.05.x. Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version
  2022-08-21  8:41 ` [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version Yann E. MORIN
@ 2022-09-17 11:06   ` Peter Korsgaard
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2022-09-17 11:06 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Unless explicitly told otherwise, subprocess.check_output() returns
 > bytes objects [0].

 > When we try to check the C library version (to check the Linaro
 > toolchain is usable), genrandconfig currently fails with:
 >     TypeError: cannot use a string pattern on a bytes-like object

 > So, as suggested in the python documentation, decocde() the output of
 > subprocess.check_output() before we can use it.

 > [0] https://docs.python.org/3/library/subprocess.html#subprocess.check_output

 > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>

Committed to 2022.05.x and 2022.02.x, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions
  2022-08-21  8:41 ` [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions Yann E. MORIN
@ 2022-09-17 11:06   ` Peter Korsgaard
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2022-09-17 11:06 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > In case of an unexpected error, we currently only print the exception as
 > an str(). For example, the recent issue with the glibc version check
 > only reported:
 >     TypeError: cannot use a string pattern on a bytes-like object

 > That does not help in fixing the issue; the exception text is also not
 > usually very user-friendly either anyway.

 > We change the reporting to print the traceback, which in the glibc
 > version check mentioned above, the error is reported as:

 >     Traceback (most recent call last):
 >       File "./utils/genrandconfig", line 740, in <module>
 >         ret = gen_config(args)
 >       File "./utils/genrandconfig", line 676, in gen_config
 >         if not is_toolchain_usable(configfile, toolchainconfig):
 >       File "./utils/genrandconfig", line 186, in is_toolchain_usable
 >         if StrictVersion('2.14') > StrictVersion(glibc_version):
 >       File "/usr/lib/python3.8/distutils/version.py", line 40, in __init__
 >         self.parse(vstring)
 >       File "/usr/lib/python3.8/distutils/version.py", line 135, in parse
 >         match = self.version_re.match(vstring)
 >     TypeError: cannot use a string pattern on a bytes-like object

 > With this, the error is much easier to pinpoint (it's the last one that
 > is not in a system module).

 > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>

Committed to 2022.05.x and 2022.02.x, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-09-17 11:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-21  8:41 [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Yann E. MORIN
2022-08-21  8:41 ` [Buildroot] [PATCH 1/2] utils/genrandconfig: fix checking host glibc version Yann E. MORIN
2022-09-17 11:06   ` Peter Korsgaard
2022-08-21  8:41 ` [Buildroot] [PATCH 2/2] utils/genrandconfig: dump traceback for unhandled exceptions Yann E. MORIN
2022-09-17 11:06   ` Peter Korsgaard
2022-08-23 20:20 ` [Buildroot] [PATCH 0/2] utils/genrandconfig: fix host-glibc version check (branch yem/gerandconfig-fixups) Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.