Postgres probably didn't start properly Status code: 139
I've been tying to configure my project to use GitLab CI, but I keep getting an error with postgres' initialization:
gitlab-ci-multi-runner 0.5.5-1-g69bc934 (69bc934)
Using Docker executor with image python:3.4.3 ...
Starting service postgres:latest ...
Waiting for services to be up and running...
Service runner-32f405e8-project-7428-concurrent-0-postgres probably didn't start properly Status code: 139
Running on runner-32f405e8-project-7428-concurrent-0 via ci-runner01...
I tried both the shared runners, and my own runner at a dedicated machine on DO. The shared runners on ci.gitlab.com did offer a bit more verbosity, but nothing I could make any use of:
*** WARNING: Service runner-055dc32a-project-7428-concurrent-0-postgres probably didn't start properly.
Status code: 139
2015-09-19T18:35:01.565375116Z The files belonging to this database system will be owned by user "postgres".
2015-09-19T18:35:01.565480483Z This user must also own the server process.
2015-09-19T18:35:01.565500540Z
2015-09-19T18:35:01.566159990Z The database cluster will be initialized with locale "en_US.utf8".
2015-09-19T18:35:01.566190440Z The default database encoding has accordingly been set to "UTF8".
2015-09-19T18:35:01.566249633Z The default text search configuration will be set to "english".
2015-09-19T18:35:01.566265680Z
2015-09-19T18:35:01.566313073Z Data page checksums are disabled.
2015-09-19T18:35:01.566325870Z
2015-09-19T18:35:01.566603640Z fixing permissions on existing directory /var/lib/postgresql/data ... ok
2015-09-19T18:35:01.577085707Z creating subdirectories ... ok
2015-09-19T18:35:01.636073946Z selecting default max_connections ... 100
2015-09-19T18:35:01.679777495Z selecting default shared_buffers ... 128MB
2015-09-19T18:35:01.680135465Z selecting dynamic shared memory implementation ... posix
2015-09-19T18:35:02.526338879Z creating configuration files ... ok
2015-09-19T18:35:03.116547791Z creating template1 database in /var/lib/postgresql/data/base/1 ... ok
2015-09-19T18:35:03.139849685Z initializing pg_authid ... ok
2015-09-19T18:35:03.201591861Z initializing dependencies ... ok
2015-09-19T18:35:03.334986283Z creating system views ... ok
2015-09-19T18:35:03.408547235Z loading system objects' descriptions ... ok
2015-09-19T18:35:03.496577093Z creating collations ... ok
2015-09-19T18:35:03.688874713Z creating conversions ... ok
2015-09-19T18:35:03.689399801Z creating dictionaries ... ok
2015-09-19T18:35:03.689419898Z setting privileges on built-in objects ... ok
2015-09-19T18:35:03.930857940Z creating information schema ... ok
2015-09-19T18:35:03.945623801Z loading PL/pgSQL server-side language ... ok
2015-09-19T18:35:04.315612019Z vacuuming database template1 ... ok
2015-09-19T18:35:04.381237885Z copying template1 to template0 ... ok
2015-09-19T18:35:04.427038384Z copying template1 to postgres ... ok
2015-09-19T18:35:04.910697065Z syncing data to disk ... ok
2015-09-19T18:35:04.930781786Z
2015-09-19T18:35:04.930872403Z Success. You can now start the database server using:
2015-09-19T18:35:04.930890996Z
2015-09-19T18:35:04.930904593Z postgres -D /var/lib/postgresql/data
2015-09-19T18:35:04.930916880Z or
2015-09-19T18:35:04.930929123Z pg_ctl -D /var/lib/postgresql/data -l logfile start
2015-09-19T18:35:04.930941277Z
2015-09-19T18:35:04.939344273Z
2015-09-19T18:35:04.939414754Z WARNING: enabling "trust" authentication for local connections
2015-09-19T18:35:04.939493623Z You can change this by editing pg_hba.conf or using the option -A, or
2015-09-19T18:35:04.939516878Z --auth-local and --auth-host, the next time you run initdb.
2015-09-19T18:35:04.939741129Z ****************************************************
2015-09-19T18:35:04.939773192Z WARNING: No password has been set for the database.
2015-09-19T18:35:04.939785398Z This will allow anyone with access to the
2015-09-19T18:35:04.939822004Z Postgres port to access your database. In
2015-09-19T18:35:04.939835771Z Docker's default configuration, this is
2015-09-19T18:35:04.939865632Z effectively any other container on the same
2015-09-19T18:35:04.939881072Z system.
2015-09-19T18:35:04.939892623Z
2015-09-19T18:35:04.939904134Z Use "-e POSTGRES_PASSWORD=password" to set
2015-09-19T18:35:04.939929220Z it in "docker run".
2015-09-19T18:35:04.939941306Z ****************************************************
2015-09-19T18:35:05.022773192Z waiting for server to start....LOG: database system was shut down at 2015-09-19 18:35:04 UTC
2015-09-19T18:35:05.025442678Z LOG: MultiXact member wraparound protections are now enabled
2015-09-19T18:35:05.026040488Z LOG: database system is ready to accept connections
2015-09-19T18:35:05.044851499Z LOG: autovacuum launcher started
2015-09-19T18:35:06.083666140Z done
2015-09-19T18:35:06.083716570Z server started
2015-09-19T18:35:06.084083185Z ALTER ROLE
2015-09-19T18:35:06.084105837Z
2015-09-19T18:35:06.084113176Z
2015-09-19T18:35:06.084119849Z /docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
2015-09-19T18:35:06.084126079Z
2015-09-19T18:35:06.084132449Z LOG: received fast shutdown request
2015-09-19T18:35:06.084138231Z LOG: aborting any active transactions
2015-09-19T18:35:06.084143854Z LOG: autovacuum launcher shutting down
2015-09-19T18:35:06.084149617Z LOG: shutting down
2015-09-19T18:35:06.096266352Z waiting for server to shut down....LOG: database system is shut down
The failure to initialize is consistent with later results:
django.db.utils.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
I also tried to connecto to localhost:5432. This did not work either, but I didn't expect it to.
Here's my /etc/gitlab-runner/config.toml (do note that the shared runners on https://gitlab.com/ci show the same error though):
concurrent = 4
[[runners]]
name = "ci-runner01"
url = "https://ci.gitlab.com/"
token = "redacted :D"
limit = 1
executor = "docker"
disable_verbose = false
[runners.docker]
image = "python:3.4.3"
privileged = false
volumes = ["/cache"]
services = ["postgres:latest"]
allowed_services = ["postgres:*"]
allowed_images = ["python:*"]
My .gitlab-ci.yml is:
$ cat .gitlab-ci.yml
before_script:
- pip install tox
test:
script:
- tox
tags:
- postgres
variables:
MYAPP_STUFF = "redacted"