Bug#841354: Fix for hanging epoll_wait on arm64

2016-10-23 Thread Dominique Dumont
Hello

I've uploaded libuv1 with the patch proposed by Tobias. I'll also handle 
libuv0.10 soon.

Thanks to Tobias and Brandon for the help.

All the best

-- 
 https://github.com/dod38fr/   -o- http://search.cpan.org/~ddumont/
http://ddumont.wordpress.com/  -o-   irc: dod at irc.debian.org



Bug#841354: Fix for hanging epoll_wait on arm64

2016-10-19 Thread Tobias Leich

Hi,

attached is a fix for the mips-epoll_pwait.diff patch file.
The exiting patch file removes zeroing sigmask, but does not zero 
sigset, the replacement of sigmask.


This causes sigset to hold bogus data and causes a hang.

The attached patch fixes this by moving the zeroing of sigset to before 
the condition, so it runs always.

Tested on arm64 chroot successfully.

Cheers, Tobias

diff --git a/debian/patches/mips-epoll_pwait.diff b/debian/patches/mips-epoll_pwait.diff
index 5b6bdb1..161f72e 100644
--- a/debian/patches/mips-epoll_pwait.diff
+++ b/debian/patches/mips-epoll_pwait.diff
@@ -48,8 +48,9 @@ Index: libuv1/src/unix/linux-core.c
  
 -  sigmask = 0;
 +  is_sigmasked = 0;
++  sigemptyset();
if (loop->flags & UV_LOOP_BLOCK_SIGPROF) {
- sigemptyset();
+-sigemptyset();
  sigaddset(, SIGPROF);
 -sigmask |= 1 << (SIGPROF - 1);
 +is_sigmasked = 1;