Author: svn-role
Date: Wed Jul 8 04:00:10 2026
New Revision: 1935988
Log:
Merge r1934784 from trunk:
* r1934784
Do not mix atomic and non-atomic access to a variable.
Justification:
It's just wrong, and whilst it might work on many modern CPUs,
we shouldn't rely on that.
Votes:
+1: brane, ivan, dsahlberg
Modified:
subversion/branches/1.15.x/ (props changed)
subversion/branches/1.15.x/STATUS
subversion/branches/1.15.x/subversion/svnserve/svnserve.c
Modified: subversion/branches/1.15.x/STATUS
==============================================================================
--- subversion/branches/1.15.x/STATUS Wed Jul 8 02:39:08 2026
(r1935987)
+++ subversion/branches/1.15.x/STATUS Wed Jul 8 04:00:10 2026
(r1935988)
@@ -67,14 +67,6 @@ Veto-blocked changes:
Approved changes:
=================
- * r1934784
- Do not mix atomic and non-atomic access to a variable.
- Justification:
- It's just wrong, and whilst it might work on many modern CPUs,
- we shouldn't rely on that.
- Votes:
- +1: brane, ivan, dsahlberg
-
* r1934786
Fix an uninitialized memory access bug in FSX.
Justification:
@@ -96,4 +88,3 @@ Approved changes:
Subversion should try to not crash.
Votes:
+1: brane, ivan, kotkov
-
Modified: subversion/branches/1.15.x/subversion/svnserve/svnserve.c
==============================================================================
--- subversion/branches/1.15.x/subversion/svnserve/svnserve.c Wed Jul 8
02:39:08 2026 (r1935987)
+++ subversion/branches/1.15.x/subversion/svnserve/svnserve.c Wed Jul 8
04:00:10 2026 (r1935988)
@@ -495,7 +495,7 @@ static void sigchld_handler(int signo)
#endif
#ifdef APR_HAVE_SIGACTION
-static svn_atomic_t sigtermint_seen = 0;
+static volatile svn_atomic_t sigtermint_seen = 0;
static void
sigtermint_handler(int signo)
{
@@ -559,7 +559,7 @@ accept_connection(connection_t **connect
status = apr_socket_accept(&(*connection)->usock, sock,
connection_pool);
#if APR_HAVE_SIGACTION
- if (sigtermint_seen)
+ if (svn_atomic_read(&sigtermint_seen))
break;
#endif
if (handling_mode == connection_mode_fork)
@@ -579,7 +579,7 @@ accept_connection(connection_t **connect
if (!status)
return SVN_NO_ERROR;
#if APR_HAVE_SIGACTION
- else if (sigtermint_seen)
+ else if (svn_atomic_read(&sigtermint_seen))
return SVN_NO_ERROR;
#endif
else
@@ -1368,7 +1368,7 @@ sub_main(int *exit_code,
SVN_ERR(accept_connection(&connection, sock, ¶ms, handling_mode,
pool));
#if APR_HAVE_SIGACTION
- if (sigtermint_seen)
+ if (svn_atomic_read(&sigtermint_seen))
break;
#endif
if (run_mode == run_mode_listen_once)