Search Postgresql Archives

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux