If PostgreSQL failed to compile on your computer or you found a bug that
is likely to be specific to one platform then please fill out this form
and e-mail it to pgsql-ports@postgresql.org.
To report any other bug, fill out the form below and e-mail it to
pgsql-bugs@postgresql.org.
If you not only found the problem but solved it and generated a patch
then e-mail it to pgsql-patches@postgresql.org instead. Please use the
command "diff -c" to generate the patch.
You may also enter a bug report at http://www.postgresql.org/ instead of
e-mail-ing this form.
============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================
Your name : Helmut Lichtenberg
Your email address : heli@tzv.fal.de
System Configuration
- ---------------------
Architecture (example: Intel Pentium) : 433 MHz Alpha PC164
Operating System (example: Linux 2.0.26 ELF) : Linux 2.0.36 RedHat 5.2 Alpha
PostgreSQL version (example: PostgreSQL-6.4) : PostgreSQL-6.4
Compiler used (example: gcc 2.8.0) : gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
Please enter a FULL description of your problem:
- ------------------------------------------------
==============================================================================
postgres(forssa,pgsql): initdb
We are initializing the database system with username postgres (uid=411).
This user will own all the files and must also own the server process.
Creating template database in /usr/local/pgsql/data/base/template1
FATAL: s_lock(202bb6f0) at spin.c:114, stuck spinlock. Aborting.
FATAL: s_lock(202bb6f0) at spin.c:114, stuck spinlock. Aborting.
initdb: could not create template database
initdb: cleaning up by wiping out /usr/local/pgsql/data/base/template1
==============================================================================
Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
- ----------------------------------------------------------------------
I compiled the sources (after applying the features patch) on this
platform. The error always appears while running initdb.
When I run 'make s_lock_test' in postgresql-v6.4/src/backend/storage/buffer
I get the following:
==============================================================================
root(forssa,buffer)# make s_lock_test
gcc -I../../../include -I../../../backend -O2 -mieee -Wall -Wmissing-prototypes -I../.. -DS_LOCK_TEST=1 s_lock.c -o
s_lock_test
s_lock.c: In function `s_lock_stuck':
s_lock.c:47: warning: cast from pointer to integer of different size
s_lock.c:50: warning: cast from pointer to integer of different size
s_lock.c: At top level:
s_lock.c:203: warning: return type of `main' is not `int'
./s_lock_test
S_LOCK_TEST: this will hang for a few minutes and then abort
with a 'stuck spinlock' message if S_LOCK()
and TAS() are working.
FATAL: s_lock(20101038) at s_lock.c:223, stuck spinlock. Aborting.
FATAL: s_lock(20101038) at s_lock.c:223, stuck spinlock. Aborting.
make: *** [s_lock_test] Aborted
make: *** Deleting file `s_lock_test'
==============================================================================
This takes about 40 seconds,
When I add the -S flag to target s_lock_test in the Makefile I get the
following results:
(Note: This does not make any sense to me but I read it in a mail from D.
Gould in the hackers mailing list when I searched for spinlock. :^)
==============================================================================
root(forssa,buffer)# !mak
make s_lock_test
gcc -I../../../include -I../../../backend -O2 -mieee -Wall -Wmissing-prototypes -I../.. -S -DS_LOCK_TEST=1 s_lock.c
-os_lock_test
s_lock.c: In function `s_lock_stuck':
s_lock.c:47: warning: cast from pointer to integer of different size
s_lock.c:50: warning: cast from pointer to integer of different size
s_lock.c: At top level:
s_lock.c:203: warning: return type of `main' is not `int'
./s_lock_test
make: execvp: ./s_lock_test: Permission denied
make: *** [s_lock_test] Error 127
root(forssa,buffer)# cat s_lock_test
.file 1 "s_lock.c"
.set noat
.set noreorder
.globl s_spincycle
.data
.align 2
.type s_spincycle,@object
.size s_spincycle,80
s_spincycle:
.long 0
.long 0
.long 0
.long 0
.long 10000
.long 0
.long 0
.long 0
.long 10000
.long 0
.long 0
.long 10000
.long 0
.long 0
.long 10000
.long 0
.long 10000
.long 0
.long 10000
.long 10000
.section .rodata
$LC0:
.ascii "\12FATAL: s_lock(%08x) at %s:%d, stuck spinlock. Abor"
.ascii "ting.\12\0"
.text
.align 5
.ent s_lock_stuck
s_lock_stuck:
.eflag 48
.frame $30,48,$26,0
.mask 0x4001e00,-48
ldgp $29,0($27)
$s_lock_stuck..ng:
subq $30,48,$30
stq $10,16($30)
stq $11,24($30)
lda $10,$LC0
addl $16,$31,$11
stq $9,8($30)
stq $12,32($30)
bis $18,$18,$9
bis $17,$17,$12
lda $16,_IO_stderr_
bis $10,$10,$17
stq $26,0($30)
.prologue 1
bis $11,$11,$18
bis $12,$12,$19
bis $9,$9,$20
jsr $26,fprintf
ldgp $29,0($26)
lda $16,_IO_stdout_
bis $10,$10,$17
bis $11,$11,$18
bis $12,$12,$19
bis $9,$9,$20
jsr $26,fprintf
ldgp $29,0($26)
jsr $26,abort
ldgp $29,0($26)
.end s_lock_stuck
.align 5
.globl s_lock
.ent s_lock
s_lock:
.eflag 48
.frame $30,80,$26,0
.mask 0x4007e00,-80
ldgp $29,0($27)
$s_lock..ng:
subq $30,80,$30
stq $14,48($30)
lda $14,s_spincycle
stq $9,8($30)
stq $10,16($30)
bis $31,$31,$9
stq $11,24($30)
bis $16,$16,$10
stq $12,32($30)
bis $18,$18,$11
stq $13,40($30)
bis $17,$17,$12
stq $26,0($30)
.prologue 1
lda $13,10000
br $31,$L19
.align 4
$L21:
lds $f10,0($1)
stl $31,64($30)
sts $f10,68($30)
jsr $26,select
ldgp $29,0($26)
bis $10,$10,$16
bis $12,$12,$17
bis $11,$11,$18
cmple $9,$13,$1
bne $1,$L19
bsr $26,$s_lock_stuck..ng
$L19:
bis $9,$9,$3
ldq $0, 0($10)
bne $0, 3f
ldq_l $0, 0($10)
bne $0, 3f
or $31, 1, $0
stq_c $0, 0($10)
beq $0, 2f
bis $31, $31, $5
mb
jmp $31, 4f
2: or $31, 1, $0
3: bis $0, $0, $5
4: nop
s4addq $3,$3,$2
s8addq $2,$3,$2
s4addq $2,$2,$2
s4subq $2,$3,$2
s4addq $2,$3,$2
sll $2,14,$1
sra $3,31,$4
subq $1,$2,$1
s4addq $1,$3,$1
s8subq $1,$3,$1
sra $1,35,$1
bis $31,$31,$16
subq $1,$4,$1
s4addl $1,$1,$1
s4addq $1,0,$1
subl $9,$1,$1
s4addq $1,$14,$1
bis $31,$31,$17
bis $31,$31,$18
bis $31,$31,$19
addq $30,64,$20
addl $9,1,$9
addl $5,$31,$5
bne $5,$L21
ldq $26,0($30)
ldq $9,8($30)
ldq $10,16($30)
ldq $11,24($30)
ldq $12,32($30)
ldq $13,40($30)
ldq $14,48($30)
addq $30,80,$30
ret $31,($26),1
.end s_lock
.section .rodata
$LC1:
.ascii "S_LOCK_TEST: failed, lock not initialized.\12\0"
$LC2:
.ascii "s_lock.c\0"
$LC3:
.ascii "S_LOCK_TEST: failed, lock not locked\12\0"
$LC4:
.ascii "S_LOCK_TEST: this will hang for a few minutes and t"
.ascii "hen abort\12\0"
$LC5:
.ascii " with a 'stuck spinlock' message if S_L"
.ascii "OCK()\12\0"
$LC6:
.ascii " and TAS() are working.\12\0"
$LC7:
.ascii "S_LOCK_TEST: failed, lock not locked~\12\0"
.text
.align 5
.globl main
.ent main
main:
.eflag 48
.frame $30,16,$26,0
.mask 0x4000200,-16
ldgp $29,0($27)
$main..ng:
subq $30,16,$30
stq $26,0($30)
stq $9,8($30)
.prologue 1
mb
lda $9,test_lock
stq $31,0($9)
ldq $1,0($9)
beq $1,$L26
lda $16,$LC1
jsr $26,printf
ldgp $29,0($26)
bis $31,1,$16
jsr $26,exit
ldgp $29,0($26)
$L26:
ldq $0, 0($9)
bne $0, 3f
ldq_l $0, 0($9)
bne $0, 3f
or $31, 1, $0
stq_c $0, 0($9)
beq $0, 2f
bis $31, $31, $1
mb
jmp $31, 4f
2: or $31, 1, $0
3: bis $0, $0, $1
4: nop
addl $1,$31,$1
beq $1,$L28
lda $17,$LC2
bis $9,$9,$16
bis $31,212,$18
bsr $26,$s_lock..ng
.align 4
$L28:
ldq $1,0($9)
bne $1,$L34
lda $16,$LC3
jsr $26,printf
ldgp $29,0($26)
bis $31,2,$16
jsr $26,exit
ldgp $29,0($26)
$L34:
lda $16,$LC4
jsr $26,printf
ldgp $29,0($26)
lda $16,$LC5
jsr $26,printf
ldgp $29,0($26)
lda $16,$LC6
jsr $26,printf
ldgp $29,0($26)
lda $17,$LC2
bis $9,$9,$16
bis $31,223,$18
bsr $26,$s_lock..ng
lda $16,$LC7
jsr $26,printf
ldgp $29,0($26)
bis $31,3,$16
jsr $26,exit
ldgp $29,0($26)
.end main
.comm test_lock,8,8
.ident "GCC: (GNU) egcs-2.91.60 19981201 (egcs-1.1.1 release)"
==============================================================================
If you know how this problem might be fixed, list the solution below:
- ---------------------------------------------------------------------
Sorry, I've no idea.
Maybe it is an Alpha-specific question as we run PostgreSQL 6.4 also on
Linux Intel.
TIA
Helmut