Re: [OE-core][PATCH] oe-pkgdata-util: ignore SIGPIPE

2021-05-05 Thread Chen Qi

On 04/30/2021 09:34 PM, Richard Purdie wrote:

On Tue, 2021-04-20 at 16:37 +0800, Chen Qi wrote:

oe-pkgdata-util sometimes outputs a large amount of data. When used
with pipe, it's likely to get the following error.

   BrokenPipeError: [Errno 32] Broken pipe

The problem could be reproduced by running `oe-pkgdata-util list-pkg | less'.
Type 'q' after running the above command, and we get the error.

Signed-off-by: Chen Qi 
---
  scripts/oe-pkgdata-util | 5 +
  1 file changed, 5 insertions(+)

This is far from clearcut.

https://mail.python.org/pipermail/python-dev/2018-June/154191.html

Not quite sure what to do about this as there are pros/cons...

Cheers,

Richard


Thanks Richard. I've read the material above and grabbed more knowledge 
on this topic.


At first, I also wanted to use the 'try ... except' clause to handle the 
output of oe-pkgdata-utils. But there are multiple places for the 
output, so I figured it's ugly and not necessary.


People mentioned situations where setting SIG_DFL for SIGPIPE is 
harmful. That's true. But in respect to this oe-pkgutils-data program, 
when setting SIG_DFL for SIGPIPE, what would be the actual problem in 
practice?


So I think https://github.com/python/cpython/pull/6773 is meaningful, 
but it does not apply to all programs.


Anyway, if you think using the 'try...except' clause is better, I could 
do it and send out V2. But I'm still wondering what extra benefit it 
could bring us.


Best Regards,
Chen Qi


diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 75dd23efa3..4aeb28879d 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -17,6 +17,7 @@ import re
  import argparse
  import logging
  from collections import defaultdict, OrderedDict
+from signal import signal, SIGPIPE, SIG_DFL
  




  scripts_path = os.path.dirname(os.path.realpath(__file__))
  lib_path = scripts_path + '/lib'
@@ -615,6 +616,10 @@ def main():
  logger.error('Unable to find pkgdata directory %s' % args.pkgdata_dir)
  sys.exit(1)
  




+# It's possible that this program will output large contents, and when 
used with a pipe in command line,
+# we will get a 'BrokenPipeError: [Errno 32] Broken pipe'. Ignore the 
SIGPIPE to avoid such error.
+signal(SIGPIPE, SIG_DFL)
+
  ret = args.func(args)
  




  return ret








-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#151376): 
https://lists.openembedded.org/g/openembedded-core/message/151376
Mute This Topic: https://lists.openembedded.org/mt/82230268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core][PATCH] oe-pkgdata-util: ignore SIGPIPE

2021-05-05 Thread Chen Qi

On 04/30/2021 09:34 PM, Richard Purdie wrote:

On Tue, 2021-04-20 at 16:37 +0800, Chen Qi wrote:

oe-pkgdata-util sometimes outputs a large amount of data. When used
with pipe, it's likely to get the following error.

   BrokenPipeError: [Errno 32] Broken pipe

The problem could be reproduced by running `oe-pkgdata-util list-pkg | less'.
Type 'q' after running the above command, and we get the error.

Signed-off-by: Chen Qi 
---
  scripts/oe-pkgdata-util | 5 +
  1 file changed, 5 insertions(+)

This is far from clearcut.

https://mail.python.org/pipermail/python-dev/2018-June/154191.html

Not quite sure what to do about this as there are pros/cons...

Cheers,

Richard


Thanks Richard. I've read the material above and grabbed more knowledge 
on this topic.


At first, I also wanted to use the 'try ... except' clause to handle the 
output of oe-pkgdata-utils. But there are multiple places for the 
output, so I figured it's ugly and not necessary.


People mentioned situations where setting SIG_DFL for SIGPIPE is 
harmful. That's true. But in respect to this oe-pkgutils-data program, 
when setting SIG_DFL for SIGPIPE, what would be the actual problem in 
practice?


So I think https://github.com/python/cpython/pull/6773 is meaningful, 
but it does not apply to all programs.


Anyway, if you think using the 'try...except' clause is better, I could 
do it and send out V2. But I'm still wondering what extra benefit it 
could bring us.


Best Regards,
Chen Qi


diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 75dd23efa3..4aeb28879d 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -17,6 +17,7 @@ import re
  import argparse
  import logging
  from collections import defaultdict, OrderedDict
+from signal import signal, SIGPIPE, SIG_DFL
  




  scripts_path = os.path.dirname(os.path.realpath(__file__))
  lib_path = scripts_path + '/lib'
@@ -615,6 +616,10 @@ def main():
  logger.error('Unable to find pkgdata directory %s' % args.pkgdata_dir)
  sys.exit(1)
  




+# It's possible that this program will output large contents, and when 
used with a pipe in command line,
+# we will get a 'BrokenPipeError: [Errno 32] Broken pipe'. Ignore the 
SIGPIPE to avoid such error.
+signal(SIGPIPE, SIG_DFL)
+
  ret = args.func(args)
  




  return ret








-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#151374): 
https://lists.openembedded.org/g/openembedded-core/message/151374
Mute This Topic: https://lists.openembedded.org/mt/82230268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core][PATCH] oe-pkgdata-util: ignore SIGPIPE

2021-04-30 Thread Richard Purdie
On Tue, 2021-04-20 at 16:37 +0800, Chen Qi wrote:
> oe-pkgdata-util sometimes outputs a large amount of data. When used
> with pipe, it's likely to get the following error.
> 
>   BrokenPipeError: [Errno 32] Broken pipe
> 
> The problem could be reproduced by running `oe-pkgdata-util list-pkg | less'.
> Type 'q' after running the above command, and we get the error.
> 
> Signed-off-by: Chen Qi 
> ---
>  scripts/oe-pkgdata-util | 5 +
>  1 file changed, 5 insertions(+)

This is far from clearcut. 

https://mail.python.org/pipermail/python-dev/2018-June/154191.html

Not quite sure what to do about this as there are pros/cons...

Cheers,

Richard

> diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
> index 75dd23efa3..4aeb28879d 100755
> --- a/scripts/oe-pkgdata-util
> +++ b/scripts/oe-pkgdata-util
> @@ -17,6 +17,7 @@ import re
>  import argparse
>  import logging
>  from collections import defaultdict, OrderedDict
> +from signal import signal, SIGPIPE, SIG_DFL
>  
> 
> 
> 
>  scripts_path = os.path.dirname(os.path.realpath(__file__))
>  lib_path = scripts_path + '/lib'
> @@ -615,6 +616,10 @@ def main():
>  logger.error('Unable to find pkgdata directory %s' % 
> args.pkgdata_dir)
>  sys.exit(1)
>  
> 
> 
> 
> +# It's possible that this program will output large contents, and when 
> used with a pipe in command line,
> +# we will get a 'BrokenPipeError: [Errno 32] Broken pipe'. Ignore the 
> SIGPIPE to avoid such error.
> +signal(SIGPIPE, SIG_DFL)
> +
>  ret = args.func(args)
>  
> 
> 
> 
>  return ret
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#151131): 
https://lists.openembedded.org/g/openembedded-core/message/151131
Mute This Topic: https://lists.openembedded.org/mt/82230268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core][PATCH] oe-pkgdata-util: ignore SIGPIPE

2021-04-26 Thread Chen Qi

ping

On 04/20/2021 04:37 PM, Chen Qi wrote:

oe-pkgdata-util sometimes outputs a large amount of data. When used
with pipe, it's likely to get the following error.

   BrokenPipeError: [Errno 32] Broken pipe

The problem could be reproduced by running `oe-pkgdata-util list-pkg | less'.
Type 'q' after running the above command, and we get the error.

Signed-off-by: Chen Qi 
---
  scripts/oe-pkgdata-util | 5 +
  1 file changed, 5 insertions(+)

diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 75dd23efa3..4aeb28879d 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -17,6 +17,7 @@ import re
  import argparse
  import logging
  from collections import defaultdict, OrderedDict
+from signal import signal, SIGPIPE, SIG_DFL
  
  scripts_path = os.path.dirname(os.path.realpath(__file__))

  lib_path = scripts_path + '/lib'
@@ -615,6 +616,10 @@ def main():
  logger.error('Unable to find pkgdata directory %s' % args.pkgdata_dir)
  sys.exit(1)
  
+# It's possible that this program will output large contents, and when used with a pipe in command line,

+# we will get a 'BrokenPipeError: [Errno 32] Broken pipe'. Ignore the 
SIGPIPE to avoid such error.
+signal(SIGPIPE, SIG_DFL)
+
  ret = args.func(args)
  
  return ret








-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#151025): 
https://lists.openembedded.org/g/openembedded-core/message/151025
Mute This Topic: https://lists.openembedded.org/mt/82230268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-