: Bug #72759 :: Regression
| Bug #72759 | Regression | ||||
|---|---|---|---|---|---|
| Submitted: | 2016-08-05 09:20 UTC | Modified: | 2016-08-15 11:41 UTC | ||
| From: | yunosh@php.net | Assigned: | ab (profile) | ||
| Status: | Closed | Package: | PDO PgSQL | ||
| PHP Version: | master-Git-2016-08-05 (Git) | OS: | |||
| Private report: | No | CVE-ID: | None | ||
[2016-08-05 09:20 UTC] yunosh@php.net
Description: ------------ Around ten days ago some change was implemented in the PDO_pgsql code that made some of our unit test starting to fail: https://travis-ci.org/horde/horde/jobs/148029445#L2160 Tests from July 26 succeeded, while they failed from July 28 on. Not sure how quick Travis is with updating the nightlies. Interestingly, the Horde_SessionHandler tests are the only test with PDO_pgsql support that fail. Yes, I know, you now want a small reproduceable test. But maybe we can further narrow down the possible changes in php-src so that I know where to start looking.
Patches
bug72759.patch (last revision 2016-08-10 21:55 UTC by ab@php.net)Pull Requests
History
AllCommentsChangesGit/SVN commits
[2016-08-05 13:40 UTC] ab@php.net
-Status: Open +Status: Feedback
[2016-08-05 13:40 UTC] ab@php.net
[2016-08-09 12:59 UTC] yunosh@php.net
Yes, I was able to trim this down today. It's about transactions. Commenting out the transaction statements in the following example makes the script work again: <?php $pdo = new PDO('pgsql:dbname=test', 'vagrant', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $pdo->query('DROP TABLE IF EXISTS "horde_sessionhandler"'); $pdo->query('CREATE TABLE "horde_sessionhandler" ( "session_id" character varying(32) NOT NULL, "session_lastmodified" integer NOT NULL, "session_data" bytea, PRIMARY KEY("session_id") )'); $pdo->query('CREATE INDEX "index_horde_sessionhandler_on_session_lastmodified" ON "horde_sessionhandler" ("session_lastmodified")'); $pdo->beginTransaction(); $pdo->query('INSERT INTO "horde_sessionhandler" ("session_id", "session_data", "session_lastmodified") VALUES (\'sessionid\', E\'\\\\x73657373696f6e64617461\', 1470745222)'); var_dump($pdo->lastInsertId(null)); $pdo->commit(); $stmt = $pdo->query('SELECT * FROM "horde_sessionhandler"'); var_dump($stmt); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));[2016-08-10 21:00 UTC] ab@php.net
-Status: Feedback +Status: Analyzed
[2016-08-10 21:00 UTC] ab@php.net
[2016-08-14 18:07 UTC] ab@php.net
-Status: Analyzed +Status: Closed
[2016-08-14 21:07 UTC] ab@php.net
-Assigned To: +Assigned To: ab
[2016-08-14 21:07 UTC] ab@php.net