Re: [PATCH,Hurd] Fix hang on fork

2014-08-27 Thread Samuel Thibault
(Building the petsc package consistently reproduces the issue several times during the build, while I could build the package twice without any issue with the patch applied). Samuel

[PATCH,Hurd] Fix hang on fork

2014-08-27 Thread Samuel Thibault
If e.g. a signal is being received while we are running fork(), the signal thread may be having our SS lock when we make the space copy, and thus in the child we can not take the SS lock any more. * sysdeps/mach/hurd/fork.c (__fork): Lock SS->lock around __proc_dostop() call. Signed-off-by: Samue

Re: [PATCH,Hurd] bind() fails when umask is 0777

2014-08-27 Thread Roland McGrath
That looks fine. I don't think anybody cares about the freeze for Hurd-only code, so go ahead and commit it.

Re: [PATCH,Hurd] bind() fails when umask is 0777

2014-08-27 Thread Samuel Thibault
2014-08-27 Samuel Thibault Simplify atomicity of socket creation in bind. * sysdeps/mach/hurd/bind.c (__bind): Use dir_lookup(node, "") instead of looking up the name after linking the file. --- a/sysdeps/mach/hurd/bind.c +++ b/sysdeps/mach/hurd/bind.c @@ -40,7 +40,7 @

Re: [PATCH,Hurd] bind() fails when umask is 0777

2014-08-27 Thread Roland McGrath
> + if (! err) > + if (doretry != FS_RETRY_NORMAL || retryname[0] != '\0') > + err = EADDRINUSE; Please use a simple && expression rather than a nested if here. > + /* Get the address port. */ > + err = __ifsock_getsockaddr (ifsock, &aport)

Re: [PATCH,Hurd] bind() fails when umask is 0777

2014-08-27 Thread Samuel Thibault
Roland McGrath, le Tue 26 Aug 2014 14:26:15 -0700, a écrit : > I assume you mean umask is 0666 or more, such that (0600 & ~umask) is 0. Oops, sure, yes :) > The fix to use dir_lookup of "" to invoke the active translator seems > correct and orthogonal to the umask issue. [...] Can you send a fix

Re: assertion failure in the glibc

2014-08-27 Thread Samuel Thibault
Hello, Justus Winter, le Mon 05 May 2014 14:10:48 +0200, a écrit : > I believe I have found two problems in the glibc. > > 1. hurd_check_cancel takes 'lock', and then asserts that >'critical_section_lock' is not taken. However, hurd_thread_cancel >first takes 'critical_section_lock' and