[v4] perl: Help resolving WNOHANG and _exit in Posix module

Message ID 20220209051544.3280726-1-raj.khem@gmail.com
State New
Headers show
Series [v4] perl: Help resolving WNOHANG and _exit in Posix module | expand

Commit Message

Khem Raj Feb. 9, 2022, 5:15 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
v4: Fix filepaths in release tarballs which are different than git repo

 ...01-ipc-force-POSIX-WNOHANG-resolving.patch | 52 +++++++++++++++++++
 meta/recipes-devtools/perl/perl_5.34.0.bb     |  1 +
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch

Comments

Alexander Kanavin Feb. 9, 2022, 9:11 a.m. UTC | #1
Please submit upstream:
https://github.com/jib/ipc-cmd

Alex

On Wed, 9 Feb 2022 at 06:15, Khem Raj <raj.khem@gmail.com> wrote:
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> v4: Fix filepaths in release tarballs which are different than git repo
>
>  ...01-ipc-force-POSIX-WNOHANG-resolving.patch | 52 +++++++++++++++++++
>  meta/recipes-devtools/perl/perl_5.34.0.bb     |  1 +
>  2 files changed, 53 insertions(+)
>  create mode 100644 meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
>
> diff --git a/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch b/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
> new file mode 100644
> index 00000000000..3df15d4f08c
> --- /dev/null
> +++ b/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
> @@ -0,0 +1,52 @@
> +From 0d8c411ef7e8b4452007c77eee3d83d227b86bb4 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem@gmail.com>
> +Date: Tue, 8 Feb 2022 14:05:22 -0800
> +Subject: [PATCH] ipc: force POSIX::WNOHANG resolving
> +
> +It seems POSIX module is special and may not have autovivified (resolved) WNOHANG.
> +see [1]
> +
> +Fixes
> + Bareword "POSIX::WNOHANG" not allowed while "strict subs"
> +
> +[1] https://redmine.lighttpd.net/projects/lighttpd/repository/14/revisions/78eb0e39454ab3ca8e7ef77f1d014b50b3632fb9
> +
> +Upstream-Status: Pending
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +---
> + cpan/IPC-Cmd/lib/IPC/Cmd.pm | 8 ++++----
> + 1 file changed, 4 insertions(+), 4 deletions(-)
> +
> +--- a/cpan/IPC-Cmd/lib/IPC/Cmd.pm
> ++++ b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
> +@@ -499,7 +499,7 @@ sub kill_gently {
> +         next;
> +     }
> +
> +-    my $waitpid = waitpid($pid, POSIX::WNOHANG);
> ++    my $waitpid = waitpid($pid, POSIX::WNOHANG());
> +
> +     if ($waitpid eq -1) {
> +         $child_finished = 1;
> +@@ -619,10 +619,10 @@ sub open3_run {
> +           #
> +           kill(-9, $$);
> +
> +-          POSIX::_exit 1;
> ++          POSIX::_exit(1);
> +         }
> +
> +-        my $waitpid = waitpid($pid, POSIX::WNOHANG);
> ++        my $waitpid = waitpid($pid, POSIX::WNOHANG());
> +
> +         # child finished, catch it's exit status
> +         if ($waitpid ne 0 && $waitpid ne -1) {
> +@@ -1005,7 +1005,7 @@ sub run_forked {
> +           $child_finished = 1;
> +         }
> +
> +-        my $waitpid = waitpid($pid, POSIX::WNOHANG);
> ++        my $waitpid = waitpid($pid, POSIX::WNOHANG());
> +
> +         # child finished, catch it's exit status
> +         if ($waitpid ne 0 && $waitpid ne -1) {
> diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb b/meta/recipes-devtools/perl/perl_5.34.0.bb
> index e4bcfe3ce69..48d755744fe 100644
> --- a/meta/recipes-devtools/perl/perl_5.34.0.bb
> +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
> @@ -20,6 +20,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
>             file://aacd2398e766500cb5d83c4d76b642fcf31d997a.patch \
>             file://ea57297a58b8f10ab885c19eec48ea076116cc1f.patch \
>             file://5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch \
> +           file://0001-ipc-force-POSIX-WNOHANG-resolving.patch \
>             "
>  SRC_URI:append:class-native = " \
>             file://perl-configpm-switch.patch \
> --
> 2.35.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#161535): https://lists.openembedded.org/g/openembedded-core/message/161535
> Mute This Topic: https://lists.openembedded.org/mt/89016040/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Richard Purdie Feb. 9, 2022, 1:44 p.m. UTC | #2
On Tue, 2022-02-08 at 21:15 -0800, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> v4: Fix filepaths in release tarballs which are different than git repo
> 
>  ...01-ipc-force-POSIX-WNOHANG-resolving.patch | 52 +++++++++++++++++++
>  meta/recipes-devtools/perl/perl_5.34.0.bb     |  1 +
>  2 files changed, 53 insertions(+)
>  create mode 100644 meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch

As I hinted at originally, this papers over a crack and doesn't solve the real
error:

https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/5042/steps/12/logs/stdio

What the real error is remains unclear too :(

Cheers,

Richard
Khem Raj Feb. 9, 2022, 5:39 p.m. UTC | #3
On Wed, Feb 9, 2022 at 5:44 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Tue, 2022-02-08 at 21:15 -0800, Khem Raj wrote:
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> > v4: Fix filepaths in release tarballs which are different than git repo
> >
> >  ...01-ipc-force-POSIX-WNOHANG-resolving.patch | 52 +++++++++++++++++++
> >  meta/recipes-devtools/perl/perl_5.34.0.bb     |  1 +
> >  2 files changed, 53 insertions(+)
> >  create mode 100644 meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
>
> As I hinted at originally, this papers over a crack and doesn't solve the real
> error:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/5042/steps/12/logs/stdio
>
> What the real error is remains unclear too :(

right, I was attempting to test if module importing/resolving was the
issue but it seems it
is not really the issue as I see below in your new logs, it means its
being resolved ok.

| Attempt to reload POSIX.pm aborted.

so I guess we still are at loss here.

>
> Cheers,
>
> Richard
>

Patch

diff --git a/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch b/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
new file mode 100644
index 00000000000..3df15d4f08c
--- /dev/null
+++ b/meta/recipes-devtools/perl/files/0001-ipc-force-POSIX-WNOHANG-resolving.patch
@@ -0,0 +1,52 @@ 
+From 0d8c411ef7e8b4452007c77eee3d83d227b86bb4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 8 Feb 2022 14:05:22 -0800
+Subject: [PATCH] ipc: force POSIX::WNOHANG resolving
+
+It seems POSIX module is special and may not have autovivified (resolved) WNOHANG.
+see [1]
+
+Fixes
+ Bareword "POSIX::WNOHANG" not allowed while "strict subs"
+
+[1] https://redmine.lighttpd.net/projects/lighttpd/repository/14/revisions/78eb0e39454ab3ca8e7ef77f1d014b50b3632fb9
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cpan/IPC-Cmd/lib/IPC/Cmd.pm | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/cpan/IPC-Cmd/lib/IPC/Cmd.pm
++++ b/cpan/IPC-Cmd/lib/IPC/Cmd.pm
+@@ -499,7 +499,7 @@ sub kill_gently {
+         next;
+     }
+ 
+-    my $waitpid = waitpid($pid, POSIX::WNOHANG);
++    my $waitpid = waitpid($pid, POSIX::WNOHANG());
+ 
+     if ($waitpid eq -1) {
+         $child_finished = 1;
+@@ -619,10 +619,10 @@ sub open3_run {
+           #
+           kill(-9, $$);
+ 
+-          POSIX::_exit 1;
++          POSIX::_exit(1);
+         }
+ 
+-        my $waitpid = waitpid($pid, POSIX::WNOHANG);
++        my $waitpid = waitpid($pid, POSIX::WNOHANG());
+ 
+         # child finished, catch it's exit status
+         if ($waitpid ne 0 && $waitpid ne -1) {
+@@ -1005,7 +1005,7 @@ sub run_forked {
+           $child_finished = 1;
+         }
+ 
+-        my $waitpid = waitpid($pid, POSIX::WNOHANG);
++        my $waitpid = waitpid($pid, POSIX::WNOHANG());
+ 
+         # child finished, catch it's exit status
+         if ($waitpid ne 0 && $waitpid ne -1) {
diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb b/meta/recipes-devtools/perl/perl_5.34.0.bb
index e4bcfe3ce69..48d755744fe 100644
--- a/meta/recipes-devtools/perl/perl_5.34.0.bb
+++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
@@ -20,6 +20,7 @@  SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
            file://aacd2398e766500cb5d83c4d76b642fcf31d997a.patch \
            file://ea57297a58b8f10ab885c19eec48ea076116cc1f.patch \
            file://5bc1e5fdd87aa205011512cd1e6cc655bcf677fd.patch \
+           file://0001-ipc-force-POSIX-WNOHANG-resolving.patch \
            "
 SRC_URI:append:class-native = " \
            file://perl-configpm-switch.patch \