BUG: Vacuum Analyze - 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
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
Show quoted text
System: NetBSD / Alpha 1.6 (64 bit)
Postgresql 7.3.2Bug: 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 0bug.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?
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;
Show quoted text
System: NetBSD / Alpha 1.6 (64 bit)
Postgresql 7.3.2Bug: 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 0bug.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?
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
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
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
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
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
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