You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Olaf Hering <ol...@suse.de> on 2008/01/23 15:04:51 UTC
[PATCH] close racecondition with make -j in header_wrappers.py
sometimes make -j fails. I came up with the change below.
This change is in use since Feb 2006.
Still applies to trunk.
/usr/bin/python /usr/src/packages/BUILD/subversion-1.3.x/build/generator/swig/header_wrappers.py /usr/src/packages/BUILD/subversion-1.3.x/build.conf /usr/bin/swig /usr/src/packages/BUILD/subversion-1.3.x/subversion/include/svn_auth.h
/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/core.i:613: Error: Unable to find 'svn_auth_h.swg'
/usr/bin/swig -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/include -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/proxy -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/proxy -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/include -I/usr/include -I/usr/include/apr-1 -python -classic -w451 -w305 -o subversion/bindings/swig/python/core.c /usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/core.i
build/generator/swig/header_wrappers.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/build/generator/swig/header_wrappers.py
+++ b/build/generator/swig/header_wrappers.py
@@ -239,7 +239,7 @@ class Generator(generator.swig.Generator
self.proxy_filename(base_fname))
# Open the output file
- self.ofile = open(output_fname, 'w')
+ self.ofile = open(output_fname + "~", 'w')
self.ofile.write('/* Proxy classes for %s\n' % base_fname)
self.ofile.write(' * DO NOT EDIT -- AUTOMATICALLY GENERATED */\n')
@@ -264,6 +264,7 @@ class Generator(generator.swig.Generator
# Close our output file
self.ofile.close()
+ os.rename(output_fname + "~", output_fname)
def process_header_file(self, fname):
"""Generate a wrapper around a header file"""
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: [PATCH] do not use neon.la files
Posted by Arfrever Frehtes Taifersar Arahesis <ar...@gmail.com>.
2008-01-23 16:09:09 Olaf Hering napisaĆ(a):
> We removed most static libs and the .la files.
> Maybe the change below will work for everyone.
>
> Index: build/ac-macros/neon.m4
> ===================================================================
> --- build/ac-macros/neon.m4.orig 2007-10-08 04:23:55.000000000 +0200
> +++ build/ac-macros/neon.m4 2007-11-26 23:12:19.000000000 +0100
> @@ -143,7 +143,7 @@ AC_DEFUN(SVN_NEON_CONFIG,
> test "$svn_allowed_neon" = "any"; then
> svn_allowed_neon_on_system="yes"
> SVN_NEON_INCLUDES=[`$neon_config --cflags | sed -e 's/-D[^ ]*//g'`]
> - NEON_LIBS=`$neon_config --la-file`
> + NEON_LIBS=`$neon_config --libs`
> CFLAGS=["$CFLAGS `$neon_config --cflags | sed -e 's/-I[^ ]*//g'`"]
> svn_lib_neon="yes"
> break
>
-1 until `neon-config --libs` is fixed. Currently it contains LDFLAGS and
libraries which are dependencies of Neon.
It's still broken in Neon trunk.
`neon-config --la-file` doesn't cause any problems.
--
Arfrever Frehtes Taifersar Arahesis
Re: [PATCH] use ipv4 if the ipv6 address cant be reached
Posted by David Glasser <gl...@davidglasser.net>.
Has anyone familiar with these issues had the chance to review this?
--dave
On Jan 23, 2008 7:06 AM, Olaf Hering <ol...@suse.de> wrote:
>
> Fall back to ipv4 if the host has an ipv6 address,
> but doesnt respond to ipv6 right now.
> This change worked for us.
>
> https://bugzilla.novell.com/show_bug.cgi?id=193350
>
> ---
> subversion/libsvn_ra_svn/client.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> --- a/subversion/libsvn_ra_svn/client.c
> +++ b/subversion/libsvn_ra_svn/client.c
> @@ -145,10 +145,30 @@ static svn_error_t *make_connection(cons
> return svn_error_wrap_apr(status, _("Can't create socket"));
>
> status = apr_socket_connect(*sock, sa);
> + if (!status)
> + goto out;
> + if (sa->family == APR_INET6) {
> + status = apr_sockaddr_info_get(&sa, hostname, APR_INET, port, 0, pool);
> + if (status)
> + return svn_error_createf(status, NULL, _("Unknown hostname '%s'"),
> + hostname);
> +#ifdef MAX_SECS_TO_LINGER
> + /* ### old APR interface */
> + status = apr_socket_create(sock, sa->family, SOCK_STREAM, pool);
> +#else
> + status = apr_socket_create(sock, sa->family, SOCK_STREAM, APR_PROTO_TCP,
> + pool);
> +#endif
> + if (status)
> + return svn_error_wrap_apr(status, _("Can't create socket"));
> +
> + status = apr_socket_connect(*sock, sa);
> + }
> if (status)
> return svn_error_wrap_apr(status, _("Can't connect to host '%s'"),
> hostname);
>
> +out:
> return SVN_NO_ERROR;
> }
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
[PATCH] do not use neon.la files
Posted by Olaf Hering <ol...@suse.de>.
We removed most static libs and the .la files.
Maybe the change below will work for everyone.
Index: build/ac-macros/neon.m4
===================================================================
--- build/ac-macros/neon.m4.orig 2007-10-08 04:23:55.000000000 +0200
+++ build/ac-macros/neon.m4 2007-11-26 23:12:19.000000000 +0100
@@ -143,7 +143,7 @@ AC_DEFUN(SVN_NEON_CONFIG,
test "$svn_allowed_neon" = "any"; then
svn_allowed_neon_on_system="yes"
SVN_NEON_INCLUDES=[`$neon_config --cflags | sed -e 's/-D[^ ]*//g'`]
- NEON_LIBS=`$neon_config --la-file`
+ NEON_LIBS=`$neon_config --libs`
CFLAGS=["$CFLAGS `$neon_config --cflags | sed -e 's/-I[^ ]*//g'`"]
svn_lib_neon="yes"
break
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
[PATCH] use ipv4 if the ipv6 address cant be reached
Posted by Olaf Hering <ol...@suse.de>.
Fall back to ipv4 if the host has an ipv6 address,
but doesnt respond to ipv6 right now.
This change worked for us.
https://bugzilla.novell.com/show_bug.cgi?id=193350
---
subversion/libsvn_ra_svn/client.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
--- a/subversion/libsvn_ra_svn/client.c
+++ b/subversion/libsvn_ra_svn/client.c
@@ -145,10 +145,30 @@ static svn_error_t *make_connection(cons
return svn_error_wrap_apr(status, _("Can't create socket"));
status = apr_socket_connect(*sock, sa);
+ if (!status)
+ goto out;
+ if (sa->family == APR_INET6) {
+ status = apr_sockaddr_info_get(&sa, hostname, APR_INET, port, 0, pool);
+ if (status)
+ return svn_error_createf(status, NULL, _("Unknown hostname '%s'"),
+ hostname);
+#ifdef MAX_SECS_TO_LINGER
+ /* ### old APR interface */
+ status = apr_socket_create(sock, sa->family, SOCK_STREAM, pool);
+#else
+ status = apr_socket_create(sock, sa->family, SOCK_STREAM, APR_PROTO_TCP,
+ pool);
+#endif
+ if (status)
+ return svn_error_wrap_apr(status, _("Can't create socket"));
+
+ status = apr_socket_connect(*sock, sa);
+ }
if (status)
return svn_error_wrap_apr(status, _("Can't connect to host '%s'"),
hostname);
+out:
return SVN_NO_ERROR;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: [PATCH] close racecondition with make -j in header_wrappers.py
Posted by David Glasser <gl...@davidglasser.net>.
On Jan 29, 2008 12:15 PM, Peter Samuelson <pe...@p12n.org> wrote:
>
> [David Glasser]
> > Ah, no wonder it fails for me if I put my swig commands under -j.
> > I'm not too familiar with the SWIG generation process, though; can
> > another commiter review this? Why would "make" be trying to write
> > the same file multiple times anyway? That seems wrong.
>
> From what I can see, it's not that the make process is writing the same
> file multiple times: it is that the output files in question are
> dependencies of other make targets. If your make is threaded, one
> thread might notice a file's existence and decide to build other
> targets that depend on it - even if another thread is still writing to
> the original file. By writing to a different filename then renaming it
> atomically, this won't happen.
>
> ...Though this does seem like it would be a common race condition with
> all kinds of build processes. Perhaps 'make -j' tries to avoid the
> situation, but is thwarted by recursive $(MAKE) invocation, or
> something.
I'd like to see this issue fixed, but I'd still like to see somebody
explain why the same file is being generated multiple times by make
-j... It seems like the right solution would be to not make our build
process do extra work!
--dave
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: [PATCH] close racecondition with make -j in header_wrappers.py
Posted by Peter Samuelson <pe...@p12n.org>.
[David Glasser]
> Ah, no wonder it fails for me if I put my swig commands under -j.
> I'm not too familiar with the SWIG generation process, though; can
> another commiter review this? Why would "make" be trying to write
> the same file multiple times anyway? That seems wrong.
Re: [PATCH] close racecondition with make -j in header_wrappers.py
Posted by David Glasser <gl...@davidglasser.net>.
Ah, no wonder it fails for me if I put my swig commands under -j. I'm
not too familiar with the SWIG generation process, though; can another
commiter review this? Why would "make" be trying to write the same
file multiple times anyway? That seems wrong.
--dave
On Jan 23, 2008 7:04 AM, Olaf Hering <ol...@suse.de> wrote:
>
> sometimes make -j fails. I came up with the change below.
> This change is in use since Feb 2006.
> Still applies to trunk.
>
> /usr/bin/python /usr/src/packages/BUILD/subversion-1.3.x/build/generator/swig/header_wrappers.py /usr/src/packages/BUILD/subversion-1.3.x/build.conf /usr/bin/swig /usr/src/packages/BUILD/subversion-1.3.x/subversion/include/svn_auth.h
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/core.i:613: Error: Unable to find 'svn_auth_h.swg'
> /usr/bin/swig -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/include -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/proxy -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/proxy -I/usr/src/packages/BUILD/subversion-1.3.x/subversion/include -I/usr/include -I/usr/include/apr-1 -python -classic -w451 -w305 -o subversion/bindings/swig/python/core.c /usr/src/packages/BUILD/subversion-1.3.x/subversion/bindings/swig/core.i
>
> build/generator/swig/header_wrappers.py | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --- a/build/generator/swig/header_wrappers.py
> +++ b/build/generator/swig/header_wrappers.py
> @@ -239,7 +239,7 @@ class Generator(generator.swig.Generator
> self.proxy_filename(base_fname))
>
> # Open the output file
> - self.ofile = open(output_fname, 'w')
> + self.ofile = open(output_fname + "~", 'w')
> self.ofile.write('/* Proxy classes for %s\n' % base_fname)
> self.ofile.write(' * DO NOT EDIT -- AUTOMATICALLY GENERATED */\n')
>
> @@ -264,6 +264,7 @@ class Generator(generator.swig.Generator
>
> # Close our output file
> self.ofile.close()
> + os.rename(output_fname + "~", output_fname)
>
> def process_header_file(self, fname):
> """Generate a wrapper around a header file"""
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org