Re: BUG #5244: Attempting to rollback to a savepoint after receiving an error with state 55000 the process hangs
От | Robert Haas |
---|---|
Тема | Re: BUG #5244: Attempting to rollback to a savepoint after receiving an error with state 55000 the process hangs |
Дата | |
Msg-id | 603c8f070912150858s385dc98aq27f7417b56d4af37@mail.gmail.com обсуждение исходный текст |
Ответ на | BUG #5244: Attempting to rollback to a savepoint after receiving an error with state 55000 the process hangs ("Philip Graham" <philip@lightbox.org>) |
Ответы |
Re: BUG #5244: Attempting to rollback to a savepoint after
receiving an error with state 55000 the process hangs
|
Список | pgsql-bugs |
On Mon, Dec 14, 2009 at 11:15 PM, Philip Graham <philip@lightbox.org> wrote: > > The following bug has been logged online: > > Bug reference: =A0 =A0 =A05244 > Logged by: =A0 =A0 =A0 =A0 =A0Philip Graham > Email address: =A0 =A0 =A0philip@lightbox.org > PostgreSQL version: 8.3.8 > Operating system: =A0 Linux > Description: =A0 =A0 =A0 =A0Attempting to rollback to a savepoint after r= eceiving an > error with state 55000 the process hangs > Details: > > This may be a PHP so please excure me if it is. > > <?php > $pdo =3D new PDO('pgsql:host=3Dlocalhost;dbname=3Da_db', 'a_user', 'my_pa= ss'); > $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); > > echo 'Creating test objects'."\n"; > $pdo->query('CREATE SEQUENCE test_seq'); > > echo 'Setup complete'."\n"; > $pdo->beginTransaction(); > > try { > =A0 =A0echo 'Setting savepoint'."\n"; > =A0 =A0$pdo->query('SAVEPOINT pre_id_fetch'); > =A0 =A0echo 'Fetching value'."\n"; > =A0 =A0$stmt =3D $pdo->query('SELECT currval(\'test_seq\');'); > =A0 =A0$curId =3D $stmt->fetchColumn(); > =A0 =A0echo 'Releasing savepoint'."\n"; > =A0 =A0$pdo->query('RELEASE SAVEPOINT pre_id_fetch'); > } catch (PDOException $e) { > =A0 =A0echo 'Rolling back'."\n"; > =A0 =A0$pdo->query('ROLLBACK TO pre_id_fetch'); > =A0 =A0$curId =3D 0; > } > > echo 'Cur Id: ',$curId,"\n"; > > > Running this code it hangs after echoing 'Rolling back', but only hangs > every other execution (assuming the sequence was deleted first). I can't reproduce this using psql. Could you try? I am guessing that PHP is doing something funky, but I'm not really sure what. I do notice that you don't seem to have an endTransaction() or similar to match the beginTransaction() - could that be relevant? ...Robert
В списке pgsql-bugs по дате отправления: