Re: Transaction question - Mailing list pgsql-general
From | Jeff Ross |
---|---|
Subject | Re: Transaction question |
Date | |
Msg-id | 4FFCE52C.6040806@wykids.org Whole thread Raw |
In response to | Re: Transaction question (Adrian Klaver <adrian.klaver@gmail.com>) |
Responses |
Re: Transaction question
(Adrian Klaver <adrian.klaver@gmail.com>)
|
List | pgsql-general |
On 7/10/12 6:21 PM, Adrian Klaver wrote: > On 07/10/2012 01:06 PM, Jeff Ross wrote: >> Hi all, >> >> I have an anomaly on my hands that I'm at a loss to understand. >> >> We recently ran a small survey where participants were required to >> answer all the questions. After validation for skipped questions, >> mis-ranking answers that had to be ranked and so on, I did all of the >> inserts to the survey_answers table inside a transaction block followed >> by a commit. Immediately after, I updated the survey_response table >> and set a timestamp to show the submitted time. >> >> In 3 of the 38 responses, the logs show the inserts with no database >> errors followed by the update statement, however, there are no entries >> for that person in the survey_answers table. It is as if the >> transaction rolled back, but if so, that fact is not in the logs. > >> >> After finding these anomalies, I cut and pasted the insert statements >> from the logs into a file and inserted them manually with psql -f. No >> errors, so I can't see why the transaction should have rolled back, if >> indeed that is what happened. Is it possible for a transaction to >> silently fail? >> >> This is 9.1.3 running on OpenBSD and on a BBU RAID 1 mirror. It is the >> master in a hot-standy setup. Logging is set to "all". I have no >> reason to believe (yet, anyway) that this is some sort of hardware >> problem as I see no indication of that anywhere else. >> >> Thanks for any and all ideas! > > For your initial attempt everything was done in one session? All the inserts were done in one session, yes. > > I am also confused by this: > 2012-06-19 15:37:36.258912500 <www%wykids> LOG: statement: commit > 2012-06-19 15:29:11.573396500 <www%wykids> LOG: statement: update > survey_response set srv_resp_submitted = now() where srv_resp_srv_id = > 2 and srv_resp_pp_id = 25399 > > Note the time stamps. Is this the actual log? Crap. I noticed that I'd somehow got another update statement when I pasted into the e-mail so I altered the srv_resp_pp_id to match rather than go get the real entry from the logs again. That is for sure my bad and I apologize! The sequence of events are as I described, though. The inserts happen inside a transaction, the update happens immediately after the commit. Jeff > >> >> Jeff Ross >> Wyoming Children's Action Alliance >> > >
pgsql-general by date: