> LPP> With this enabled I sometimes get > > LPP> Database error 55000: currval of sequence "txn_id" is not yet LPP> > defined in this session > > can you catch a backtrace? it seems to be quite relevant here
6: (LAMBDA NIL) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-sql.lisp:157 7: (LAMBDA NIL) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-btree.lisp:263 8: (SB-PCL::FAST-METHOD ELEPHANT::EXECUTE-TRANSACTION (DB-POSTMODERN::POSTMODERN-STORE-CONTROLLER T)) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-transaction.lisp: 60 Local variables: ARG-0 = 8 ARG-3 = #<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-world mystic mystic PORT 5433)> ARG-4 = #<CLOSURE (LAMBDA NIL) {BA0738D}> 9: (SB-PCL::FAST-METHOD (SETF DB-POSTMODERN::INTERNAL-GET-VALUE) (T T DB-POSTMODERN::PM-BTREE)) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-btree.lisp:263 Local variables: ARG-2 = #<MYSTIC:PLAYER 10: (SB-PCL::FAST-METHOD ELEPHANT::PERSISTENT-SLOT-WRITER (DB-POSTMODERN::POSTMODERN-STORE-CONTROLLER T T T)) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-controller.lisp:266 Local variables: ARG-2 = #<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-world mystic mystic PORT 5433)> ARG-3 = #<MYSTIC:PLAYER 11: (LAMBDA NIL) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/elephant/classes.lisp:171 12: DB-POSTMODERN::EXECUTE-TRANSACTION-ONE-TRY At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-transaction.lisp:29 Local variables: ARG-0 = #<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-world mystic mystic PORT 5433)> ARG-1 = #<CLOSURE (LAMBDA NIL) {BA066DD}> ARG-2 = NIL 13: (SB-PCL::FAST-METHOD ELEPHANT::EXECUTE-TRANSACTION (DB-POSTMODERN::POSTMODERN-STORE-CONTROLLER T)) At /home/sky/projects/mystic/hg.beta1/packages/elephant/src/db-postmodern/pm-transaction.lisp:60 Local variables: ARG-0 = 8 ARG-3 = #<POSTMODERN-STORE-CONTROLLER (POSTGRESQL 127.0.0.1 mystic-world mystic mystic PORT 5433)> ARG-4 = #<CLOSURE (LAMBDA NIL) {BA066DD}> And here's the PostgreSQL point of view: May 2 22:36:57 wintermute postgres[3702]: [16-1] ERROR: currval of sequence "txn_id" is not yet defined in this session May 2 22:36:57 wintermute postgres[3702]: [16-2] CONTEXT: SQL statement "INSERT INTO update_log (txn_id, id, key) VALUES (currval('txn_id'), $1 , $2 )" May 2 22:36:57 wintermute postgres[3702]: [16-3] PL/pgSQL function "notify_btree_update" line 2 at SQL statement May 2 22:36:57 wintermute postgres[3702]: [16-4] SQL statement "SELECT notify_btree_update(2, $1 )" May 2 22:36:57 wintermute postgres[3702]: [16-5] PL/pgSQL function "ins_upd_slots" line 11 at perform May 2 22:36:57 wintermute postgres[3702]: [16-6] STATEMENT: select ins_upd_slots($1,$2) May 2 22:36:57 wintermute postgres[3702]: [17-1] ERROR: current transaction is aborted, commands ignored until end of transaction block May 2 22:36:57 wintermute postgres[3702]: [18-1] ERROR: current transaction is aborted, commands ignored until end of transaction block May 2 22:36:57 wintermute postgres[3702]: [19-1] LOG: execute <unnamed>: ABORT > so this code path seems to be correct -- NEXTVAL is always called before > CURRVAL. > > so only reason i can think of at moment (before looking into backtrace, at > least) is misconfiguration -- some processes/threads you launch have global sync cache enabled, while others have not. It might be that I forgot to enable the sync cache in those sessions; I need to check this out. If this is the case we should detect it and provide a meaningful error message. Leslie _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel