#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 [https://trac.calendarserver.org/browser/CalendarServer/trunk/calendarserver/tools/managepostgres.py 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 Options: --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 --no-createrole /usr/bin/createdb --username=caldav caldav /usr/bin/psql -U caldav -f /usr/share/caldavd/lib/python/txdav/common/datastore/sql_schema_v1.sql }}} -- Ticket URL: <http://trac.calendarserver.org/ticket/441#comment:1> Calendar and Contacts Server </> HTTP/WebDAV/CalDAV Server _______________________________________________ calendarserver-dev mailing list calendarserver-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-dev