Re: 7.4.2 Regression tests: test stats loops indefinately...

Поиск
Список
Период
Сортировка
От Vikram Kulkarni
Тема Re: 7.4.2 Regression tests: test stats loops indefinately...
Дата
Msg-id 20040504004730.GD30567@padu.brownforces.org
обсуждение исходный текст
Ответ на Re: 7.4.2 Regression tests: test stats loops indefinately...  (Manfred Koizar <mkoi-pg@aon.at>)
Ответы Re: 7.4.2 Regression tests: test stats loops indefinately...  (Manfred Koizar <mkoi-pg@aon.at>)
Список pgsql-general
On Mon, May 03, 2004 at 11:54:54PM +0200, Manfred Koizar wrote:
> On Mon, 3 May 2004 14:17:11 -0400, Vikram Kulkarni
> <vkulkarn@brownforces.org> wrote:
> >the end of results/stats.out is:
> >-- let stats collector catch up
> >SELECT sleep('0:0:2'::interval);
> >
> >everything up till and including that matches expected/stats.out... but
> >the test simply stalls there. Unless I manuall kill the process, the
> >postmaster simply keeps soaking up CPU time indefinately.
>
> Please try this interactively in a psql session:
>
> CREATE FUNCTION sleep(interval) RETURNS integer AS '
> DECLARE
>   endtime timestamp;
> BEGIN
>   endtime := timeofday()::timestamp + $1;
>   WHILE timeofday()::timestamp < endtime LOOP
>   END LOOP;
>   RETURN 0;
> END;
> ' LANGUAGE 'plpgsql';
>
> SELECT timeofday();
> SELECT timeofday()::timestamp;
> -- wait a few seconds ...
> SELECT timeofday()::timestamp;
> SELECT timeofday()::timestamp + '0:0:2'::interval;
>
> SELECT sleep('0:0:2'::interval);
>
> ... and tell us what happens.


$ createlang plpgsql test
$ psql test
Welcome to psql 7.4.2, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

test=# CREATE FUNCTION sleep(interval) RETURNS integer AS '
test'# DECLARE
test'#   endtime timestamp;
test'# BEGIN
test'#   endtime := timeofday()::timestamp + $1;
test'#   WHILE timeofday()::timestamp < endtime LOOP
test'#   END LOOP;
test'#   RETURN 0;
test'# END;
test'# ' LANGUAGE 'plpgsql';
CREATE FUNCTION
test=# SELECT timeofday();
              timeofday
-------------------------------------
 Wed Dec 31 16:00:00.591964 1969 PST
(1 row)

test=# SELECT timeofday()::timestamp;
         timeofday
----------------------------
 1969-12-31 16:00:00.619152
(1 row)

test=# SELECT timeofday()::timestamp;
         timeofday
----------------------------
 1969-12-31 16:00:00.814891
(1 row)

test=# SELECT timeofday()::timestamp + '0:0:2'::interval;
          ?column?
----------------------------
 1969-12-31 16:00:02.830715
(1 row)

test=# SELECT sleep('0:0:2'::interval);

And it just sits there indefinately...

That obviously doesn't look right. Isnt' timeofday() supposed to return
the current time of day? The system clock is set correctly.

the log file doesn't show anything interesting, except for me eventually
killing the postmaster process... :-\

The config.log is available at:
http://www.brownforces.org/config.log
(I figure that might be interesting...)

-Vik

--
vikram vinayak kulkarni    "If you want pasta sauce, you
vkulkarn@brownforces.org    must have have pasta."
http://vvk.brownforces.org                 -Daniel Sachs

В списке pgsql-general по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: insert through function only
Следующее
От: "muteki"
Дата:
Сообщение: wait_seconds in pg_ctl