Friendship request throws error

Bug #1222350 reported by Kristina Hoeppner
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mahara
Fix Released
High
Robert Lyon

Bug Description

on latest 1.8.0dev:

When I request friendship with another user, I get the following warning:

[WAR] c1 (user/requestfriendship.php:105) Creating default object from empty value
Call stack (most recent first):

    log_message("Creating default object from empty value", 8, true, true, "/home/kristina/code/mahara/htdocs/user/requestfrie...", 105) at /home/kristina/code/mahara/htdocs/lib/errors.php:446
    error(2, "Creating default object from empty value", "/home/kristina/code/mahara/htdocs/user/requestfrie...", 105, array(size 12)) at /home/kristina/code/mahara/htdocs/user/requestfriendship.php:105
    requestfriendship_submit(object(Pieform), array(size 3)) at Unknown:0
    call_user_func_array("requestfriendship_submit", array(size 2)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:528
    Pieform->__construct(array(size 3)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:170
    Pieform::process(array(size 3)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:71
    pieform(array(size 3)) at /home/kristina/code/mahara/htdocs/user/requestfriendship.php:80

Tags: regression
Revision history for this message
Robert Lyon (robertl-9) wrote :

I'm unable to replicate this error from either user/find.php page or the link on user/view.php page eg user/view.php?id=5

Revision history for this message
Kristina Hoeppner (kris-hoeppner) wrote :

I still got it on a clean new 1.8.0dev.

Revision history for this message
Aaron Wells (u-aaronw) wrote :

Are you using PHP 5.4, Kristina? That particular error is an E_STRICT notice.

We set Mahara to print messages that match E_ALL, which despite the word "ALL" is actually a combination of all errors *except* E_STRICT. But, in 5.4 they changed it so that it includes E_STRICT.

So perhaps you're seeing this message, while RobertL and I aren't, because you're using PHP 5.4.

Putting a debugging breakpoint in the Mahara error() function, I can see that there are actually LOTS of E_STRICT notices that we're currently ignoring. Perhaps what we should do is change the developermode/productionmode setting so that it specifically prints E_ALL & E_STRICT, which would give consistent output in 5.3 and 5.4. (Or conversely, specifically set it to E_ALL & ~E_STRICT in order to continue ignoring E_STRICT messages.)

Revision history for this message
Aaron Wells (u-aaronw) wrote :

Hm... actually, if it's an E_STRICT error, what prevents it from being displayed in Mahara is *not* our error_reporting setting. It's that in $error_lookup we haven't mapped them to one of the Mahara error/warning types.

So it's pretty strange you're seeing that message, Kristina. Perhaps it changed error classes at some point...

Well, in any case there are a lot of E_STRICT notices it would be good to clean up in Mahara. But I don't think we want to start showing E_STRICT's to people who have just set productionmode to false, because there are about 30 of them that show up on each page load, due to the fact that we have a lot of abstract static functions in the codebase, and those now throw an E_STRICT notice. We should limit it to people who have turned on developermode, I think, and we should fix those every-page E_STRICT's.

Revision history for this message
Kristina Hoeppner (kris-hoeppner) wrote :

Indeed, I've got PHP 5.4.

Revision history for this message
Robert Lyon (robertl-9) wrote :

I've added a patch for this:
https://reviews.mahara.org/#/c/2504/

From what I've read we just need to declare the stdClass before trying to assign things to it.

Changed in mahara:
status: Triaged → In Progress
Revision history for this message
Mahara Bot (dev-mahara) wrote : A change has been merged

Reviewed: https://reviews.mahara.org/2504
Committed: http://gitorious.org/mahara/mahara/commit/29afdf8ad017ff2cec4fd936c059722dc542e812
Submitter: Aaron Wells (<email address hidden>)
Branch: master

commit 29afdf8ad017ff2cec4fd936c059722dc542e812
Author: Robert Lyon <email address hidden>
Date: Wed Sep 18 07:34:22 2013 +1200

Friendship request throws error (bug 1222350)

- throwing 'Creating default object from empty value' error
- need to declare stdClass first

Change-Id: Ia736475e49c88e9a74bfc1480def370cb65440f5
Signed-off-by: Robert Lyon <email address hidden>

Robert Lyon (robertl-9)
Changed in mahara:
status: In Progress → Fix Committed
Aaron Wells (u-aaronw)
Changed in mahara:
milestone: 1.8rc1 → 1.8.0
Aaron Wells (u-aaronw)
Changed in mahara:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.