Re: Postgresql 8.3 beta crash
От | Heikki Linnakangas |
---|---|
Тема | Re: Postgresql 8.3 beta crash |
Дата | |
Msg-id | 4728AE87.3020005@enterprisedb.com обсуждение исходный текст |
Ответ на | Postgresql 8.3 beta crash (Sheikh Amjad <sheikhamjad@gmail.com>) |
Ответы |
Re: Postgresql 8.3 beta crash
(Heikki Linnakangas <heikki@enterprisedb.com>)
|
Список | pgsql-hackers |
Sheikh Amjad wrote: > Following test case is crashing the postgresql-8.3-beta > create schema st; > > CREATE TABLE ST.STUDENT( > STUDENT_ID VARCHAR2(10), > NAME VARCHAR(50) NOT NULL, > NIC CHAR(11), > DOB DATE NOT NULL, > GENDER CHAR(1) NOT NULL, > MAR_STAT CHAR(1) NOT NULL, > NATION VARCHAR2(15), > FNAME VARCHAR2(50) NOT NULL, > GNAME VARCHAR2(50), > ADDRESS VARCHAR2(100) NOT NULL, > POS_CODE VARCHAR2(8), > PER_TEL VARCHAR2(15), VARCHAR2? That smells like Oracle... I was able to reproduce this after replacing those VARCHAR2's with VARCHAR. I added some debugging elog's (attached), and it looks like libxml2 is trying xml_pfree a pointer we never gave it in any of the alloc functions. Log attached, last xml_pfree crashes and it's the first time 853c180 is mentioned. I guess the next step is to narrow it down to a self-contained test case and send a bug report to libxml people. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com Index: src/backend/utils/adt/xml.c =================================================================== RCS file: /home/hlinnaka/pgcvsrepository/pgsql/src/backend/utils/adt/xml.c,v retrieving revision 1.49 diff -c -r1.49 xml.c *** src/backend/utils/adt/xml.c 13 Oct 2007 20:46:47 -0000 1.49 --- src/backend/utils/adt/xml.c 31 Oct 2007 16:22:16 -0000 *************** *** 1209,1228 **** static void * xml_palloc(size_t size) { ! return palloc(size); } static void * xml_repalloc(void *ptr, size_t size) { ! return repalloc(ptr, size); } static void xml_pfree(void *ptr) { pfree(ptr); } --- 1209,1238 ---- static void * xml_palloc(size_t size) { ! void *ptr; ! ! ptr = palloc(size); ! elog(LOG, "xml_palloc(%d) = %x", size, ptr); ! return ptr; } static void * xml_repalloc(void *ptr, size_t size) { ! void *ptr_new; ! ! ptr_new = repalloc(ptr, size); ! elog(LOG, "xml_repalloc(%x, %d) = %x", ptr, size, ptr_new); ! ! return ptr_new; } static void xml_pfree(void *ptr) { + elog(LOG, "xml_pfree(%x)", ptr); pfree(ptr); } *************** *** 1230,1236 **** static char * xml_pstrdup(const char *string) { ! return pstrdup(string); } --- 1240,1253 ---- static char * xml_pstrdup(const char *string) { ! char *str; ! ! ! str = pstrdup(string); ! ! elog(LOG, "xml_pstrdup(%x) = %x", string, str); ! ! return str; } LOG: database system was shut down at 2007-10-31 16:23:45 GMT LOG: autovacuum launcher started LOG: database system is ready to accept connections LOG: xml_palloc(200) = 8558714 LOG: xml_pstrdup(bff98e78) = 8558820 LOG: xml_palloc(20) = 8558834 LOG: xml_pstrdup(bff98e78) = 8558860 LOG: xml_palloc(20) = 855887c LOG: xml_pstrdup(bff98e78) = 85588a8 LOG: xml_palloc(20) = 85588c4 LOG: xml_pstrdup(bff98e78) = 85588f0 LOG: xml_palloc(20) = 8558904 LOG: xml_pstrdup(bff98e78) = 8558930 LOG: xml_palloc(20) = 855894c LOG: xml_pstrdup(bff98e78) = 8558978 LOG: xml_palloc(20) = 855898c LOG: xml_pstrdup(bff98e78) = 85589b8 LOG: xml_palloc(20) = 85589d4 LOG: xml_pstrdup(bff98e78) = 8558a00 LOG: xml_palloc(20) = 8558a14 LOG: xml_palloc(440) = 8558a40 LOG: xml_palloc(28) = 8558c4c LOG: xml_palloc(2048) = 8558c78 LOG: xml_palloc(128) = 8559484 LOG: xml_palloc(20) = 8559510 LOG: xml_palloc(40) = 855953c LOG: xml_palloc(40) = 8559588 LOG: xml_palloc(40) = 85595d4 LOG: xml_palloc(88) = 8559620 LOG: xml_palloc(4) = 85596ac LOG: xml_palloc(440) = 85596c0 LOG: xml_palloc(28) = 85598cc LOG: xml_palloc(2048) = 85598f8 LOG: xml_palloc(128) = 855a104 LOG: xml_palloc(20) = 855a190 LOG: xml_palloc(40) = 855a1bc LOG: xml_palloc(40) = 855a208 LOG: xml_palloc(40) = 855a254 LOG: xml_palloc(36) = 855a2a0 LOG: xml_palloc(16) = 855a2ec LOG: xml_palloc(8194) = 855a6d4 LOG: xml_palloc(60) = 855a308 LOG: xml_palloc(88) = 855a354 LOG: xml_palloc(4) = 855a3e0 LOG: xml_palloc(60) = 855a3f4 LOG: xml_palloc(11) = 855a440 LOG: xml_palloc(24) = 855a45c LOG: xml_palloc(37) = 855a488 LOG: xml_palloc(4) = 855a4d4 LOG: xml_palloc(1024) = 855c6fc LOG: xml_palloc(16) = 855cb08 LOG: xml_palloc(60) = 855cb24 LOG: xml_palloc(15) = 855cb70 LOG: xml_pfree(855a6d4) LOG: xml_pfree(855a2ec) LOG: xml_pfree(855a2a0) LOG: xml_pfree(855a308) LOG: xml_pfree(855a254) LOG: xml_pfree(855a208) LOG: xml_pfree(855a1bc) LOG: xml_pfree(855a190) LOG: xml_pfree(855a104) LOG: xml_pfree(855cb08) LOG: xml_pfree(85598f8) LOG: xml_pfree(855c6fc) LOG: xml_pfree(85598cc) LOG: xml_pfree(85596c0) LOG: xml_pfree(855cb70) LOG: xml_pfree(855cb24) LOG: xml_pfree(855a440) LOG: xml_pfree(855a3f4) LOG: xml_pfree(855a3e0) LOG: xml_pfree(855a354) LOG: xml_palloc(6) = 855a3e0 LOG: xml_pfree(85595d4) LOG: xml_pfree(8559588) LOG: xml_pfree(855953c) LOG: xml_pfree(8559510) LOG: xml_pfree(8559484) LOG: xml_pfree(8558c78) LOG: xml_pfree(8558c4c) LOG: xml_pfree(8558a40) LOG: xml_pfree(8558a00) LOG: xml_pfree(8558a14) LOG: xml_pfree(85589b8) LOG: xml_pfree(85589d4) LOG: xml_pfree(8558978) LOG: xml_pfree(855898c) LOG: xml_pfree(8558930) LOG: xml_pfree(855894c) LOG: xml_pfree(85588f0) LOG: xml_pfree(8558904) LOG: xml_pfree(85588a8) LOG: xml_pfree(85588c4) LOG: xml_pfree(8558860) LOG: xml_pfree(855887c) LOG: xml_pfree(8558820) LOG: xml_pfree(8558834) LOG: xml_pfree(8558714) LOG: xml_pfree(855a488) LOG: xml_pfree(855a4d4) LOG: xml_pfree(855a45c) LOG: xml_pfree(855a3e0) LOG: xml_pfree(8559620) LOG: xml_pfree(853c180) LOG: server process (PID 13473) was terminated by signal 11: Segmentation fault LOG: terminating any other active server processes LOG: all server processes terminated; reinitializing LOG: database system was interrupted; last known up at 2007-10-31 16:23:55 GMT LOG: database system was not properly shut down; automatic recovery in progress LOG: record with zero length at 0/70DE00 LOG: redo is not required LOG: autovacuum launcher started LOG: database system is ready to accept connections
В списке pgsql-hackers по дате отправления: