[elephant-devel] Next issue, this time with Postmodern backend
Leslie P. Polzer
leslie.polzer at gmx.net
Tue Feb 26 17:43:51 UTC 2008
Internal Server Error
Database error 53300: connection limit exceeded for non-superusers
0: (BACKTRACE 536870911 #<SB-IMPL::STRING-OUTPUT-STREAM {AB64179}>) 1:
(HUNCHENTOOT:GET-BACKTRACE #<unavailable argument>)
2: ((LAMBDA (COND)) #<CL-POSTGRES:DATABASE-ERROR {AB63DE9}>)
3: ((LAMBDA (COND)) #<CL-POSTGRES:DATABASE-ERROR {AB63DE9}>)
4: (SIGNAL #<CL-POSTGRES:DATABASE-ERROR {AB63DE9}>)
5: (ERROR CL-POSTGRES:DATABASE-ERROR)
6: (CL-POSTGRES::GET-ERROR #<SB-SYS:FD-STREAM for "a socket" {AB62E99}>) 7:
(CL-POSTGRES::GET-ERROR #<SB-SYS:FD-STREAM for "a socket" {AB62E99}>) 8:
(CL-POSTGRES::AUTHENTICATE
#<SB-SYS:FD-STREAM for "a socket" {AB62E99}>
"mystic"
"mystic"
"mystic-items")
9: (CL-POSTGRES::INITIATE-CONNECTION
#<CL-POSTGRES:DATABASE-CONNECTION {AB62C59}>)
10: (CL-POSTGRES:OPEN-DATABASE
"mystic-items"
"mystic"
"mystic"
"127.0.0.1"
5433)
11: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
12: (SB-UNIX::CALL-WITH-LOCAL-INTERRUPTS
#<CLOSURE (FLET SB-UNIX::WITH-LOCAL-INTERRUPTS-THUNK) {B5414B4D}> T)
13: ((FLET SB-UNIX::WITHOUT-INTERRUPTS-THUNK) T)
14: ((FLET SB-UNIX::RUN-WITHOUT-INTERRUPTS))
15: (SB-UNIX::CALL-WITHOUT-INTERRUPTS
#<CLOSURE (FLET SB-UNIX::WITHOUT-INTERRUPTS-THUNK) {B5414C3D}>)
16: (SB-THREAD::CALL-WITH-MUTEX
#<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {B5414CC5}>
#S(SB-THREAD:MUTEX
:NAME NIL
:%OWNER #<SB-THREAD:THREAD "hunchentoot-worker-75" {AD6D541}> :STATE 1)
#<SB-THREAD:THREAD "hunchentoot-worker-75" {AD6D541}>
T)
17: ((SB-PCL::FAST-METHOD DB-POSTMODERN::CONTROLLER-CONNECTION-FOR-THREAD
(DB-POSTMODERN::POSTMODERN-STORE-CONTROLLER))
#<unavailable argument>
#<unavailable argument>
#<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-items mystic
mystic PORT 5433)>)
18: ((SB-PCL::FAST-METHOD ELEPHANT::PERSISTENT-SLOT-BOUNDP
(DB-POSTMODERN::POSTMODERN-STORE-CONTROLLER T T))
#<unavailable argument>
#<unavailable argument>
#<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-items mystic
mystic PORT 5433)>
#<WORK oid:79>
MYSTIC::BLOCKING-TEXT)
19: ((SB-PCL::FAST-METHOD MYSTIC:CLONE (MYSTIC:WORK))
#<unavailable argument>
#<unavailable argument>
#<WORK oid:79>)
20: (MYSTIC::INSTANTIATE-WORK #<WORK oid:79> 720)
[...]
Right after:
(sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "hunchentoot-listener-1" {B8702E9}>
#<SB-THREAD:THREAD "initial thread" {A723549}>)
Incredible? What's going on here?
I'm subjecting this to a one-person load. All the PG workers pile up idly
until the limit is hit.
There must be something fishy either with PostgreSQL 8 (tested 8.2.6, 8.1.11)
or Postmodern. I tend to put it on the latter, because GRAND-PRIX with CLSQL
doesn't show any problems, nor do any workers accumulate.
Transactions seem to be fine; I myself didn't run any, and the Elephant ones
seem to be neatly delimited, having a matching COMMIT for each BEGIN.
My first wild guess is that Postmodern does not close its connections in some
cases.
I suppose others are using the Postmodern backend with PG8? What are your
results? You can check idle workers easily with something like
"ps aux | grep postgres"
Leslie
More information about the elephant-devel
mailing list