Fri May 13 22:59:48 PDT 2005
- Previous message: [Slony1-general] Slony crash during activation of mirror -- myfault?
- Next message: [Slony1-general] Adding a column
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Adam Haberlach wrote: > > First, sorry if this is either an FAQ or a common problem. I've been > using Postgres for quite a while, but this is the first week I've been > using Slony. > > I'm trying to replicate a database: > Master: PostgreSQL 8.0.1 on i686-pc-linux-gnu, compiled by GCC gcc > (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42) > Slave:PostgreSQL 8.0.0 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) > 3.2.3 20030502 (Red Hat Linux 3.2.3-49) > Slony: slony1-1.1.0.beta4 > > I created a trivial example of a single table replicating to another > and tested that. Now I'm using a copy of a production database. I've > written the little slonik scripts that initialize the cluster, create > the tableset, etc... > > I can fire up slon, and then when I actually subscribe the slave to > the set, the slave's slon crashes. It seems to be trying to drop a > constraint, but specifying an index. This happens for at least two > tables (I commented one out of the tableset and tried to get past it). > > Here's some output: > > 2005-05-13 13:50:56 PDT DEBUG2 remoteWorkerThread_1: copy table > public.clicks > 2005-05-13 13:50:56 PDT DEBUG3 remoteWorkerThread_1: table > public.clicks does not require Slony-I serial key > 2005-05-13 13:50:56 PDT DEBUG2 remoteWorkerThread_1: Found 1 indices > for public.clicks - select 'alter table public.clicks drop constraint > ' || "pg_catalog".quote_ident(co.conname), 'alter table > public.clicks add ' || pg_get_constraintdef(co.oid) from pg_class > c, pg_constraint co, pg_namespace ns where 'public.clicks' = > "pg_catalog".quote_ident(ns.nspname) || '.' || > "pg_catalog".quote_ident(c.relname) and co.connamespace = ns.oid and > co.contype in ('p', 'u') and c.oid = co.conrelid and ns.oid = > c.relnamespace UNION ALL select 'drop index ' || > "pg_catalog".quote_ident(ns.nspname) || '.' || > "pg_catalog".quote_ident(ci.relname) || ';' , pg_get_indexdef(ci.oid) > from pg_class c, pg_namespace ns, pg_class ci, pg_index i where > 'public.clicks' = "pg_catalog".quote_ident(ns.nspname) || '.' || > "pg_catalog".quote_ident(c.relname) and i.indrelid = c.oid and > i.indexrelid = ci.oid and not exists (select * from pg_constraint > co where connamespace = ns.oid and conrelid = c.oid and > contype in ('p', 'u') and co.conname = ci.relname); > 2005-05-13 13:50:56 PDT DEBUG2 remoteWorkerThread_1: start dropping 1 > indices > NOTICE: constraint recruitmentinterviews_clickid_fkey on table > recruitmentinterviews depends on index clicks_pkey > 2005-05-13 13:50:56 PDT ERROR remoteWorkerThread_1: "alter table > public.clicks drop constraint clicks_pkey;" PGRES_FATAL_ERROR ERROR: > "clicks_pkey" is an index > 2005-05-13 13:50:56 PDT FATAL remoteWorkerThread_1: drop index during > copy failed: 141071544 > 2005-05-13 13:50:56 PDT DEBUG1 slon: shutdown requested > > Here's the table: > > Column | Type | > Modifiers > ----------------+-----------------------------+-------------------------------------------------------- > id | integer | not null default > nextval('public.clicks_id_seq'::text) > campaignid | integer | > clicktimestamp | timestamp without time zone | not null > referringpage | character varying(200) | > ipaddress | inet | > browser | character varying(200) | > Indexes: > "clicks_pkey" PRIMARY KEY, btree (id) > Foreign-key constraints: > "clicks_campaignid_fkey" FOREIGN KEY (campaignid) REFERENCES > campaigns(id) > Triggers: > _pmx_test_logtrigger_2 AFTER INSERT OR DELETE OR UPDATE ON clicks > FOR EACH ROW EXECUTE PROCEDURE _pmx_test.logtrigger('_pmx_test', '2', > 'kvvvvv') > Thanks muchly for the report; that evidently shows that there is a bug in the query that was actually in the log that you showed... select 'alter table public.clicks drop constraint ' || "pg_catalog".quote_ident(co.conname), 'alter table public.clicks add ' || pg_get_constraintdef(co.oid) from pg_class c, pg_constraint co, pg_namespace ns where 'public.clicks' = "pg_catalog".quote_ident(ns.nspname) || '.' || "pg_catalog".quote_ident(c.relname) and co.connamespace = ns.oid and co.contype in ('p', 'u') and c.oid = co.conrelid and ns.oid = c.relnamespace UNION ALL select 'drop index ' || "pg_catalog".quote_ident(ns.nspname) || '.' || "pg_catalog".quote_ident(ci.relname) || ';' , pg_get_indexdef(ci.oid) from pg_class c, pg_namespace ns, pg_class ci, pg_index i where 'public.clicks' = "pg_catalog".quote_ident(ns.nspname) || '.' || "pg_catalog".quote_ident(c.relname) and i.indrelid = c.oid and i.indexrelid = ci.oid and not exists (select * from pg_constraint co where connamespace = ns.oid and conrelid = c.oid and contype in ('p', 'u') and co.conname = ci.relname); The problem evidently relates to the foreign key constraint. Would it be possible for you to send me the schema for both tables (clicks and campaigns)? e.g. - output of... pg_dump -s -t clicks [yourdatabasename] pg_dump -s -t campaigns [yourdatabasename] That would be rather useful for tracing what broke. Thanks in advance!
- Previous message: [Slony1-general] Slony crash during activation of mirror -- myfault?
- Next message: [Slony1-general] Adding a column
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list