Re: [HACKERS] enable-thread-safety defaults?
On tis, 2009-12-01 at 18:03 -0500, Bruce Momjian wrote: Tom Lane wrote: Magnus Hagander mag...@hagander.net writes: 2009/12/1 Bruce Momjian br...@momjian.us: What are we going to do for build farm members who don't support threading? Is someone going to manually update their configure flags? Yeah, I think so. Unless there's a whole lot of them, in which case we revert the patch. It would seem like we ought to try the one-liner patch Magnus proposed (ie flip the default) and see what the effects are, before we go with the much larger patch Bruce wrote. OK, done --- let the breakage begin. (I will be monitoring the build farm and will work with Andrew Dunstan on any issues.) You have removed all the configure code that defined ENABLE_THREAD_SAFETY, but there is still lots and lots of code that checks for #ifdef ENABLE_THREAD_SAFETY. So this is is probably quite broken at the moment. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Peter Eisentraut wrote: On tis, 2009-12-01 at 18:03 -0500, Bruce Momjian wrote: Tom Lane wrote: Magnus Hagander mag...@hagander.net writes: 2009/12/1 Bruce Momjian br...@momjian.us: What are we going to do for build farm members who don't support threading? Is someone going to manually update their configure flags? Yeah, I think so. Unless there's a whole lot of them, in which case we revert the patch. It would seem like we ought to try the one-liner patch Magnus proposed (ie flip the default) and see what the effects are, before we go with the much larger patch Bruce wrote. OK, done --- let the breakage begin. (I will be monitoring the build farm and will work with Andrew Dunstan on any issues.) You have removed all the configure code that defined ENABLE_THREAD_SAFETY, but there is still lots and lots of code that checks for #ifdef ENABLE_THREAD_SAFETY. So this is is probably quite broken at the moment. Yep, you have identified the bug, and I have applied the proper patch, thanks. -- Bruce Momjian br...@momjian.ushttp://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Bruce Momjian wrote: It would seem like we ought to try the one-liner patch Magnus proposed (ie flip the default) and see what the effects are, before we go with the much larger patch Bruce wrote. OK, done --- let the breakage begin. (I will be monitoring the build farm and will work with Andrew Dunstan on any issues.) OK, only Unixware and OpenBSD went red on the buildfarm with threading enabled, so I have applied the more complete patch to enable thread safety on clients by default, e.g. doc changes. Andrew Dunstan is going to contact those build farm members so they use --disable-thread-safety. He has also agreed to update the buildfarm to detect this new option behavior. -- Bruce Momjian br...@momjian.ushttp://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Peter Eisentraut wrote: On m?n, 2009-11-30 at 12:21 -0500, Bruce Momjian wrote: ! for thread safety; use --disable-thread-safety to disable threading.]) --disable-thread-safety does not disable threading, it disables thread safety. Good point! Patch updated and attached. What are we going to do for build farm members who don't support threading? Is someone going to manually update their configure flags? -- Bruce Momjian br...@momjian.ushttp://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + Index: configure === RCS file: /cvsroot/pgsql/configure,v retrieving revision 1.659 diff -c -c -r1.659 configure *** configure 30 Nov 2009 16:50:37 - 1.659 --- configure 1 Dec 2009 11:22:36 - *** *** 823,829 enable_depend enable_cassert enable_thread_safety - enable_thread_safety_force with_tcl with_tclconfig with_perl --- 823,828 *** *** 1497,1505 --enable-dtrace build with DTrace support --enable-depend turn on automatic dependency tracking --enable-cassertenable assertion checks (for debugging) ! --enable-thread-safety make client libraries thread-safe ! --enable-thread-safety-force ! force thread-safety despite thread test failure --disable-float4-byval disable float4 passed by value --disable-float8-byval disable float8 passed by value --disable-largefile omit support for large files --- 1496,1502 --enable-dtrace build with DTrace support --enable-depend turn on automatic dependency tracking --enable-cassertenable assertion checks (for debugging) ! --disable-thread-safety disable thread-safety in client libraries --disable-float4-byval disable float4 passed by value --disable-float8-byval disable float8 passed by value --disable-largefile omit support for large files *** *** 4859,4892 # { $as_echo $as_me:$LINENO: checking allow thread-safe client libraries 5 $as_echo_n checking allow thread-safe client libraries... 6; } - if test $PORTNAME != win32; then - - - # Check whether --enable-thread-safety was given. - if test ${enable_thread_safety+set} = set; then - enableval=$enable_thread_safety; - case $enableval in - yes) - : - ;; - no) - : - ;; - *) - { { $as_echo $as_me:$LINENO: error: no argument expected for --enable-thread-safety option 5 - $as_echo $as_me: error: no argument expected for --enable-thread-safety option 2;} -{ (exit 1); exit 1; }; } - ;; - esac - - else - enable_thread_safety=no - - fi - - - else - # Win32 should always use threads # Check whether --enable-thread-safety was given. --- 4856,4861 *** *** 4912,4953 fi - fi - - - - # Check whether --enable-thread-safety-force was given. - if test ${enable_thread_safety_force+set} = set; then - enableval=$enable_thread_safety_force; - case $enableval in - yes) - : - ;; - no) - : - ;; - *) - { { $as_echo $as_me:$LINENO: error: no argument expected for --enable-thread-safety-force option 5 - $as_echo $as_me: error: no argument expected for --enable-thread-safety-force option 2;} -{ (exit 1); exit 1; }; } - ;; - esac - - else - enable_thread_safety_force=no - - fi - - - if test $enable_thread_safety = yes -o \ - $enable_thread_safety_force = yes; then - enable_thread_safety=yes # for 'force' - - cat confdefs.h \_ACEOF - #define ENABLE_THREAD_SAFETY 1 - _ACEOF - - fi { $as_echo $as_me:$LINENO: result: $enable_thread_safety 5 $as_echo $enable_thread_safety 6; } --- 4881,4886 *** *** 21316,21325 if test $PTHREAD_CC != $CC; then { { $as_echo $as_me:$LINENO: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety. 5 $as_echo $as_me: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety. 2;} { (exit 1); exit 1; }; } fi --- 21249,21258 if test $PTHREAD_CC != $CC; then { { $as_echo $as_me:$LINENO: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety; use --disable-thread-safety to disable thread safety. 5 $as_echo $as_me: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety; use --disable-thread-safety to disable thread safety. 2;} { (exit 1); exit 1; }; } fi *** *** 21465,21472 if test x$ac_cv_header_pthread_h = xyes; then : else ! { { $as_echo $as_me:$LINENO: error: pthread.h not found, required for --enable-thread-safety 5 ! $as_echo $as_me: error: pthread.h not found, required for --enable-thread-safety
Re: [HACKERS] enable-thread-safety defaults?
2009/12/1 Bruce Momjian br...@momjian.us: Peter Eisentraut wrote: On m?n, 2009-11-30 at 12:21 -0500, Bruce Momjian wrote: ! for thread safety; use --disable-thread-safety to disable threading.]) --disable-thread-safety does not disable threading, it disables thread safety. Good point! Patch updated and attached. What are we going to do for build farm members who don't support threading? Is someone going to manually update their configure flags? Yeah, I think so. Unless there's a whole lot of them, in which case we revert the patch. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Magnus Hagander mag...@hagander.net writes: 2009/12/1 Bruce Momjian br...@momjian.us: What are we going to do for build farm members who don't support threading? Is someone going to manually update their configure flags? Yeah, I think so. Unless there's a whole lot of them, in which case we revert the patch. It would seem like we ought to try the one-liner patch Magnus proposed (ie flip the default) and see what the effects are, before we go with the much larger patch Bruce wrote. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Tom Lane wrote: Magnus Hagander mag...@hagander.net writes: 2009/12/1 Bruce Momjian br...@momjian.us: What are we going to do for build farm members who don't support threading? ?Is someone going to manually update their configure flags? Yeah, I think so. Unless there's a whole lot of them, in which case we revert the patch. It would seem like we ought to try the one-liner patch Magnus proposed (ie flip the default) and see what the effects are, before we go with the much larger patch Bruce wrote. OK, done --- let the breakage begin. (I will be monitoring the build farm and will work with Andrew Dunstan on any issues.) -- Bruce Momjian br...@momjian.ushttp://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Magnus Hagander wrote: 2009/11/24 Tom Lane t...@sss.pgh.pa.us: Magnus Hagander mag...@hagander.net writes: ISTM that it should be as simple as the attached patch. Seems to work for me :-) But I'm no autoconf guru, so maybe I missed something? This patch sort of begs the question what about enable-thread-safety-force? That looks even more like a wart now than it did before. Agreed. But how about we try it piece-by-piece, which is we start with this to see if it actually hits any of our bf platforms? Attached is a complete patch to enable threading of client libraries by default --- I think it is time (threading was added to PG 7.4 in 2003). I think we can guarantee that this will turn some build farm members red. How do we pass --disable-thread-safety to those hosts? The patch also removes --enable-thread-safety-force, which was added in 2004 for a platform that didn't have a thread-safe getpwuid(): http://archives.postgresql.org/pgsql-hackers/2004-07/msg00485.php I think we can just tell people they have to upgrade their operating systems if they want threading on those old platforms (or wait for complaints). -- Bruce Momjian br...@momjian.ushttp://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + Index: configure === RCS file: /cvsroot/pgsql/configure,v retrieving revision 1.659 diff -c -c -r1.659 configure *** configure 30 Nov 2009 16:50:37 - 1.659 --- configure 30 Nov 2009 17:12:22 - *** *** 823,829 enable_depend enable_cassert enable_thread_safety - enable_thread_safety_force with_tcl with_tclconfig with_perl --- 823,828 *** *** 1497,1505 --enable-dtrace build with DTrace support --enable-depend turn on automatic dependency tracking --enable-cassertenable assertion checks (for debugging) ! --enable-thread-safety make client libraries thread-safe ! --enable-thread-safety-force ! force thread-safety despite thread test failure --disable-float4-byval disable float4 passed by value --disable-float8-byval disable float8 passed by value --disable-largefile omit support for large files --- 1496,1502 --enable-dtrace build with DTrace support --enable-depend turn on automatic dependency tracking --enable-cassertenable assertion checks (for debugging) ! --disable-thread-safety make client libraries thread-safe --disable-float4-byval disable float4 passed by value --disable-float8-byval disable float8 passed by value --disable-largefile omit support for large files *** *** 4859,4892 # { $as_echo $as_me:$LINENO: checking allow thread-safe client libraries 5 $as_echo_n checking allow thread-safe client libraries... 6; } - if test $PORTNAME != win32; then - - - # Check whether --enable-thread-safety was given. - if test ${enable_thread_safety+set} = set; then - enableval=$enable_thread_safety; - case $enableval in - yes) - : - ;; - no) - : - ;; - *) - { { $as_echo $as_me:$LINENO: error: no argument expected for --enable-thread-safety option 5 - $as_echo $as_me: error: no argument expected for --enable-thread-safety option 2;} -{ (exit 1); exit 1; }; } - ;; - esac - - else - enable_thread_safety=no - - fi - - - else - # Win32 should always use threads # Check whether --enable-thread-safety was given. --- 4856,4861 *** *** 4912,4953 fi - fi - - - - # Check whether --enable-thread-safety-force was given. - if test ${enable_thread_safety_force+set} = set; then - enableval=$enable_thread_safety_force; - case $enableval in - yes) - : - ;; - no) - : - ;; - *) - { { $as_echo $as_me:$LINENO: error: no argument expected for --enable-thread-safety-force option 5 - $as_echo $as_me: error: no argument expected for --enable-thread-safety-force option 2;} -{ (exit 1); exit 1; }; } - ;; - esac - - else - enable_thread_safety_force=no - - fi - - - if test $enable_thread_safety = yes -o \ - $enable_thread_safety_force = yes; then - enable_thread_safety=yes # for 'force' - - cat confdefs.h \_ACEOF - #define ENABLE_THREAD_SAFETY 1 - _ACEOF - - fi { $as_echo $as_me:$LINENO: result: $enable_thread_safety 5 $as_echo $enable_thread_safety 6; } --- 4881,4886 *** *** 21316,21325 if test $PTHREAD_CC != $CC; then { { $as_echo $as_me:$LINENO: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety. 5 $as_echo $as_me: error: PostgreSQL does not support platforms that require a special compiler ! for thread safety. 2;} { (exit 1); exit 1; }; } fi ---
Re: [HACKERS] enable-thread-safety defaults?
On mån, 2009-11-30 at 12:21 -0500, Bruce Momjian wrote: ! for thread safety; use --disable-thread-safety to disable threading.]) --disable-thread-safety does not disable threading, it disables thread safety. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
2009/11/24 Tom Lane t...@sss.pgh.pa.us: Magnus Hagander mag...@hagander.net writes: ISTM that it should be as simple as the attached patch. Seems to work for me :-) But I'm no autoconf guru, so maybe I missed something? This patch sort of begs the question what about enable-thread-safety-force? That looks even more like a wart now than it did before. Agreed. But how about we try it piece-by-piece, which is we start with this to see if it actually hits any of our bf platforms? -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
On Sat, Nov 21, 2009 at 08:29, Magnus Hagander mag...@hagander.net wrote: 2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 08:39 +0100, Magnus Hagander wrote: 2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? So why do we have largefile enabled by default? And zlib? And readline? Let me be more verbose: I would assume that we want the configure defaults to be the same on all platforms. We fail by default, for example, if zlib and readline are not there, but you can turn them off explicitly. If we turn thread-safety on by default, we will/should fail if thread-safety is not supported, requiring the user to turn it off explicitly. Yes, of course. Silently turning it off would be a really really bad idea. If enough platforms don't support thread-safety, this could become annoying. Agreed. I don't have a good overview over how many platforms would be affected, and I could in general support changing the default, but I'm just laying down one possible constraint. Well, the buildfarm would tell us that, no? :) ISTM that it should be as simple as the attached patch. Seems to work for me :-) But I'm no autoconf guru, so maybe I missed something? Comments? If not, how about we put this on HEAD and let the buildfarm tell us how bad an idea it was? -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ *** a/configure.in --- b/configure.in *** *** 558,569 IFS=$ac_save_IFS # Enable thread-safe client libraries # AC_MSG_CHECKING([allow thread-safe client libraries]) - if test $PORTNAME != win32; then - PGAC_ARG_BOOL(enable, thread-safety, no, [make client libraries thread-safe]) - else - # Win32 should always use threads PGAC_ARG_BOOL(enable, thread-safety, yes, [make client libraries thread-safe]) - fi PGAC_ARG_BOOL(enable, thread-safety-force, no, [force thread-safety despite thread test failure]) if test $enable_thread_safety = yes -o \ --- 558,564 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Magnus Hagander mag...@hagander.net writes: ISTM that it should be as simple as the attached patch. Seems to work for me :-) But I'm no autoconf guru, so maybe I missed something? This patch sort of begs the question what about enable-thread-safety-force? That looks even more like a wart now than it did before. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
On fre, 2009-11-20 at 08:39 +0100, Magnus Hagander wrote: 2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? So why do we have largefile enabled by default? And zlib? And readline? Let me be more verbose: I would assume that we want the configure defaults to be the same on all platforms. We fail by default, for example, if zlib and readline are not there, but you can turn them off explicitly. If we turn thread-safety on by default, we will/should fail if thread-safety is not supported, requiring the user to turn it off explicitly. If enough platforms don't support thread-safety, this could become annoying. I don't have a good overview over how many platforms would be affected, and I could in general support changing the default, but I'm just laying down one possible constraint. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Peter Eisentraut wrote: I don't have a good overview over how many platforms would be affected The anniversary of this thread is a few days early: http://archives.postgresql.org/message-id/492ea404.5080...@esilo.com -- Greg Smith2ndQuadrant Baltimore, MD PostgreSQL Training, Services and Support g...@2ndquadrant.com www.2ndQuadrant.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
Peter Eisentraut wrote: Let me be more verbose: I would assume that we want the configure defaults to be the same on all platforms. We fail by default, for example, if zlib and readline are not there, but you can turn them off explicitly. If we turn thread-safety on by default, we will/should fail if thread-safety is not supported, requiring the user to turn it off explicitly. If enough platforms don't support thread-safety, this could become annoying. I don't have a good overview over how many platforms would be affected, and I could in general support changing the default, but I'm just laying down one possible constraint. Well, if we turn it on by default maybe the buildfarm will tell us who the major culprits are :-) cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 08:39 +0100, Magnus Hagander wrote: 2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? So why do we have largefile enabled by default? And zlib? And readline? Let me be more verbose: I would assume that we want the configure defaults to be the same on all platforms. We fail by default, for example, if zlib and readline are not there, but you can turn them off explicitly. If we turn thread-safety on by default, we will/should fail if thread-safety is not supported, requiring the user to turn it off explicitly. Yes, of course. Silently turning it off would be a really really bad idea. If enough platforms don't support thread-safety, this could become annoying. Agreed. I don't have a good overview over how many platforms would be affected, and I could in general support changing the default, but I'm just laying down one possible constraint. Well, the buildfarm would tell us that, no? :) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] enable-thread-safety defaults?
Is there any actual reason why we are building without thread safety by default on most platforms? Seems I get asked that every time somebody forgets to add a --enable-thread-safety. Wouldn't it be more logical to have that be the default, and provide --disable-thread-safety if there are platforms that still don't support it? AFAIK pretty much all binary packages will do it by default, but it's easy to forget when building from source -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? So why do we have largefile enabled by default? And zlib? And readline? -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] enable-thread-safety defaults?
On Fri, Nov 20, 2009 at 7:39 AM, Magnus Hagander mag...@hagander.net wrote: 2009/11/20 Peter Eisentraut pete...@gmx.net: On fre, 2009-11-20 at 02:41 +0100, Magnus Hagander wrote: Is there any actual reason why we are building without thread safety by default on most platforms? Consistent defaults on all platforms? So why do we have largefile enabled by default? And zlib? And readline? Well those things are user interface options. They don't change the libpq api. However given that distributions set this option I don't see much point in worrying about the api being inconsistent. I agree that having libpq being thread-safe would be a sensible default. -- greg -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers