mahara-contributors team mailing list archive
-
mahara-contributors team
-
Mailing list archive
-
Message #12140
[Bug 1173440] Re: updating group fails fatally under certain conditions
Okay, I see what's going on. The group.urlid column in the database has
a uniqueness constraint on it. But, it's also NULLable, and even with a
uniqueness constraint in place, it's okay to have multiple rows with
NULL values.
But, the way the code's written, when you activate cleanurl mode, and
then make changes to an old group that still doesn't have a urlid value
yet, the code saves it as the empty string '' rather than as NULL. These
are more or less identical on the PHP side of things, but on the
database side the difference is important because '' DOES count towards
uniqueness. So, when you go to edit a second group without a urlid, the
code tries to set its urlid to '' as well, and dies because it violates
that uniqueness constraint.
One workaround to this problem is to run the "regenerate clean URLs"
script immediately after activating cleanurls. But, in the absence of
that, this patch will at least avoid an error condition. :)
It's quite possible there may be the same issue for Users and Pages. I
think no one has reported it yet because most sites run the "regenerate
clean URLs" script.
** Also affects: mahara/1.5
Importance: Undecided
Status: New
** Also affects: mahara/1.6
Importance: Undecided
Status: New
** Also affects: mahara/1.8
Importance: Undecided
Status: New
** Also affects: mahara/1.7
Importance: Undecided
Status: New
** Changed in: mahara
Status: Triaged => Fix Committed
** No longer affects: mahara/1.8
** Changed in: mahara
Milestone: None => 1.8.0rc1
** Changed in: mahara/1.5
Milestone: None => 1.5.10
** Changed in: mahara/1.6
Milestone: None => 1.6.5
** Changed in: mahara/1.7
Milestone: None => 1.7.1
--
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contrib members
https://bugs.launchpad.net/bugs/1173440
Title:
updating group fails fatally under certain conditions
Status in Mahara ePortfolio:
Fix Committed
Status in Mahara 1.5 series:
New
Status in Mahara 1.6 series:
New
Status in Mahara 1.7 series:
New
Bug description:
General Info:
--------------
- Mahara 1.6.4
- PostgreSQL 8.4.12
- PHP 5.3.10
- RHEL 5.8
Browser Info:
---------------
- Chrome 26, Firefox 20 (Win), latest Safari on Mac as well.
Other:
--------
Mahara is configured with clean-URLs turned on.
Description:
--------------
Saving a group after editing fails.
After submitting the "Edit group" form, the user gets thrown to an
error page. The error message reads:
Mahara: Site unavailable
A nonrecoverable error occurred. This probably means you have encountered a bug in the system
Apparently, Mahara is unable to recover from a failed attempt to
update a record in the database. (please see attached error log).
This only happens under very specific conditions, and seems to be
connected to clean URL mode.
To reproduce:
1. turn off clean URL mode in the Mahara configuration.
2. create a two groups (group A and group B). Observe that the "urlid" field in these records have NULL values.
3. turn clean URL mode back on.
4. open Group A for editing. Make a change, but leave the "Group homepage URL" in the input form empty. Hit the "save group" button.
5. open Group B for editing. Make a change, but leave the "Group homepage URL" in the input form empty as well. "Hit "save group". **error occurs**
To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1173440/+subscriptions
References