[Users] New engine install on remote DB fails "uuid-ossp extension is not loaded"

Alex Lourie alourie at redhat.com
Wed Aug 15 07:50:22 UTC 2012


Hi Ian

You're right in that superuser privileges are required to make this work. But it would rarely happen that remote DB admin would give you a user with super privileges. The solution we've come up with is this:

1. Use (or tell remote DB admin to do so) the psql command to load the extension functions to template1 DB on remote DB server:
     psql -U postgres -d template1 -f /usr/share/pgsql/contrib/uuid-ossp.sql
2. Now, all newly created databases will include extension functions.

template1 is a special DB in postgres. In fact, when you create a new DB, it is actually copied from template1 with a new name.

This way, we can still work with the user that has no superuser privileges in the remote DB server.

----- Original Message -----
From: "Ian Levesque" <ian at crystal.harvard.edu>
To: "Yair Zaslavsky" <yzaslavs at redhat.com>
Cc: users at ovirt.org
Sent: Wednesday, August 15, 2012 12:30:16 AM
Subject: Re: [Users] New engine install on remote DB fails "uuid-ossp	extension is not loaded"

> Here's what the install log tells me:
> 
> 2012-08-14 11:56:12::INFO::engine_validators::425::root:: Successfully created temp database on server cmcd-web.
> 2012-08-14 11:56:12::INFO::engine_validators::443::root:: Checking that uuid extension is loaded by default on the remote server
> 2012-08-14 11:56:12::DEBUG::common_utils::350::root:: running sql query 'SELECT uuid_generate_v1();' on db server: 'cmcd-web'.
> 2012-08-14 11:56:12::DEBUG::common_utils::286::root:: cmd = /usr/bin/psql -h cmcd-web -p 5432 -U ovirt -d ovirt_engine_test -c "SELECT uuid_generate_v1();"
> 2012-08-14 11:56:12::DEBUG::common_utils::291::root:: output = 
> 2012-08-14 11:56:12::DEBUG::common_utils::292::root:: stderr = ERROR:  function uuid_generate_v1() does not exist
> 
> So, the installer is trying to create a database "ovirt_engine_test" and succeeding. But until you run `psql -U postgres -d <database_name> -f /usr/share/pgsql/contrib/uuid-ossp.sql`, the function uuid_generate_v1() won't be available. Therefore, the temporary database the installer is using to determine compatibility fails.

The problem ended up being that the postgres role which ovirt is using needs to have superuser privileges. Once I granted superuser to the "ovirt" role I created, all worked well.

~irl
_______________________________________________
Users mailing list
Users at ovirt.org
http://lists.ovirt.org/mailman/listinfo/users



More information about the Users mailing list