Re: Fix for "q" with psql display paging dumps out of psql
От | Bruce Momjian |
---|---|
Тема | Re: Fix for "q" with psql display paging dumps out of psql |
Дата | |
Msg-id | 200412012303.iB1N3sd02672@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Fix for "q" with psql display paging dumps out of psql (jseymour@linxnet.com (Jim Seymour)) |
Ответы |
Re: Fix for "q" with psql display paging dumps out of psql
|
Список | pgsql-hackers |
You will be glad to know that 8.0 will use a different implementation for thread handling of SIGPIPE, though your asynchronous handling of SIGPIPE will still cause problems. --------------------------------------------------------------------------- Jim Seymour wrote: > Hi, > > I'm kind of wondering if anybody on the dev team noticed this and > what, if anything, they planned to do with it? > > Jim > > jseymour@linxnet.com (Jim Seymour) wrote: > > > > > > Hi, > > > > Environment: > > > > SunOS 5.7 Generic_106541-29 sun4u sparc SUNW,UltraSPARC-IIi-Engine > > Postgresql-7.4.6 > > Build config: --with-java --enable-thread-safety > > gcc version 3.3.1 > > less-381 > > readline-4.3 > > > > $ echo $PAGER > > /usr/local/bin/less > > $ echo $LESS > > -e > > > > I recently upgraded from 7.4.2 to 7.4.6 and ran into an annoying > > problem. Thereafter, most times, "q"uitting out of paged display > > output would dump me straight out of psql if the query result was > > sufficiently large. > > > > A bit of debugging revealed psql receiving a SIGPIPE to be the > > problem. > > > > Building pgsql w/o --enable-thread-safety eliminated the problem. > > > > It looks like the culprit is asynchronous SIGPIPE signals under Solaris > > 7 when using thread-safe libraries. Here's a reference: > > <http://www.lambdacs.com/cpt/FAQ.html#Q339>. > > > > I do not know if Solaris 8 and beyond behave this way. (Apparently > > async SIGPIPE is not POSIX-compliant, so one hopes Sun has fixed this > > broken behaviour.) > > > > Here's a fix that's simple, effective and doesn't hurt anything else: > > > > ------------------------- begin included text -------------------------- > > *** src/bin/psql/print.c-orig Wed Nov 17 08:04:47 2004 > > --- src/bin/psql/print.c Sat Nov 20 10:43:22 2004 > > *************** > > *** 1119,1124 **** > > --- 1119,1128 ---- > > { > > pclose(output); > > #ifndef WIN32 > > + /* The SIG_IGN is to compensate for broken Solaris 7 > > + * (async) SIGPIPE handling with --enable-thread-safety > > + */ > > + pqsignal(SIGPIPE, SIG_IGN); > > pqsignal(SIGPIPE, SIG_DFL); > > #endif > > } > > -------------------------- end included text --------------------------- > > > > Thanks to Andrew, over at SuperNews, for the idea. > > > > Regards, > > Jim > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 9: the planner will ignore your desire to choose an index scan if your > > joining column's datatypes do not match > > > > ---------------------------(end of broadcast)--------------------------- > TIP 9: the planner will ignore your desire to choose an index scan if your > joining column's datatypes do not match > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
В списке pgsql-hackers по дате отправления: