[elephant-devel] Re: Postmodern regression

Leslie P. Polzer leslie.polzer at gmx.net
Fri Apr 25 17:34:17 UTC 2008


>  LPP> What can I do about it with the new Postmodern code?
>
> hmm, iirc this error was addressed in executor-exec-prepared in pm-sql.lisp,
> but you moved it into pm-transaction.lisp to restart txn in case of this
> error, right?

Yes.


> and then i've removed it when merging, sorry..
>
> if so, add it into into pm-transaction.lisp:
>
> (defmacro with-concurrency-errors-handler
> ...
>    (when (or (string= err-code "40001") ; SERIALIZATION FAILURE
>       (string= err-code "40P01")); DEADLOCK DETECTED
>
> and add "42P05" there.

Ah yeah, got it.


> but are you sure that restarting txn in this case is right, and when such
> stuff happens at all?

Heh, if you ask me the best solution would be if Postgres
just shut up about it without affecting the txn.
But alas, this isn't the case.

I have also tried deallocating the statement in question before
invoking the restart but it seems that any execution of
SQL at this time will hang indefinitely.

Do you have any idea why this would happen?


> because it didn't happen frequently for me, and i don't have good
> understanding what's happening with these prepareds, honestly.

Me neither. Unfortunately this also seems to be one of the famous
errors that occur every once in a while and don't show their
cause. For example, it's now gone again here...

  Leslie




More information about the elephant-devel mailing list