Issue 13: CreateSchema error during Create the Gerrit 2 Tables
Status:  Released
Owner:
Closed:  Oct 2012
Reported by code-rev...@gtempaccount.com, Sep 24, 2009
Reported by Simon Liu <yuntao.liu@gmail.com> on Tue Jan 13 12:30:11 PST 2009
Source: JIRA GERRIT-13
Environment: Ubuntu 8.04

After Build Gerrit, update the line 67 in bin/gerrit2.sh:
67c67
< for j in $GERRIT2_HOME/lib/*.jar $GERRIT2_HOME/jdbc/*.jar `find $HOME/.m2/ |
grep jar$`
---
> for j in $GERRIT2_HOME/lib/*.jar $GERRIT2_HOME/jdbc/*.jar


gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ bin/gerrit2.sh --config=/home/gerrit2/gerrit2/gerrit/
devdb/src/main/config/GerritServer.properties CreateSchema
com.google.gwtorm.client.OrmException: Insert failure: account_groups
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:171)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:31)
        at com.google.gwtorm.client.impl.AbstractAccess.insert
(AbstractAccess.java:55)
        at com.google.gerrit.server.GerritServer.initSystemConfig
(GerritServer.java:193)
        at com.google.gerrit.server.GerritServer.loadSystemConfig
(GerritServer.java:343)
        at com.google.gerrit.server.GerritServer.<init>(GerritServer.java:96)
        at com.google.gerrit.server.GerritServer.getInstance(GerritServer.java:
78)
        at com.google.gerrit.pgm.CreateSchema.main(CreateSchema.java:28)
Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
account_groups(name,owner_group_id,description,group_id)VALUES(Administrators,
15,Gerrit Site Administrators,15) was aborted.  Call getNextException to see
the cause.
        at org.postgresql.jdbc2.AbstractJdbc2Statement
$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2537)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults
(QueryExecutorImpl.java:1328)
        at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:351)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch
(AbstractJdbc2Statement.java:2674)
        at com.google.gwtorm.jdbc.JdbcAccess.execute(JdbcAccess.java:227)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:166)
        ... 7 more
Exception in thread "main" com.google.gwtorm.client.OrmException: Insert
failure: account_groups
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:171)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:31)
        at com.google.gwtorm.client.impl.AbstractAccess.insert
(AbstractAccess.java:55)
        at com.google.gerrit.server.GerritServer.initSystemConfig
(GerritServer.java:193)
        at com.google.gerrit.server.GerritServer.loadSystemConfig
(GerritServer.java:343)
        at com.google.gerrit.server.GerritServer.<init>(GerritServer.java:96)
        at com.google.gerrit.server.GerritServer.getInstance(GerritServer.java:
78)
        at com.google.gerrit.pgm.CreateSchema.main(CreateSchema.java:28)
Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
account_groups(name,owner_group_id,description,group_id)VALUES(Administrators,
15,Gerrit Site Administrators,15) was aborted.  Call getNextException to see
the cause.
        at org.postgresql.jdbc2.AbstractJdbc2Statement
$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2537)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults
(QueryExecutorImpl.java:1328)
        at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:351)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch
(AbstractJdbc2Statement.java:2674)
        at com.google.gwtorm.jdbc.JdbcAccess.execute(JdbcAccess.java:227)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:166)
        ... 7 more
gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ vi /home/gerrit2/gerrit2/gerrit/devdb/src/main/config/
GerritServer.properties
gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ bin/gerrit2.sh --config=/home/gerrit2/gerrit2/gerrit/
devdb/src/main/config/GerritServer.properties CreateSchema
com.google.gwtorm.client.OrmException: Insert failure: account_groups
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:171)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:31)
        at com.google.gwtorm.client.impl.AbstractAccess.insert
(AbstractAccess.java:55)
        at com.google.gerrit.server.GerritServer.initSystemConfig
(GerritServer.java:193)
        at com.google.gerrit.server.GerritServer.loadSystemConfig
(GerritServer.java:343)
        at com.google.gerrit.server.GerritServer.<init>(GerritServer.java:96)
        at com.google.gerrit.server.GerritServer.getInstance(GerritServer.java:
78)
        at com.google.gerrit.pgm.CreateSchema.main(CreateSchema.java:28)
Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
account_groups(name,owner_group_id,description,group_id)VALUES(Administrators,
16,Gerrit Site Administrators,16) was aborted.  Call getNextException to see
the cause.
        at org.postgresql.jdbc2.AbstractJdbc2Statement
$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2537)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults
(QueryExecutorImpl.java:1328)
        at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:351)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch
(AbstractJdbc2Statement.java:2674)
        at com.google.gwtorm.jdbc.JdbcAccess.execute(JdbcAccess.java:227)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:166)
        ... 7 more
Exception in thread "main" com.google.gwtorm.client.OrmException: Insert
failure: account_groups
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:171)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:31)
        at com.google.gwtorm.client.impl.AbstractAccess.insert
(AbstractAccess.java:55)
        at com.google.gerrit.server.GerritServer.initSystemConfig
(GerritServer.java:193)
        at com.google.gerrit.server.GerritServer.loadSystemConfig
(GerritServer.java:343)
        at com.google.gerrit.server.GerritServer.<init>(GerritServer.java:96)
        at com.google.gerrit.server.GerritServer.getInstance(GerritServer.java:
78)
        at com.google.gerrit.pgm.CreateSchema.main(CreateSchema.java:28)
Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO
account_groups(name,owner_group_id,description,group_id)VALUES(Administrators,
16,Gerrit Site Administrators,16) was aborted.  Call getNextException to see
the cause.
        at org.postgresql.jdbc2.AbstractJdbc2Statement
$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2537)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults
(QueryExecutorImpl.java:1328)
        at org.postgresql.core.v3.QueryExecutorImpl.execute
(QueryExecutorImpl.java:351)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch
(AbstractJdbc2Statement.java:2674)
        at com.google.gwtorm.jdbc.JdbcAccess.execute(JdbcAccess.java:227)
        at com.google.gwtorm.jdbc.JdbcAccess.doInsert(JdbcAccess.java:166)
        ... 7 more
gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ psql -U gerrit2 -W reviewdb
Password for user gerrit2:  (input gerrit2 here)
Welcome to psql 8.3.3, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

reviewdb=> \dt
                  List of relations
 Schema |           Name           | Type  |  Owner
--------+--------------------------+-------+---------
 public | account_agreements       | table | gerrit2
 public | account_external_ids     | table | gerrit2
 public | account_group_members    | table | gerrit2
 public | account_groups           | table | gerrit2
 public | account_project_watches  | table | gerrit2
 public | account_ssh_keys         | table | gerrit2
 public | accounts                 | table | gerrit2
 public | approval_categories      | table | gerrit2
 public | approval_category_values | table | gerrit2
 public | branches                 | table | gerrit2
 public | change_approvals         | table | gerrit2
 public | change_messages          | table | gerrit2
 public | changes                  | table | gerrit2
 public | contributor_agreements   | table | gerrit2
 public | patch_comments           | table | gerrit2
 public | patch_contents           | table | gerrit2
 public | patch_set_ancestors      | table | gerrit2
 public | patch_set_info           | table | gerrit2
 public | patch_sets               | table | gerrit2
 public | patches                  | table | gerrit2
 public | project_rights           | table | gerrit2
 public | projects                 | table | gerrit2
 public | starred_changes          | table | gerrit2
 public | system_config            | table | gerrit2
(24 rows)

reviewdb=> \q
gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ cat /home/gerrit2/gerrit2/gerrit/devdb/src/main/config/
GerritServer.properties
# Any properties starting with "database." will be fed to the JDBC driver,
# after removing the "database." prefix.
#
# The following "special" properties are removed from that set:
#
#  database.driver :  Class name of the driver to load.
#  database.url    :  The connection URL
#

# H2
# database.driver = org.h2.Driver
# database.url = jdbc:h2:file:ReviewDb

# PostgreSQL
database.driver = org.postgresql.Driver
database.url = jdbc:postgresql:reviewdb
database.user=gerrit2
database.password=gerrit2
gerrit2@CT460:~/gerrit2/gerrit/appdist/target/gerrit-2.0-SNAPSHOT-bin/
gerrit-2.0-SNAPSHOT$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
Sep 24, 2009
#1 code-rev...@gtempaccount.com
Comment by Shawn Pearce <sop@google.com> on Tue Jan 13 13:09:51 PST 2009

I just uploaded http://review.source.android.com/r/cdba3ea1e17c.  Can you try
again with that change in gwtorm, so we get a better backtrace?

Also, your edit of gerrit.sh shouldn't be necessary.  The lib directory should
have all JARs needed.  What were you missing that caused you to add the `find
~/.m2` part?
Sep 24, 2009
#2 code-rev...@gtempaccount.com
Comment by Simon Liu <yuntao.liu@gmail.com> on Tue Jan 13 13:47:40 PST 2009

The CreateSchema is ok now.

I edit the gerrit.sh because the lib directory has only gerrit-appjar-2.0-
SNAPSHOT.jar after "mvn clean install". I am not sure if it is a bug.

BTW, I think the command " cd appdist/target/gerrit-*-bin.dir/gerrit-* " in
Documentation/install.txt should be " cd appdist/target/gerrit-*-bin/gerrit-*
". there is no suffix ".dir" in generated directory.
Sep 24, 2009
#3 code-rev...@gtempaccount.com
Comment by Shawn Pearce <sop@google.com> on Tue Jan 13 19:12:42 PST 2009

JDBC problem is resolved.
Split the build error out to GERRIT-15.
Sep 24, 2009
#4 code-rev...@gtempaccount.com
Update by Shawn Pearce <sop@google.com> on Tue Jan 13 19:12:42 PST 2009

Fixed in version 2.0.
Status: Fixed
Sep 25, 2009
#5 code-rev...@gtempaccount.com
(No comment was entered for this change.)
Labels: FixedIn-2.0
Oct 25, 2012
#6 sop@google.com
(No comment was entered for this change.)
Status: Released