Thread: Assert Failure with current CVS

Assert Failure with current CVS

From
Philip Warner
Date:
Got the following errors when using very recent CVS build:

On client (psql):

1: psql:./indexes_1.sql:12: pqReadData() -- backend closed the channel
unexpectedly.
2:      This probably means the backend terminated abnormally
3:      before or while processing the request.
4: psql:./indexes_1.sql:12: connection to server was lost

on backend:

DEBUG:  MoveOfflineLogs: skip 0000000000000002
DEBUG:  MoveOfflineLogs: skip 0000000000000001
DEBUG:  --Relation pg_type--
DEBUG:  Pages 2: Changed 1, reaped 0, Empty 0, New 0; Tup 136: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 106, MaxLen 109; Re-us
ing: Free/Avail. Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.
DEBUG:  Index pg_type_oid_index: Pages 2; Tuples 136. CPU 0.00s/0.00u sec.
DEBUG:  Index pg_type_typname_index: Pages 2; Tuples 136. CPU 0.00s/0.00u sec.
DEBUG:  Analyzing...
DEBUG:  --Relation pg_attribute--
DEBUG:  Pages 11: Changed 4, reaped 3, Empty 0, New 0; Tup 796: Vac 54,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 98, MaxLen 98; Re-us
ing: Free/Avail. Space 6412/3720; EndEmpty/Avail. Pages 0/2. CPU
0.00s/0.00u sec.
DEBUG:  Index pg_attribute_relid_attnam_index: Pages 12; Tuples 796:
Deleted 54. CPU 0.00s/0.01u sec.
DEBUG:  Index pg_attribute_relid_attnum_index: Pages 6; Tuples 796: Deleted
54. CPU 0.00s/0.00u sec.
TRAP: Failed Assertion("!(((file) > 0 && (file) < (int) SizeVfdCache &&
VfdCache[file].fileName != ((void *)0))):", File: "fd.c", Li
ne: 967)
!(((file) > 0 && (file) < (int) SizeVfdCache && VfdCache[file].fileName !=
((void *)0))) (0)
Server process (pid 7187) exited with status 6 at Tue Nov 21 13:44:27 2000
Terminating any active server processes...
NOTICE:  Message from PostgreSQL backend:       The Postmaster has informed me that some other backend died
abnormally and possibly corrupted shared memory.       I have rolled back the current transaction and am going to
terminate your database system connection and exit.       Please reconnect to the database system and repeat your
query.
Server processes were terminated at Tue Nov 21 13:44:27 2000
Reinitializing shared memory and semaphores
DEBUG:  Data Base System is starting up at Tue Nov 21 13:44:28 2000
DEBUG:  Data Base System was interrupted being in production at Tue Nov 21
13:44:07 2000
DEBUG:  CheckPoint record at (0, 31491092)
DEBUG:  Redo record at (0, 31470036); Undo record at (0, 23533448);
Shutdown FALSE
DEBUG:  NextTransactionId: 771; NextOid: 280037
DEBUG:  The DataBase system was not properly shut down       Automatic recovery is in progress...
DEBUG:  Redo starts at (0, 31470036)
DEBUG:  Redo done at (0, 31636584)
DEBUG:  MoveOfflineLogs: skip 0000000000000002
DEBUG:  MoveOfflineLogs: skip 0000000000000001
DEBUG:  Data Base System is in production state at Tue Nov 21 13:44:32 2000


Now, when I go into psql and type \d, I get:

birds_load=# \d
ERROR:  cannot open pg_proc_proname_narg_type_index: No such file or directory


I can run the backend in debug to get a backtrace, if that would help, but
I won;t have a chance for a few hours.

FWIW, the task being performed was to load about 80000 records using
DBD::Pg via INSERT statements in a *single* transaction, then commit and
define 5 indexes. The final step was to run a 'vacuum analyze'. From the
log looks like it was in the vacuum step.


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|                                |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/


Re: Assert Failure with current CVS

From
Tom Lane
Date:
Philip Warner <pjw@rhyme.com.au> writes:
> TRAP: Failed Assertion("!(((file) > 0 && (file) < (int) SizeVfdCache &&
> VfdCache[file].fileName != ((void *)0))):", File: "fd.c", Line: 967)
> !(((file) > 0 && (file) < (int) SizeVfdCache && VfdCache[file].fileName !=
> ((void *)0))) (0)
> Server process (pid 7187) exited with status 6 at Tue Nov 21 13:44:27 2000

There should be a core file from this --- backtrace please?
        regards, tom lane


Re: Assert Failure with current CVS

From
Philip Warner
Date:
At 22:38 20/11/00 -0500, Tom Lane wrote:
>Philip Warner <pjw@rhyme.com.au> writes:
>> TRAP: Failed Assertion("!(((file) > 0 && (file) < (int) SizeVfdCache &&
>> VfdCache[file].fileName != ((void *)0))):", File: "fd.c", Line: 967)
>> !(((file) > 0 && (file) < (int) SizeVfdCache && VfdCache[file].fileName !=
>> ((void *)0))) (0)
>> Server process (pid 7187) exited with status 6 at Tue Nov 21 13:44:27 2000
>
>There should be a core file from this --- backtrace please?
>

#0  0x400da0d1 in __kill () at soinit.c:27
#1  0x400d9eff in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x400db19b in abort () at ../sysdeps/generic/abort.c:83
#3  0x8155068 in ExcAbort () at excabort.c:27
#4  0x8154fc7 in ExcUnCaught (excP=0x81c3d58, detail=0, data=0x0,   message=0x81a3fa0 "!(((file) > 0 && (file) < (int)
SizeVfdCache&&
 
VfdCache[file].fileName != ((void *)0)))") at exc.c:178
#5  0x815501a in ExcRaise (excP=0x81c3d58, detail=0, data=0x0,   message=0x81a3fa0 "!(((file) > 0 && (file) < (int)
SizeVfdCache&&
 
VfdCache[file].fileName != ((void *)0)))") at exc.c:195
#6  0x81540ef in ExceptionalCondition (   conditionName=0x81a3fa0 "!(((file) > 0 && (file) < (int) SizeVfdCache
&& VfdCache[file].fileName != ((void *)0)))",   exceptionP=0x81c3d58, detail=0x0, fileName=0x81a3e87 "fd.c",
lineNumber=967) at assert.c:73
#7  0x810afeb in FileSync (file=31) at fd.c:967
#8  0x81136e0 in mdcommit () at md.c:818
#9  0x8114510 in smgrcommit () at smgr.c:519
#10 0x8107fed in BufmgrCommit () at xlog_bufmgr.c:1071
#11 0x808c7f6 in RecordTransactionCommit () at xact.c:688
#12 0x80bd245 in repair_frag (vacrelstats=0x8234d44, onerel=0x8210344,
vacuum_pages=0xbfffeeac, fraged_pages=0xbfffee9c,   nindices=2, Irel=0x8234dbc) at vacuum.c:1790
#13 0x80ba26b in vacuum_rel (relid=1249, analyze=1, is_toastrel=0 '\000')
at vacuum.c:477
#14 0x80b9cf3 in vac_vacuum (VacRelP=0x0, analyze=1 '\001', anal_cols2=0x0)
at vacuum.c:245
#15 0x80b9c6c in vacuum (vacrel=0x0, verbose=0, analyze=1 '\001',
anal_cols=0x0) at vacuum.c:163
#16 0x8117a25 in ProcessUtility (parsetree=0x824529c, dest=Remote) at
utility.c:690
#17 0x8115775 in pg_exec_query_string (query_string=0x8244f50 "vacuum
analyze;", dest=Remote, parse_context=0x81fbe58)   at postgres.c:786
#18 0x8116802 in PostgresMain (argc=4, argv=0xbffff148, real_argc=3,
real_argv=0xbffffa34, username=0x8208f99 "pjw")   at postgres.c:1826
#19 0x80fd6ef in DoBackend (port=0x8208d30) at postmaster.c:2060
#20 0x80fd28a in BackendStartup (port=0x8208d30) at postmaster.c:1837
#21 0x80fc556 in ServerLoop () at postmaster.c:1027
#22 0x80fbf3d in PostmasterMain (argc=3, argv=0xbffffa34) at postmaster.c:700
#23 0x80dc095 in main (argc=3, argv=0xbffffa34) at main.c:112

----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|                                |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/


Re: Assert Failure with current CVS

From
Philip Warner
Date:
At 22:38 20/11/00 -0500, Tom Lane wrote:
>Philip Warner <pjw@rhyme.com.au> writes:
>> TRAP: Failed Assertion("!(((file) > 0 && (file) < (int) SizeVfdCache &&
>> VfdCache[file].fileName != ((void *)0))):", File: "fd.c", Line: 967)
>> !(((file) > 0 && (file) < (int) SizeVfdCache && VfdCache[file].fileName !=
>> ((void *)0))) (0)
>> Server process (pid 7187) exited with status 6 at Tue Nov 21 13:44:27 2000
>
>There should be a core file from this --- backtrace please?
>

#0  0x400da0d1 in __kill () at soinit.c:27
#1  0x400d9eff in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x400db19b in abort () at ../sysdeps/generic/abort.c:83
#3  0x8155068 in ExcAbort () at excabort.c:27
#4  0x8154fc7 in ExcUnCaught (excP=0x81c3d58, detail=0, data=0x0,   message=0x81a3fa0 "!(((file) > 0 && (file) < (int)
SizeVfdCache&&
 
VfdCache[file].fileName != ((void *)0)))") at exc.c:178
#5  0x815501a in ExcRaise (excP=0x81c3d58, detail=0, data=0x0,   message=0x81a3fa0 "!(((file) > 0 && (file) < (int)
SizeVfdCache&&
 
VfdCache[file].fileName != ((void *)0)))") at exc.c:195
#6  0x81540ef in ExceptionalCondition (   conditionName=0x81a3fa0 "!(((file) > 0 && (file) < (int) SizeVfdCache
&& VfdCache[file].fileName != ((void *)0)))",   exceptionP=0x81c3d58, detail=0x0, fileName=0x81a3e87 "fd.c",
lineNumber=967) at assert.c:73
#7  0x810afeb in FileSync (file=31) at fd.c:967
#8  0x81136e0 in mdcommit () at md.c:818
#9  0x8114510 in smgrcommit () at smgr.c:519
#10 0x8107fed in BufmgrCommit () at xlog_bufmgr.c:1071
#11 0x808c7f6 in RecordTransactionCommit () at xact.c:688
#12 0x80bd245 in repair_frag (vacrelstats=0x8234d44, onerel=0x8210344,
vacuum_pages=0xbfffeeac, fraged_pages=0xbfffee9c,   nindices=2, Irel=0x8234dbc) at vacuum.c:1790
#13 0x80ba26b in vacuum_rel (relid=1249, analyze=1, is_toastrel=0 '\000')
at vacuum.c:477
#14 0x80b9cf3 in vac_vacuum (VacRelP=0x0, analyze=1 '\001', anal_cols2=0x0)
at vacuum.c:245
#15 0x80b9c6c in vacuum (vacrel=0x0, verbose=0, analyze=1 '\001',
anal_cols=0x0) at vacuum.c:163
#16 0x8117a25 in ProcessUtility (parsetree=0x824529c, dest=Remote) at
utility.c:690
#17 0x8115775 in pg_exec_query_string (query_string=0x8244f50 "vacuum
analyze;", dest=Remote, parse_context=0x81fbe58)   at postgres.c:786
#18 0x8116802 in PostgresMain (argc=4, argv=0xbffff148, real_argc=3,
real_argv=0xbffffa34, username=0x8208f99 "pjw")   at postgres.c:1826
#19 0x80fd6ef in DoBackend (port=0x8208d30) at postmaster.c:2060
#20 0x80fd28a in BackendStartup (port=0x8208d30) at postmaster.c:1837
#21 0x80fc556 in ServerLoop () at postmaster.c:1027
#22 0x80fbf3d in PostmasterMain (argc=3, argv=0xbffffa34) at postmaster.c:700
#23 0x80dc095 in main (argc=3, argv=0xbffffa34) at main.c:112


FWIW, this is quite reproducible.

----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|                                |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/


Re: Assert Failure with current CVS

From
Philip Warner
Date:

FWIW, I can freely reproduce this from a database dump and a short script
which defines indexes and does a vacuum. They total about 600k, if anyone
wants me to send them...



>>>>

<excerpt>At 22:38 20/11/00 -0500, Tom Lane wrote:

>Philip Warner <<pjw@rhyme.com.au> writes:

>> TRAP: Failed Assertion("!(((file) > 0 && (file) << (int) SizeVfdCache
&&

>> VfdCache[file].fileName != ((void *)0))):", File: "fd.c", Line: 967)

>> !(((file) > 0 && (file) << (int) SizeVfdCache &&
VfdCache[file].fileName !=

>> ((void *)0))) (0)

>> Server process (pid 7187) exited with status 6 at Tue Nov 21 13:44:27
2000

>

>There should be a core file from this --- backtrace please?

>


#0  0x400da0d1 in __kill () at soinit.c:27

#1  0x400d9eff in raise (sig=6) at ../sysdeps/posix/raise.c:27

#2  0x400db19b in abort () at ../sysdeps/generic/abort.c:83

#3  0x8155068 in ExcAbort () at excabort.c:27

#4  0x8154fc7 in ExcUnCaught (excP=0x81c3d58, detail=0, data=0x0,
   message=0x81a3fa0 "!(((file) > 0 && (file) << (int) SizeVfdCache &&
VfdCache[file].fileName != ((void *)0)))") at exc.c:178

#5  0x815501a in ExcRaise (excP=0x81c3d58, detail=0, data=0x0,
   message=0x81a3fa0 "!(((file) > 0 && (file) << (int) SizeVfdCache &&
VfdCache[file].fileName != ((void *)0)))") at exc.c:195

#6  0x81540ef in ExceptionalCondition (
   conditionName=0x81a3fa0 "!(((file) > 0 && (file) << (int)
SizeVfdCache && VfdCache[file].fileName != ((void *)0)))",
   exceptionP=0x81c3d58, detail=0x0, fileName=0x81a3e87 "fd.c",
lineNumber=967) at assert.c:73

#7  0x810afeb in FileSync (file=31) at fd.c:967

#8  0x81136e0 in mdcommit () at md.c:818

#9  0x8114510 in smgrcommit () at smgr.c:519

#10 0x8107fed in BufmgrCommit () at xlog_bufmgr.c:1071

#11 0x808c7f6 in RecordTransactionCommit () at xact.c:688

#12 0x80bd245 in repair_frag (vacrelstats=0x8234d44, onerel=0x8210344,
vacuum_pages=0xbfffeeac, fraged_pages=0xbfffee9c,
   nindices=2, Irel=0x8234dbc) at vacuum.c:1790

#13 0x80ba26b in vacuum_rel (relid=1249, analyze=1, is_toastrel=0 '\000')
at vacuum.c:477

#14 0x80b9cf3 in vac_vacuum (VacRelP=0x0, analyze=1 '\001',
anal_cols2=0x0) at vacuum.c:245

#15 0x80b9c6c in vacuum (vacrel=0x0, verbose=0, analyze=1 '\001',
anal_cols=0x0) at vacuum.c:163

#16 0x8117a25 in ProcessUtility (parsetree=0x824529c, dest=Remote) at
utility.c:690

#17 0x8115775 in pg_exec_query_string (query_string=0x8244f50 "vacuum
analyze;", dest=Remote, parse_context=0x81fbe58)
   at postgres.c:786

#18 0x8116802 in PostgresMain (argc=4, argv=0xbffff148, real_argc=3,
real_argv=0xbffffa34, username=0x8208f99 "pjw")
   at postgres.c:1826

#19 0x80fd6ef in DoBackend (port=0x8208d30) at postmaster.c:2060

#20 0x80fd28a in BackendStartup (port=0x8208d30) at postmaster.c:1837

#21 0x80fc556 in ServerLoop () at postmaster.c:1027

#22 0x80fbf3d in PostmasterMain (argc=3, argv=0xbffffa34) at
postmaster.c:700

#23 0x80dc095 in main (argc=3, argv=0xbffffa34) at main.c:112



FWIW, this is quite reproducible.


</excerpt><<<<<<<<



----------------------------------------------------------------

Philip Warner                    |     __---_____

Albatross Consulting Pty. Ltd.   |----/       -  \

(A.B.N. 75 008 659 498)          |          /(@)   ______---_

Tel: (+61) 0500 83 82 81         |                 _________  \

Fax: (+61) 0500 83 82 82         |                 ___________ |

Http://www.rhyme.com.au          |                /           \|
                                |    --________--

PGP key available upon request,  |  /

and from pgp5.ai.mit.edu:11371   |/