mahara-contributors team mailing list archive
-
mahara-contributors team
-
Mailing list archive
-
Message #68341
[Bug 2004512] [NEW] phpunit is not uninstalling the previous db successfully
Public bug reported:
When running `make phpunit` multiple times it fails on the "Installing
Mahara" step. This looks to be because "Uninstalling site database" is
not actually doing the complete job.
Robert has noted:
I suspect its the same error/issue with behat as well - I believe it is due to the fact that the uninstall uses the info in the install.xml files but not all db logic is in those files via uninstall_from_xmldb_file()
- see htdocs/testing/classes/util.php drop_database()
there is some special case stuff in drop_database() so might need more of that for certain tables.
The current workaround is to have a good db snapshot from before running
phpunit and restore it between runs.
This is what I get on subsequent runs:
gold@shipnet:~/Mahara/codereview ((b686cb1588...)) $ make phpunit
php htdocs/admin/cli/install.php --adminpassword=Kupuh1pa! --adminemail=user@xxxxxxxxxxx
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
Mahara is already installed.
Running phpunit tests...
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
[INF] 09 (lib/phpunit.php:83) Stale test tables found, and drop option is set. Dropping them before running tests
Uninstalling site database...
Done
[INF] 09 (lib/phpunit.php:85) Done
[INF] 09 (lib/phpunit.php:95) Installing Mahara
[INF] 09 (lib/phpunit.php:112) Installing core
[INF] 09 (lib/upgrade.php:1342) Enabled 3 HTML filters.
[INF] 09 (lib/phpunit.php:112) Installing firstcoredata
[INF] 09 (lib/phpunit.php:112) Installing artefact.comment
[INF] 09 (lib/phpunit.php:112) Installing artefact.file
.
.
.
[snip]
.
.
.
[INF] 09 (lib/phpunit.php:112) Installing blocktype.myfriends
[INF] 09 (lib/phpunit.php:112) Installing blocktype.annotation/annotation
PHP Fatal error: Uncaught SQLException: Failed to get a recordset: postgres9 error: [-5: ERROR: duplicate key value violates unique constraint "tst_blocinst_nam_pk"
DETAIL: Key (name)=(annotation) already exists.] in EXECUTE("INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?)")Command was: INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?) and values was (name:annotation,version:2014122100,release:1.0.0,artefactplugin:annotation) in /home/gold/Mahara/codereview/htdocs/lib/dml.php:1236
Stack trace:
#0 /home/gold/Mahara/codereview/htdocs/lib/upgrade.php(482): insert_record()
#1 /home/gold/Mahara/codereview/htdocs/lib/phpunit.php(126): upgrade_plugin()
#2 /home/gold/Mahara/codereview/htdocs/lib/tests/phpunit/bootstrap.php(34): UnitTestBootstrap->install_mahara()
#3 /home/gold/Mahara/codereview/external/vendor/phpunit/phpunit/src/Util/FileLoader.php(66): include_once('/home/gold/Maha...')
#4 /home/gold/Mahara/coderevi in /home/gold/Mahara/codereview/htdocs/lib/dml.php on line 1236
Fatal error: Uncaught SQLException: Failed to get a recordset: postgres9 error: [-5: ERROR: duplicate key value violates unique constraint "tst_blocinst_nam_pk"
DETAIL: Key (name)=(annotation) already exists.] in EXECUTE("INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?)")Command was: INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?) and values was (name:annotation,version:2014122100,release:1.0.0,artefactplugin:annotation) in /home/gold/Mahara/codereview/htdocs/lib/dml.php:1236
Stack trace:
#0 /home/gold/Mahara/codereview/htdocs/lib/upgrade.php(482): insert_record()
#1 /home/gold/Mahara/codereview/htdocs/lib/phpunit.php(126): upgrade_plugin()
#2 /home/gold/Mahara/codereview/htdocs/lib/tests/phpunit/bootstrap.php(34): UnitTestBootstrap->install_mahara()
#3 /home/gold/Mahara/codereview/external/vendor/phpunit/phpunit/src/Util/FileLoader.php(66): include_once('/home/gold/Maha...')
#4 /home/gold/Mahara/coderevi in /home/gold/Mahara/codereview/htdocs/lib/dml.php on line 1236
make: *** [Makefile:200: phpunit] Error 255
** Affects: mahara
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: mahara-contributors
https://bugs.launchpad.net/bugs/2004512
Title:
phpunit is not uninstalling the previous db successfully
Status in Mahara:
New
Bug description:
When running `make phpunit` multiple times it fails on the "Installing
Mahara" step. This looks to be because "Uninstalling site database"
is not actually doing the complete job.
Robert has noted:
I suspect its the same error/issue with behat as well - I believe it is due to the fact that the uninstall uses the info in the install.xml files but not all db logic is in those files via uninstall_from_xmldb_file()
- see htdocs/testing/classes/util.php drop_database()
there is some special case stuff in drop_database() so might need more of that for certain tables.
The current workaround is to have a good db snapshot from before
running phpunit and restore it between runs.
This is what I get on subsequent runs:
gold@shipnet:~/Mahara/codereview ((b686cb1588...)) $ make phpunit
php htdocs/admin/cli/install.php --adminpassword=Kupuh1pa! --adminemail=user@xxxxxxxxxxx
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
Mahara is already installed.
Running phpunit tests...
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(
[INF] 09 (lib/phpunit.php:83) Stale test tables found, and drop option is set. Dropping them before running tests
Uninstalling site database...
Done
[INF] 09 (lib/phpunit.php:85) Done
[INF] 09 (lib/phpunit.php:95) Installing Mahara
[INF] 09 (lib/phpunit.php:112) Installing core
[INF] 09 (lib/upgrade.php:1342) Enabled 3 HTML filters.
[INF] 09 (lib/phpunit.php:112) Installing firstcoredata
[INF] 09 (lib/phpunit.php:112) Installing artefact.comment
[INF] 09 (lib/phpunit.php:112) Installing artefact.file
.
.
.
[snip]
.
.
.
[INF] 09 (lib/phpunit.php:112) Installing blocktype.myfriends
[INF] 09 (lib/phpunit.php:112) Installing blocktype.annotation/annotation
PHP Fatal error: Uncaught SQLException: Failed to get a recordset: postgres9 error: [-5: ERROR: duplicate key value violates unique constraint "tst_blocinst_nam_pk"
DETAIL: Key (name)=(annotation) already exists.] in EXECUTE("INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?)")Command was: INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?) and values was (name:annotation,version:2014122100,release:1.0.0,artefactplugin:annotation) in /home/gold/Mahara/codereview/htdocs/lib/dml.php:1236
Stack trace:
#0 /home/gold/Mahara/codereview/htdocs/lib/upgrade.php(482): insert_record()
#1 /home/gold/Mahara/codereview/htdocs/lib/phpunit.php(126): upgrade_plugin()
#2 /home/gold/Mahara/codereview/htdocs/lib/tests/phpunit/bootstrap.php(34): UnitTestBootstrap->install_mahara()
#3 /home/gold/Mahara/codereview/external/vendor/phpunit/phpunit/src/Util/FileLoader.php(66): include_once('/home/gold/Maha...')
#4 /home/gold/Mahara/coderevi in /home/gold/Mahara/codereview/htdocs/lib/dml.php on line 1236
Fatal error: Uncaught SQLException: Failed to get a recordset: postgres9 error: [-5: ERROR: duplicate key value violates unique constraint "tst_blocinst_nam_pk"
DETAIL: Key (name)=(annotation) already exists.] in EXECUTE("INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?)")Command was: INSERT INTO "tst_blocktype_installed" ("name", "version", "release", "artefactplugin") VALUES (?, ?, ?, ?) and values was (name:annotation,version:2014122100,release:1.0.0,artefactplugin:annotation) in /home/gold/Mahara/codereview/htdocs/lib/dml.php:1236
Stack trace:
#0 /home/gold/Mahara/codereview/htdocs/lib/upgrade.php(482): insert_record()
#1 /home/gold/Mahara/codereview/htdocs/lib/phpunit.php(126): upgrade_plugin()
#2 /home/gold/Mahara/codereview/htdocs/lib/tests/phpunit/bootstrap.php(34): UnitTestBootstrap->install_mahara()
#3 /home/gold/Mahara/codereview/external/vendor/phpunit/phpunit/src/Util/FileLoader.php(66): include_once('/home/gold/Maha...')
#4 /home/gold/Mahara/coderevi in /home/gold/Mahara/codereview/htdocs/lib/dml.php on line 1236
make: *** [Makefile:200: phpunit] Error 255
To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/2004512/+subscriptions
Follow ups