Issue 2250: 2.8-rc0 with PostgreSQL backend appears to require superuser
Status:  Invalid
Owner: ----
Closed:  Nov 2013
Reported by matt...@unsolvable.org, Nov 8, 2013
Affected Version: 2.8-rc0

Performing a new install of Gerrit with a PostgreSQL backed results in the following exception:
Exception in thread "main" com.google.gwtorm.server.OrmException: Error in index_postgres.sql:
SELECT
    CASE
    WHEN EXISTS(
        SELECT 1
        FROM pg_catalog.pg_language
        WHERE lanname='plpgsql'
    )
    THEN NULL
    ELSE make_plpgsql() END;
        at com.google.gerrit.server.schema.ScriptRunner.run(ScriptRunner.java:66)
        at com.google.gerrit.server.schema.SchemaCreator.create(SchemaCreator.java:96)
        at com.google.gerrit.server.schema.SchemaUpdater.update(SchemaUpdater.java:55)
        at com.google.gerrit.pgm.BaseInit$SiteRun.upgradeSchema(BaseInit.java:209)
        at com.google.gerrit.pgm.BaseInit.run(BaseInit.java:89)
        at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:170)
        at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:94)
        at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:52)
        at Main.main(Main.java:25)
Caused by: org.postgresql.util.PSQLException: ERROR: must be superuser to create procedural language
  Where: SQL function "make_plpgsql" statement 1
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:366)
        at com.google.gerrit.server.schema.ScriptRunner.run(ScriptRunner.java:64)
        ... 13 more

It looks like Gerrit now requires its PostgreSQL user to have the "superuser" attribute. This was not the case in previous releases. Is that intended? If so, the release notes and install documentation needs updating to reflect this.

Nov 11, 2013
#1 matt...@unsolvable.org
I re-ran the install using 2.8-rc2, and the install was successful (the failure was under 2.8-rc0).

So, issue can be closed.
Nov 11, 2013
Project Member #2 edwin.ke...@gmail.com
(No comment was entered for this change.)
Status: Invalid