| From: | "Kenaniah Cerny" <kenaniah(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-bugs(at)postgresql(dot)org | 
| Subject: | BUG #5069: Segfault | 
| Date: | 2009-09-20 07:34:40 | 
| Message-ID: | 200909200734.n8K7YeFs088194@wwwmaster.postgresql.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
The following bug has been logged online:
Bug reference:      5069
Logged by:          Kenaniah Cerny
Email address:      kenaniah(at)gmail(dot)com
PostgreSQL version: 8.4.1
Operating system:   Centos5.2
Description:        Segfault
Details: 
Segfault party!!!!
output of uname -a: 
Linux <myhostname> 2.6.18-92.1.10.el5 #1 SMP Tue Aug 5 07:41:53 EDT 2008
i686 athlon i386 GNU/Linux
Fortunately due to an incremental update, I've narrowed the cause of the bug
down to the following function run as a trigger:
CREATE OR REPLACE FUNCTION "public"."trigger_update_words" () RETURNS
trigger AS
$body$
BEGIN
	INSERT INTO words SELECT word FROM ts_stat('SELECT to_tsvector(''simple'',
name) FROM '||TG_TABLE_NAME||' WHERE title_type_id IN (1, 2, 4, 6) AND id =
'||NEW.id)
	EXCEPT SELECT word FROM words;
    RETURN NEW;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
CREATE TRIGGER "anime_titles_tr_update_words" AFTER INSERT OR UPDATE 
ON "public"."anime_titles" FOR EACH ROW 
EXECUTE PROCEDURE "public"."trigger_update_words"();
My anime titles relation is defined below:
CREATE TABLE "public"."anime_titles" (
  "id" SERIAL, 
  "name" TEXT NOT NULL, 
  "anime_id" INTEGER NOT NULL, 
  "title_type_id" INTEGER NOT NULL, 
  "is_main" BOOLEAN DEFAULT false NOT NULL, 
  "metaphone" TEXT, 
  "metaphone_alt" TEXT, 
  CONSTRAINT "anime_titles_pkey" PRIMARY KEY("id"), 
  CONSTRAINT "anime_titles_fk_anime_id" FOREIGN KEY ("anime_id")
    REFERENCES "public"."anime"("id")
    ON DELETE CASCADE
    ON UPDATE NO ACTION
    NOT DEFERRABLE, 
  CONSTRAINT "anime_titles_fk_title_type_id" FOREIGN KEY ("title_type_id")
    REFERENCES "public"."anime_title_types"("id")
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
    NOT DEFERRABLE
) WITH OIDS;
CREATE INDEX "anime_titles_idx_lower_name" ON "public"."anime_titles"
  USING btree ((lower(name)))
  TABLESPACE "second_disk";
CREATE INDEX "anime_titles_idx_metaphone" ON "public"."anime_titles"
  USING btree ("metaphone", "metaphone_alt");
CREATE INDEX "anime_titles_idx_name_simple_text" ON "public"."anime_titles"
  USING gin ((to_tsvector('simple'::regconfig, name)));
CREATE INDEX "anime_titles_idx_title_type_id" ON "public"."anime_titles"
  USING btree ("title_type_id");
CREATE TRIGGER "anime_titles_tr_audit" AFTER INSERT OR UPDATE 
ON "public"."anime_titles" FOR EACH ROW 
EXECUTE PROCEDURE "public"."anime_titles_audit"();
CREATE TRIGGER "anime_titles_tr_update_metaphone" AFTER INSERT OR UPDATE 
ON "public"."anime_titles" FOR EACH ROW 
EXECUTE PROCEDURE "public"."update_metaphone_fields"();
CREATE TRIGGER "anime_titles_tr_update_words" AFTER INSERT OR UPDATE 
ON "public"."anime_titles" FOR EACH ROW 
EXECUTE PROCEDURE "public"."trigger_update_words"();
And last but not least, the words table:
CREATE TABLE "public"."words" (
  "word" TEXT NOT NULL, 
  CONSTRAINT "words_pkey" PRIMARY KEY("word")
) WITH OIDS;
My database locale/collation/encoding is all en_US.UTF-8
I have concluded that the other two triggers that run on my anime_titles
table aren't related to the issue at hand as the issue still occurs with
those triggers disabled. 
The segfault occurred when attempting to insert into anime_title a name of
'.hack//SIGN'
There are currently 5569 entries in the words table and 6928 entries in the
anime_titles table.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2009-09-20 15:14:03 | Re: BUG #5069: Segfault | 
| Previous Message | Peter Eisentraut | 2009-09-20 07:08:39 | Re: BUG #5068: LIKE |