Hi Ed, This error is due to your database having duplicate rows in the usr_custom_layout table for the user before they try to copy the collection, of which at least one page has the same layout.
The code is expecting to retrieve only one row to match against the current page being copied. A few users of mahara have reported this problem but I've yet not been able to replicate how they got duplicate rows in the usr_custom_layout table in the first place. If you could shed some light on that it would be great. Anyway a fix for the problem is to remove by first finding them: SELECT * FROM usr_custom_layout WHERE usr IS NOT NULL AND usr > 0 ORDER BY usr, layout; The problem rows should show the same 'usr' id and 'layout' id in pairs. You just need to pick one of the pair and delete id Cheers Robert -- 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/1515929 Title: Duplicate records in usr_custom_layout cause fatal crash when copying a collection Status in Mahara: Confirmed Status in Mahara 15.10 series: Confirmed Status in Mahara 16.04 series: Confirmed Bug description: When creating a collection by copying a previous collection we are getting an error of: Site unavailable A nonrecoverable error occurred. This probably means you have encountered a bug in the system PHP is reporting the following error and we are on the latest version of Mahara to date 15.10.0: 2015/11/13 09:02:51 [error] 1077#0: *7505 FastCGI sent in stderr: "PHP message: [WAR] 0a (lib/errors.php:747) get_record_sql found more than one row. If you meant to retrieve more than one record, use get_records_*, otherwise check your code or database for inconsistencies PHP message: Call stack (most recent first): PHP message: * log_message("get_record_sql found more than one row. If you mea...", 8, true, true) at /scratch/var/mahara/htdocs/lib/errors.php:97 PHP message: * log_warn("get_record_sql found more than one row. If you mea...") at /scratch/var/mahara/htdocs/lib/errors.php:747 PHP message: * SQLException->__construct("get_record_sql found more than one row. If you mea...") at /scratch/var/mahara/htdocs/lib/dml.php:328 PHP message: * get_record_sql("SELECT * FROM "usr_custom_layout" WHERE "layout" ...", array(size 2)) at /scratch/var/mahara/htdocs/lib/dml.php:291 PHP message: * get_record("usr_custom_layout", "layout", "203", "usr", "1770") at /scratch/var/mahara/htdocs/lib/view.php:428 PHP message: * View::create_from_template(array(size 5), "40765", "1770", true, false) at /scratch/var/mahara/htdocs/lib/collection.php:292 PHP message: * Collection::create_from_template(array(size 6), 4307) at /scratch/var/mahara/htdocs/lib/view.php:6376 PHP message: * createview_submit(object(Pieform), array(size 7)) at Unknown:0 PHP message: * call_user_func_array("createview_submit", array(size 2)) at /scratch/var/mahara/htdocs/lib/pieforms/pieform.php:537 PHP message: * Pieform->__construct(array(size 8)) at /scratch/var/mahara/htdocs/lib/pieforms/pieform.php:164 PHP message: * Pieform::process(array(size 8)) at /scratch/var/mahara/htdocs/lib/pieforms/pieform.php:71 PHP message: * pieform(array(size 8)) at /scratch/var/mahara/htdocs/view/choosetemplate.php:27 PHP message: PHP message: [WAR] 0a (lib/dml.php:327) get_record_sql found more than one row. If you meant to retrieve more than one record, use get_records_*, otherwise check your code or database for inconsistencies PHP message: Ca Cheers, Ed To manage notifications about this bug go to: https://bugs.launchpad.net/mahara/+bug/1515929/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~mahara-contributors Post to : [email protected] Unsubscribe : https://launchpad.net/~mahara-contributors More help : https://help.launchpad.net/ListHelp

