Re: Server process exited with status 139 (meaning?)
От | Ed Loehr |
---|---|
Тема | Re: Server process exited with status 139 (meaning?) |
Дата | |
Msg-id | 3956E512.A3880EF@austin.rr.com обсуждение исходный текст |
Ответ на | Re: Server process exited with status 139 (meaning?) (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
Ed Loehr wrote: > > > > > I have a query crashing the backend and leaving this message in the > > > > server log... > > > > What does exit status 139 mean? > > > > > > The backend terminated because of a segmentation fault (note 139 = 128 + > > > 11, 11 = SIGSEGV). So it's definitely a bug and we'd need to see the > > > query. > > > > I don't need help on this as I found workable queries for my purposes, > > but here is a simplified core-dumper (7.0beta3) for posterity... > > Oops. A few typos in my last post. Correction below (still > segfaulting): > > DROP TABLE foo; > CREATE TABLE foo (d date); > CREATE UNIQUE INDEX date_uidx ON foo(d); > CREATE UNIQUE INDEX datetime_uidx ON foo(datetime(d)); > INSERT INTO foo (d) VALUES ('17-Jun-1995'); > INSERT INTO foo (d) VALUES ('18-Jun-1995'); > INSERT INTO foo (d) VALUES ('19-Jun-1995'); > > DROP TABLE bar; > DROP SEQUENCE bar_id_seq; > CREATE TABLE bar ( > id SERIAL, > start_time DATETIME, > duration FLOAT > ); > INSERT INTO bar (start_time, duration) VALUES ('17-Jun-1995', 3); > INSERT INTO bar (start_time, duration) VALUES ('18-Jun-1995', 3); > INSERT INTO bar (start_time, duration) VALUES ('19-Jun-1995', 3); > > DROP TABLE baz; > DROP SEQUENCE baz_id_seq; > CREATE TABLE baz ( > id SERIAL, > bar_id DATETIME, ^^^^^^^^^ One more typo: 'bar_id' should be of type INTEGER (and the crash remains). Regards, Ed Loehr > duration FLOAT > ); > INSERT INTO baz (bar_id, duration) SELECT id, duration FROM bar; > > -- Here's the offending query... > SELECT f.d, r.start_time::date, r.duration AS "r_dur", > z.duration AS "z_dur", f.d, > (r.start_time - '1 day'::interval)::date AS "leave", > (r.start_time + (z.duration||' days')::interval)::date AS "return" > FROM foo f, bar r, baz z > WHERE r.id = 2 > AND z.bar_id = 2 > AND (f.d = (r.start_time - '1 day'::interval)::date > OR f.d = (r.start_time + (z.duration||' days')::interval));
В списке pgsql-hackers по дате отправления: