mahara-contributors team mailing list archive
-
mahara-contributors team
-
Mailing list archive
-
Message #56694
[Bug 1829943] Re: Error deleting institution due to foreign key constraint with view table
- Code/Gerrit: https://reviews.mahara.org/#/c/10437/ patch 4 of 4
- OS: Ubuntu 18.04
- DB: Postgres
- Browser: Firefox
Preconditions:
In Terminal and Postgres:
1. Connect to the database
postgres=# \c mahara-master
You are now connected to database "mahara-master" as user "postgres".
2. Ensure that the Moodle application is present in the Applications table
mahara-master=# select * from application;
name | displayname | xmlrpcserverurl | ssolandurl
--------+-------------+-------------------------+-----------------------
mahara | Mahara | /api/xmlrpc/server.php | /auth/xmlrpc/land.php
moodle | Moodle | /mnet/xmlrpc/server.php | /auth/mnet/land.php
(2 rows)
3. Log in to Mahara as the SiteAdministrator
4. Add a new institution via Administration menu > Settings > Add institution button (used Institution name 'moodle")
5. Back in Terminal and Postgres, insert the (fake) moodle host details
mahara-master=# select * from host;
mahara-master=# insert into host values('http://moodle','Moodle', 'moodle','127.0.0.1','moodle','thisisfake','1568586997',0,0);
INSERT 0 1
6. Back in Mahara - create a new page view and note down it's id value
(displayed at the end of the browser page URL e.g. address
http://mahara.rdaymond.wgtn.cat-it.co.nz/view/blocks.php?id=7, is 7)
7. Update the new page's submittedhost field to the host URL value (see above)
mahara-master=# update view set submittedhost = 'http://moodle' where id = 7;
UPDATE 1
Test step:
SiteAdministrator navigates to Administration menu > Settings then
selects the delete/tash can icon that is displayed to the right of the
target institution's edit/cog icon.
Expected result: Once the SiteAdministrator confirms the institution delete, the row is removed from the Administer institutions tabe. ✔
When the user attempts to navigate to the created page view via its address (see example used above), a 'Page not found - You tried to access a page that does not exist.' ✔
Catalyst QA Approved ✔
--
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1829943
Title:
Error deleting institution due to foreign key constraint with view
table
Status in Mahara:
In Progress
Status in Mahara 19.04 series:
Confirmed
Status in Mahara 19.10 series:
In Progress
Status in Mahara 20.04 series:
In Progress
Bug description:
Mahara: 19.04.0
OS: Linux
DB: Postgres
Browser: FF
We have an institution which no longer has any users. When trying to
delete it, it fails due to the foreign key constraint with the view
table - which now has the institution field.
Call stack (most recent first):
log_message("Array to string conversion", 8, true, true, "/var/www/mahara/htdocs/lib/adodb/adodb...", 45) at /var/www/mahara/htdocs/lib/errors.php:520
error(8, "Array to string conversion", "/var/www/mahara/htdocs/lib/adodb/adodb...", 45, array(size 7)) at /var/www/mahara/htdocs/lib/adodb/adodb-exceptions.inc.php:45
ADODB_Exception->__construct("postgres8", "adodb_throw", -1, "ERROR: update or delete on table "host" violates ...", "DELETE FROM "host" WHERE "institution" = ? ", array(size 1), object(ADODB_postgres8)) at /var/www/mahara/htdocs/lib/adodb/adodb-exceptions.inc.php:80
adodb_throw("postgres8", "adodb_throw", -1, "ERROR: update or delete on table "host" violates ...", "DELETE FROM "host" WHERE "institution" = ? ", array(size 1), object(ADODB_postgres8)) at /var/www/mahara/htdocs/lib/adodb/adodb.inc.php:310
ADODB_TransMonitor("postgres8", "adodb_throw", -1, "ERROR: update or delete on table "host" violates ...", "DELETE FROM "host" WHERE "institution" = ? ", array(size 1), object(ADODB_postgres8)) at /var/www/mahara/htdocs/lib/adodb/adodb.inc.php:1281
ADOConnection->_Execute("DELETE FROM "host" WHERE "institution" = ? ", array(size 1)) at /var/www/mahara/htdocs/lib/adodb/adodb.inc.php:1241
ADOConnection->Execute("DELETE FROM "host" WHERE "institution" = ? ", array(size 1)) at /var/www/mahara/htdocs/lib/dml.php:981
delete_records("host", "institution", "mytest") at /var/www/mahara/htdocs/admin/users/institutions.php:175
delete_submit(object(Pieform), array(size 4)) at /var/www/mahara/htdocs/lib/pieforms/pieform.php:544
Pieform->__construct(array(size 2)) at /var/www/clients/htdocs/lib/pieforms/pieform.php:166
Pieform::process(array(size 2)) at /var/www/clients/htdocs/lib/mahara.php:5379
pieform(array(size 2)) at /var/www/mahara/htdocs/admin/users/institutions.php:217
[WAR] 55 (lib/errors.php:858) Failed to get a recordset: postgres8 error: [-1: ERROR: update or delete on table "host" violates foreign key constraint "view_sub2_fk" on table "view"
DETAIL: Key (wwwroot)=(https://mytest.com.au) is still referenced from table "view".] in adodb_throw(DELETE FROM "host" WHERE "institution" = ? , Array)Command was: DELETE FROM "host" WHERE "institution" = ? and values was (0:mytest)
There are records in the view table that have submitted pages to this
institution. It's setup with XML-RPC with a Moodle.
To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1829943/+subscriptions
References