[elephant-devel] Re: Postmodern regression

Alex Mizrahi killerstorm at newmail.ru
Wed Apr 30 11:04:02 UTC 2008


 LPP> ...
 LPP>     1: (DB-POSTMODERN::ENSURE-PREPARED-ON-CONNECTION
 LPP>         COMMON-LISP-USER::TREE10SELECT "TREE10SELECT"
 LPP>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 LPP>         "select bob from tree10,blob where qi=$1 and bid = value")
 LPP>       2: (CL-POSTGRES:CONNECTION-META
 LPP>           #<CL-POSTGRES:DATABASE-CONNECTION {C883481}>)
 LPP>       2: CL-POSTGRES:CONNECTION-META returned
 LPP>            #<HASH-TABLE :TEST EQL :COUNT 20 {D2C1C91}>

 LPP> Keep in mind that TREE10SELECT is interned in CL-USER here (for
 LPP> whatever reason).

omg, interning stuff again.. i've already got some error like this in 
unrelated places. we should inspect code for stuff like this, or something..

actually the reason is a broken function called make-local-name:

(defmethod make-local-name ((ex pm-executor) name)
  (read-from-string (format nil "~a~a" (executor-prefix ex) name)))

that makes symbols used in queries:

(defmethod register-query ((ex pm-executor) query-identifier sql)
  (let ((local-name (make-local-name ex query-identifier)))
    (pushnew (cons query-identifier
                   (list (symbol-name local-name)
                         local-name

 LPP> I have solved this right now by using keywords. Patch attached,
 LPP> runs green for me.

can you please change your patch to fix offending make-local-name (i guess 
it should intern name into keyword package rather than doing this 
read-from-string thing)
rather than innocent users of that symbol?

 ??>> never seen postgres hanging. if txn is aborted, it just ignores all
 ??>> sebsequent statements. but is should not hang..

 LPP> Could you do me a favor? Try running the Elephant backend test suite
 LPP> (preferably with PM backend), say, 15 times in a row in 1.0.1x SBCL
 LPP> and tell me whether it hangs for you at some point, too.

ok, i'll try this 






More information about the elephant-devel mailing list