Skip to content

Commit 28bb2a0

Browse files
author
afabiani
committed
[Hardening] Fixes: db connection closed and worker hangs with celery 4.2+ celery/celery#4878
(cherry picked from commit c4b523a)
1 parent 98468d1 commit 28bb2a0

File tree

8 files changed

+14
-16
lines changed

8 files changed

+14
-16
lines changed

geonode/br/management/commands/backup.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,11 @@ def create_geoserver_backup(self, config, settings, target_folder, ignore_errors
293293
r = requests.put(url + 'rest/reset/',
294294
auth=HTTPBasicAuth(user, passwd))
295295
if r.status_code != 200:
296-
if (r.status_code != 200):
297-
raise ValueError('Could not reset GeoServer catalog!')
296+
raise ValueError('Could not reset GeoServer catalog!')
298297
r = requests.put(url + 'rest/reload/',
299298
auth=HTTPBasicAuth(user, passwd))
300299
if r.status_code != 200:
301-
if (r.status_code != 200):
302-
raise ValueError('Could not reload GeoServer catalog!')
300+
raise ValueError('Could not reload GeoServer catalog!')
303301

304302
error_backup = 'Could not successfully backup GeoServer ' + \
305303
'catalog [{}rest/br/backup/]: {} - {}'

geonode/geoserver/createlayer/tests.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def setUp(self):
6969
# createlayer must use postgis as a datastore
7070
# set temporary settings to use a postgis datastore
7171
DATASTORE_URL = 'postgis://geonode:geonode@localhost:5432/datastore'
72-
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=600)
72+
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=0)
7373
settings.DATABASES['datastore'] = postgis_db
7474
settings.OGC_SERVER['default']['DATASTORE'] = 'datastore'
7575

geonode/local_settings.py.geoserver.sample

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ DATABASES = {
6161
'PASSWORD': 'geonode',
6262
'HOST': 'localhost',
6363
'PORT': '5432',
64-
'CONN_MAX_AGE': 5,
64+
'CONN_MAX_AGE': 0,
6565
'CONN_TOUT': 5,
6666
'OPTIONS': {
6767
'connect_timeout': 5,
@@ -76,7 +76,7 @@ DATABASES = {
7676
'PASSWORD': 'geonode',
7777
'HOST': 'localhost',
7878
'PORT': '5432',
79-
'CONN_MAX_AGE': 5,
79+
'CONN_MAX_AGE': 0,
8080
'CONN_TOUT': 5,
8181
'OPTIONS': {
8282
'connect_timeout': 5,

geonode/monitoring/tests/integration.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
DB_PORT,
8686
DB_NAME
8787
)
88-
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=5)
88+
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=0)
8989

9090
logging.getLogger('south').setLevel(logging.WARNING)
9191
logger = logging.getLogger(__name__)

geonode/settings.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
# 'ENGINE': 'django.contrib.gis.db.backends.postgis'
127127
# see https://docs.djangoproject.com/en/1.8/ref/contrib/gis/db-api/#module-django.contrib.gis.db.backends for
128128
# detailed list of supported backends and notes.
129-
_db_conf = dj_database_url.parse(DATABASE_URL, conn_max_age=5)
129+
_db_conf = dj_database_url.parse(DATABASE_URL, conn_max_age=0)
130130

131131
if 'CONN_TOUT' in _db_conf:
132132
_db_conf['CONN_TOUT'] = 5
@@ -146,11 +146,11 @@
146146
'postgis://\
147147
geonode_data:geonode_data@localhost:5432/geonode_data')
148148
DATABASES[os.getenv('DEFAULT_BACKEND_DATASTORE')] = dj_database_url.parse(
149-
GEODATABASE_URL, conn_max_age=5
149+
GEODATABASE_URL, conn_max_age=0
150150
)
151151
_geo_db = DATABASES[os.getenv('DEFAULT_BACKEND_DATASTORE')]
152152
if 'CONN_TOUT' in DATABASES['default']:
153-
_geo_db['CONN_TOUT'] = 5
153+
_geo_db['CONN_TOUT'] = DATABASES['default']['CONN_TOUT']
154154
if 'postgresql' in GEODATABASE_URL or 'postgis' in GEODATABASE_URL:
155155
_geo_db['OPTIONS'] = DATABASES['default']['OPTIONS'] if 'OPTIONS' in DATABASES['default'] else {}
156156
_geo_db['OPTIONS'].update({

geonode/upload/tests/integration.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
DB_PORT,
8383
DB_NAME
8484
)
85-
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=5)
85+
postgis_db = dj_database_url.parse(DATASTORE_URL, conn_max_age=0)
8686

8787
logging.getLogger('south').setLevel(logging.WARNING)
8888
logger = logging.getLogger(__name__)

geonode/upload/tests/test_settings.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
'PASSWORD': 'geonode',
7373
'HOST': 'localhost',
7474
'PORT': '5432',
75-
'CONN_MAX_AGE': 5,
75+
'CONN_MAX_AGE': 0,
7676
'CONN_TOUT': 5,
7777
'OPTIONS': {
7878
'connect_timeout': 5
@@ -85,7 +85,7 @@
8585
'PASSWORD': 'geonode',
8686
'HOST': 'localhost',
8787
'PORT': '5432',
88-
'CONN_MAX_AGE': 5,
88+
'CONN_MAX_AGE': 0,
8989
'CONN_TOUT': 5,
9090
'OPTIONS': {
9191
'connect_timeout': 5

package/support/geonode.local_settings

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ DATABASES = {
6767
'PASSWORD': DATABASE_PASSWORD,
6868
'HOST': DATABASE_HOST,
6969
'PORT': DATABASE_PORT,
70-
'CONN_MAX_AGE': 5,
70+
'CONN_MAX_AGE': 0,
7171
'CONN_TOUT': 5,
7272
'OPTIONS': {
7373
'connect_timeout': 5,
@@ -82,7 +82,7 @@ DATABASES = {
8282
'PASSWORD': DATABASE_PASSWORD,
8383
'HOST': DATABASE_HOST,
8484
'PORT': DATABASE_PORT,
85-
'CONN_MAX_AGE': 5,
85+
'CONN_MAX_AGE': 0,
8686
'CONN_TOUT': 5,
8787
'OPTIONS': {
8888
'connect_timeout': 5,

0 commit comments

Comments
 (0)