[CalendarServer-dev] [Calendar and Contacts Server] #441: Postgres is crashing on first request

Calendar and Contacts Server trac at macosforge.org
Thu Apr 28 00:39:36 PDT 2011

#441: Postgres is crashing on first request
 Reporter:  ian@…                       |       Owner:  wsanchez@…        
     Type:  Defect                      |      Status:  new               
 Priority:  3: Important                |   Milestone:  Linux Port        
Component:  Calendar Server             |    Severity:  Serious           
 Keywords:                              |       Radar:                    

Comment(by dre@…):

 Do you know for sure that postgres is crashing, or just never starting at
 all? The error.log only indicates that calendar server could not connect
 to postgres, but not why. Check for postgres.log and attach it to this
 ticket; maybe there's something obvious problem we can spot. If you're
 running the server out of svn checkout, the log should be at
 data/Logs/postgres.log, otherwise consult your postgres config to find the
 log location. In any case, if it is a real postgres crash, a bug should
 also be file against postgres.

 When running the server out of an svn checkout (using the 'run' script and
 the provided sample config files), the postgres lifecycle, database, and
 configuration are managed for you. This makes it easy to test in a
 sandbox, but this is not highly integrated with the host OS (which is kind
 of the point).

 When installing system-wide, you are responsible for all the postgres
 stuff (although we do have some tools to help). We haven't published any
 docs on this yet, so I'll discuss it a bit here for now.

 Check [https://trac.calendarserver.org/browser/CalendarServer/trunk/conf
 /caldavd-test.plist#L97 caldavd-test.plist] for an example of the config
 on the calendar server side; basically we just need details about which
 postgres server, database, and username to use. Ask your local postgres
 administrator for this info. If you are the local postgres administrator,
 you can use calendarserver_manage_postgres to help you create and manage
 the lifecycle of a new postres cluster (the postgres term for a set of
 databases), or you can use calendarserver_bootstrap_database to configure
 an existing postgres cluster for use by calendar server.

 calendarserver_manage_postgres is mostly a wrapper around various postgres
 command line tools - you can see what it's doing
 here]. It needs to know the location of your postgres base directory, e.g.
 /usr/local/pgsql or equivalent. If you don't feel like doing this as root,
 feel free to operate on a user-owned copy of pgsql, supplying the path
 along with the -d option. The command-line help for this tool is shown
 below for reference.

 Usage: calendarserver_manage_postgres [options] ACTION

 Tool to manage PostgreSQL

   --version             show program's version number and exit
   -h, --help            show this help message and exit
   -v, --verbose         Use debug logging for PostgreSQL
   -d BASEDIR, --base-dir=BASEDIR
                         Base directory for PostgreSQL install

 ACTION is one of init|start|stop|run

   init:   initialize databases
   start:  start postgres daemon
   stop:   stop postgres daemon
   run:    run postgres (non-daemon)
   clean:  remove databases

 calendarserver_bootstrap_database is also a help that boils down to
 basically this, assuming postgres is installed and running as _postgres,
 our schema file is in the shown location, and these are run as root:
 /usr/bin/createuser --username=_postgres caldav --no-superuser --createdb
 /usr/bin/createdb --username=caldav caldav
 /usr/bin/psql -U caldav -f

Ticket URL: <http://trac.calendarserver.org/ticket/441#comment:1>
Calendar and Contacts Server </>

More information about the calendarserver-dev mailing list