Thread

  1. BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T01:42:26Z

    System: NetBSD / Alpha 1.6 (64 bit)
    Postgresql 7.3.2
    
    Bug: after vacuum analyze, I'm unable to do a simple select. Instead I'm
    getting this error:
    
      ERROR:  datumGetSize: Invalid typLen 0
    
    Many thanks to Teodor Sigaev for helping verify this bug. The following
    test suite came from Teodor:
    
    Reproduce bug:
    initdb and start postmaster
    %createdb foo
    %psql foo < bug.sql
    CREATE TABLE
    INSERT 16996 1
    INSERT 16997 1
    CREATE TABLE
    INSERT 17003 1
      ts_name | ts_name
    ---------+---------
      default | default
      default | default
    (2 rows)
    
    VACUUM
    ERROR:  datumGetSize: Invalid typLen 0
    
    
    bug.sql is very simple:
    ------------------------------------------------
    CREATE TABLE pg_ts_cfgmap (
         ts_name text
    );
    
    insert into pg_ts_cfgmap values ('default');
    insert into pg_ts_cfgmap values ('default');
    
    
    CREATE TABLE pg_ts_cfg (
         ts_name text
    );
    
    insert into pg_ts_cfg values ('default');
    
    select
            *
    from
             pg_ts_cfgmap,
             pg_ts_cfg
    where
             pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    
    
    vacuum analyze pg_ts_cfgmap;
    
    select
             *
    from
             pg_ts_cfgmap,
             pg_ts_cfg
    where
             pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    
    ---------------------------------------------------
    
    Thomas
    
    
    
  2. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T04:35:25Z

    I just tested this on 7.4-snapshot-2003-03-24 and the same error occurred.
    The one regression test (opr_sanity) in 7.4-snapshot that failed also had
    this error.
    
      ERROR:  datumGetSize: Invalid typLen 0
    
    > System: NetBSD / Alpha 1.6 (64 bit)
    > Postgresql 7.3.2
    >
    > Bug: after vacuum analyze, I'm unable to do a simple select. Instead I'm
    > getting this error:
    >
    >   ERROR:  datumGetSize: Invalid typLen 0
    >
    > Many thanks to Teodor Sigaev for helping verify this bug. The following
    > test suite came from Teodor:
    >
    > Reproduce bug:
    > initdb and start postmaster
    > %createdb foo
    > %psql foo < bug.sql
    > CREATE TABLE
    > INSERT 16996 1
    > INSERT 16997 1
    > CREATE TABLE
    > INSERT 17003 1
    >   ts_name | ts_name
    > ---------+---------
    >   default | default
    >   default | default
    > (2 rows)
    >
    > VACUUM
    > ERROR:  datumGetSize: Invalid typLen 0
    >
    >
    > bug.sql is very simple:
    > ------------------------------------------------
    > CREATE TABLE pg_ts_cfgmap (
    >      ts_name text
    > );
    >
    > insert into pg_ts_cfgmap values ('default');
    > insert into pg_ts_cfgmap values ('default');
    >
    >
    > CREATE TABLE pg_ts_cfg (
    >      ts_name text
    > );
    >
    > insert into pg_ts_cfg values ('default');
    >
    > select
    >         *
    > from
    >          pg_ts_cfgmap,
    >          pg_ts_cfg
    > where
    >          pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    >
    >
    > vacuum analyze pg_ts_cfgmap;
    >
    > select
    >          *
    > from
    >          pg_ts_cfgmap,
    >          pg_ts_cfg
    > where
    >          pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    >
    > ---------------------------------------------------
    >
    > Thomas
    >
    >
    > ---------------------------(end of broadcast)---------------------------
    > TIP 6: Have you searched our list archives?
    >
    > http://archives.postgresql.org
    
    
    
  3. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T04:51:19Z

    Please also note that if you change the data type from text to int, then
    the test succeeds:
    
    CREATE TABLE wow_cfgmap (
         ts_id int
    );
    
    insert into wow_cfgmap values (1);
    insert into wow_cfgmap values (2);
    
    
    CREATE TABLE wow_cfg (
         ts_id int
    );
    
    insert into wow_cfg values (1);
    
    select
            *
    from
             wow_cfgmap,
             wow_cfg
    where
             wow_cfgmap.ts_id = wow_cfg.ts_id;
    
    
    vacuum analyze wow_cfgmap;
    
    select
             *
    from
             wow_cfgmap,
             wow_cfg
    where
             wow_cfgmap.ts_id = wow_cfg.ts_id;
    
    
    > System: NetBSD / Alpha 1.6 (64 bit)
    > Postgresql 7.3.2
    >
    > Bug: after vacuum analyze, I'm unable to do a simple select. Instead I'm
    > getting this error:
    >
    >   ERROR:  datumGetSize: Invalid typLen 0
    >
    > Many thanks to Teodor Sigaev for helping verify this bug. The following
    > test suite came from Teodor:
    >
    > Reproduce bug:
    > initdb and start postmaster
    > %createdb foo
    > %psql foo < bug.sql
    > CREATE TABLE
    > INSERT 16996 1
    > INSERT 16997 1
    > CREATE TABLE
    > INSERT 17003 1
    >   ts_name | ts_name
    > ---------+---------
    >   default | default
    >   default | default
    > (2 rows)
    >
    > VACUUM
    > ERROR:  datumGetSize: Invalid typLen 0
    >
    >
    > bug.sql is very simple:
    > ------------------------------------------------
    > CREATE TABLE pg_ts_cfgmap (
    >      ts_name text
    > );
    >
    > insert into pg_ts_cfgmap values ('default');
    > insert into pg_ts_cfgmap values ('default');
    >
    >
    > CREATE TABLE pg_ts_cfg (
    >      ts_name text
    > );
    >
    > insert into pg_ts_cfg values ('default');
    >
    > select
    >         *
    > from
    >          pg_ts_cfgmap,
    >          pg_ts_cfg
    > where
    >          pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    >
    >
    > vacuum analyze pg_ts_cfgmap;
    >
    > select
    >          *
    > from
    >          pg_ts_cfgmap,
    >          pg_ts_cfg
    > where
    >          pg_ts_cfgmap.ts_name = pg_ts_cfg.ts_name;
    >
    > ---------------------------------------------------
    >
    > Thomas
    >
    >
    > ---------------------------(end of broadcast)---------------------------
    > TIP 6: Have you searched our list archives?
    >
    > http://archives.postgresql.org
    
    
    
  4. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Neil Conway <neilc@samurai.com> — 2003-03-27T05:05:51Z

    On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    > initdb and start postmaster
    > %createdb foo
    > %psql foo < bug.sql
    > CREATE TABLE
    > INSERT 16996 1
    > INSERT 16997 1
    > CREATE TABLE
    > INSERT 17003 1
    >   ts_name | ts_name
    > ---------+---------
    >   default | default
    >   default | default
    > (2 rows)
    > 
    > VACUUM
    > ERROR:  datumGetSize: Invalid typLen 0
    
    Works for me:
    
    [nconway:/home/nconway]% psql -f bug.sql 
    CREATE TABLE
    INSERT 287424 1
    INSERT 287425 1
    CREATE TABLE
    INSERT 287431 1
     ts_name | ts_name 
    ---------+---------
     default | default
     default | default
    (2 rows)
    
    VACUUM
     ts_name | ts_name 
    ---------+---------
     default | default
     default | default
    (2 rows)
    
    That's on CVS from a couple days ago, loading bug.sql into an
    already-existing database. The machine is running Linux on x86 and
    PostgreSQL is compiled with gcc 3.2.3.
    
    Not to suggest that the bug doesn't exist -- merely that it appears to
    be platform or hardware-dependant.
    
    Cheers,
    
    Neil
    
    
    
  5. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T05:11:07Z

    > On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    [...]
    >> ERROR:  datumGetSize: Invalid typLen 0
    >
    > Works for me:
    >
    > [nconway:/home/nconway]% psql -f bug.sql
    > CREATE TABLE
    > INSERT 287424 1
    > INSERT 287425 1
    > CREATE TABLE
    > INSERT 287431 1
    >  ts_name | ts_name
    > ---------+---------
    >  default | default
    >  default | default
    > (2 rows)
    >
    > VACUUM
    >  ts_name | ts_name
    > ---------+---------
    >  default | default
    >  default | default
    > (2 rows)
    [...]
    > Not to suggest that the bug doesn't exist -- merely that it appears to
    > be platform or hardware-dependant.
    
    I think it's NetBSD / Alpha specific as it works on Linux / Alpha.
    
    --
    Thomas
    
    
    
  6. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T05:28:01Z

    >> On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    > [...]
    >>> ERROR:  datumGetSize: Invalid typLen 0
    >>
    >> Works for me:
    >>
    >> [nconway:/home/nconway]% psql -f bug.sql
    >> CREATE TABLE
    >> INSERT 287424 1
    >> INSERT 287425 1
    >> CREATE TABLE
    >> INSERT 287431 1
    >>  ts_name | ts_name
    >> ---------+---------
    >>  default | default
    >>  default | default
    >> (2 rows)
    >>
    >> VACUUM
    >>  ts_name | ts_name
    >> ---------+---------
    >>  default | default
    >>  default | default
    >> (2 rows)
    > [...]
    >> Not to suggest that the bug doesn't exist -- merely that it appears to
    >> be platform or hardware-dependant.
    >
    > I think it's NetBSD / Alpha specific as it works on Linux / Alpha.
    
    There was a report of this problem on Linux Alpha back in 7.3.1:
    
    http://archives.postgresql.org/pgsql-bugs/2002-12/msg00215.php
    
    --
    Thomas
    
    
    
  7. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Tom Lane <tgl@sss.pgh.pa.us> — 2003-03-27T14:48:34Z

    Neil Conway <neilc@samurai.com> writes:
    > On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    >> ERROR:  datumGetSize: Invalid typLen 0
    
    > Works for me:
    
    Me too.  Could be a 64-bit issue?  Or a bug in the compiler Thomas is
    using?
    
    Please get a stack trace from the point of the error and post that.
    
    			regards, tom lane
    
    
    
  8. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen

    Teodor Sigaev <teodor@sigaev.ru> — 2003-03-27T15:23:40Z

    
    Tom Lane wrote:
    > Neil Conway <neilc@samurai.com> writes:
    > 
    >>On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    >>
    >>>ERROR:  datumGetSize: Invalid typLen 0
    > 
    > 
    >>Works for me:
    > 
    > 
    > Me too.  Could be a 64-bit issue? 
    
    On box with
    %uname -a
    OSF1 xxx.xxx.msu.su V4.0 564.32 alpha
    %gcc -v
    Reading specs from 
    /usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0c/egcs-2.90.23/specs
    gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
    
    it works fine.
    
    
    > Or a bug in the compiler Thomas is
    > using?
    gcc 2.95.3 was used at Thomas's  box.
    
    > Please get a stack trace from the point of the error and post that.
    
    -- 
    Teodor Sigaev                                  E-mail: teodor@sigaev.ru
    
    
    
  9. Re: BUG: Vacuum Analyze - datumGetSize: Invalid typLen 0

    Thomas T. Thai <tom@minnesota.com> — 2003-03-27T17:37:47Z

    > Neil Conway <neilc@samurai.com> writes:
    >> On Wed, 2003-03-26 at 20:42, Thomas T. Thai wrote:
    >>> ERROR:  datumGetSize: Invalid typLen 0
    >
    >> Works for me:
    >
    > Me too.  Could be a 64-bit issue?  Or a bug in the compiler Thomas is
    > using?
    >
    > Please get a stack trace from the point of the error and post that.
    
    Tom, since I am unable to send direct email to you because the larger
    63.226.* ip class is blocked by five-ten-sg.com. I only have a small
    63.226.186.152/29 block under that, but I get affected too.
    
    ---
    <tgl@sss.pgh.pa.us>:
    Connected to 192.204.191.242 but sender was rejected.
    Remote host said: 550 5.7.1 Probable spam from 63.226.186.153 refused - see
    http://www.five-ten-sg.com/blackhole.php?63.226.186.153
    ---
    
    If you would like, I can create an account and you can test it out? Do you
    have a diff email address we could communicate through?
    
    The error:
    
      ERROR:  datumGetSize: Invalid typLen 0
    
    doesn't cause a crash on 7.4-snapshot. Is there a way to trace the problem
    to see what it's doing? Here is my GCC version:
    
    # gcc -v
    Using builtin specs.
    gcc version 2.95.3 20010315 (release) (NetBSD nb3)
    
    --
    Thomas