Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-16898

Moodle groups index.php not working after upgrade 1.86->1.87 PROBLEM : require_once('HTML/AJAX/JSON.php'). After fix the users area is not updated when viewing groups.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.8.7
    • Fix Version/s: 1.8.8, 1.9.4
    • Component/s: Groups, JavaScript
    • Labels:
      None
    • Database:
      MySQL
    • Affected Branches:
      MOODLE_18_STABLE
    • Fixed Branches:
      MOODLE_18_STABLE, MOODLE_19_STABLE

      Description

      I upgraded 1.86 version to 1.87 version without any problems.

      Now it seems there have been some changes in file locations? on ajax?

      The file: groups/index.php has a require_once line which wont work because of the require_once('HTML/AJAX/JSON.php');

      I thought Moodle wasnt dependent on pear-modules? because that require_once line tries to find the ajax-module in my pear-directory. Correct me if Im wrong.

      My fix was to install pear module HTML_AJAX!

      After this I got the groups page working again, but when I try to see the attendants on different groups it wont show them on right side. I have to go "Add/remove users" to get the list.

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            nicolasconnault Nicolas Connault added a comment -

            Extending PHP's include_path to include Moodle's lib/pear directory. This omission lead to requiring the pear files twice when they were found, and fatal error when they were not found.

            Show
            nicolasconnault Nicolas Connault added a comment - Extending PHP's include_path to include Moodle's lib/pear directory. This omission lead to requiring the pear files twice when they were found, and fatal error when they were not found.
            Hide
            nicolasconnault Nicolas Connault added a comment -

            This fix will require a rebuild of 1.8.7

            Show
            nicolasconnault Nicolas Connault added a comment - This fix will require a rebuild of 1.8.7
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment - - edited

            Hi,

            both the 1.8.7 release and last 1.8 weekly packages have been rebuilt. Also, tags in CVS have been moved accordingly so people updating to MOODLE_18_WEEKLY will get the working version.

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - - edited Hi, both the 1.8.7 release and last 1.8 weekly packages have been rebuilt. Also, tags in CVS have been moved accordingly so people updating to MOODLE_18_WEEKLY will get the working version.
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Tested. Closing.

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Tested. Closing.
            Hide
            paul.ortman Paul Ortman added a comment -

            I'm seeing the same problems as reported here, but with 1_9_STABLE (currently tested with: Moodle 1.9.3 (Build: 20081021)). With groups/index.php version "1.37.2.4 " clicking on the "Groups" link in the admin block of any course on the site results in a blank page and the following PHP error:

            PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'HTML/AJAX/Serializer/JSON.php' (include_path='/var/www/moodle-test/lib/pear:/var/www/moodle-test/lib/pear:.:/usr/share/pear') in /var/www/moodle-test/group/index.php on line 14, referer: https://moodle-test.goshen.edu/course/view.php?id=1002

            Commenting out that line gets most of the group functionality to work, but the original error reported above still rears its head.

            PHP Fatal error: Call to undefined function json_encode() in /var/www/moodle-test/group/index.php on line 64, referer: https://moodle-test.goshen.edu/group/index.php?id=1002&group=161

            Note, we're running PHP 5.1.6 (which I believe should still be supported for version 1.9.x), it does not have a json_encode() function which breaks the viewing of group members.

            So, I think for 1.9.4 you need to revert lines 48-65 to an earlier version as well.

            Show
            paul.ortman Paul Ortman added a comment - I'm seeing the same problems as reported here, but with 1_9_STABLE (currently tested with: Moodle 1.9.3 (Build: 20081021)). With groups/index.php version "1.37.2.4 " clicking on the "Groups" link in the admin block of any course on the site results in a blank page and the following PHP error: PHP Fatal error: require_once() [<a href='function.require'>function.require</a>] : Failed opening required 'HTML/AJAX/Serializer/JSON.php' (include_path='/var/www/moodle-test/lib/pear:/var/www/moodle-test/lib/pear:.:/usr/share/pear') in /var/www/moodle-test/group/index.php on line 14, referer: https://moodle-test.goshen.edu/course/view.php?id=1002 Commenting out that line gets most of the group functionality to work, but the original error reported above still rears its head. PHP Fatal error: Call to undefined function json_encode() in /var/www/moodle-test/group/index.php on line 64, referer: https://moodle-test.goshen.edu/group/index.php?id=1002&group=161 Note, we're running PHP 5.1.6 (which I believe should still be supported for version 1.9.x), it does not have a json_encode() function which breaks the viewing of group members. So, I think for 1.9.4 you need to revert lines 48-65 to an earlier version as well.
            Hide
            samulik Samuli Karevaara added a comment -

            We have PHP 5.2.4 and Moodle 1.9.3+ and the group/index.php page is blank.

            Show
            samulik Samuli Karevaara added a comment - We have PHP 5.2.4 and Moodle 1.9.3+ and the group/index.php page is blank.
            Hide
            nicolasconnault Nicolas Connault added a comment -

            Please tell us if the file lib/pear/HTML/AJAX/Serializer/JSON.php is actually in your working copy. If it is not, then it means your working copy is botched up and you need to check a new one out from scratch.

            There is absolutely no reason why this bug should occur considering the state of 1.8.7 and 1.9.3

            Show
            nicolasconnault Nicolas Connault added a comment - Please tell us if the file lib/pear/HTML/AJAX/Serializer/JSON.php is actually in your working copy. If it is not, then it means your working copy is botched up and you need to check a new one out from scratch. There is absolutely no reason why this bug should occur considering the state of 1.8.7 and 1.9.3
            Hide
            paul.ortman Paul Ortman added a comment -

            root@moodle $ ls -lh lib/pear/HTML/AJAX/Serializer/JSON.php
            ls: lib/pear/HTML/AJAX/Serializer/JSON.php: No such file or directory

            root@moodle $ ls -lh lib/pear/HTML
            total 136K
            rwxr-x-- 1 root apache 35K Oct 3 03:09 AJAX.php
            drwxr-x--- 2 root apache 4.0K Oct 16 16:35 CVS
            rw-r---- 1 root apache 12K Sep 24 2006 Common.php
            drwxr-x--- 5 root apache 4.0K Dec 19 2007 QuickForm
            rw-r---- 1 root apache 75K Sep 24 2006 QuickForm.php

            As you can see, in a CVS checkout, we don't even have an AJAX directory, much less the JSON.php file. (CVS 20081016 of 1.9 STABLE)

            Show
            paul.ortman Paul Ortman added a comment - root@moodle $ ls -lh lib/pear/HTML/AJAX/Serializer/JSON.php ls: lib/pear/HTML/AJAX/Serializer/JSON.php: No such file or directory root@moodle $ ls -lh lib/pear/HTML total 136K rwxr-x -- 1 root apache 35K Oct 3 03:09 AJAX.php drwxr-x--- 2 root apache 4.0K Oct 16 16:35 CVS rw-r ---- 1 root apache 12K Sep 24 2006 Common.php drwxr-x--- 5 root apache 4.0K Dec 19 2007 QuickForm rw-r ---- 1 root apache 75K Sep 24 2006 QuickForm.php As you can see, in a CVS checkout, we don't even have an AJAX directory, much less the JSON.php file. (CVS 20081016 of 1.9 STABLE)
            Show
            nicolasconnault Nicolas Connault added a comment - Then you need to checkout a new copy, because yours is broken. Here are the CVS links showing that the files exist: http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/?pathrev=MOODLE_18_STABLE http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/?pathrev=MOODLE_187 http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/?pathrev=MOODLE_19_STABLE http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/?pathrev=MOODLE_193 http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/?pathrev=MOODLE_19_WEEKLY
            Hide
            paul.ortman Paul Ortman added a comment -

            You're correct, a fresh checkout of MOODLE_19_STABLE does have the files present, but a cvs -z3 -d up on an already checked out MOODLE_19_STABLE never adds the directories or files below lib/pear/HTML for AJAX. Is there something I'm somehow missing about using cvs? Does this happen regularly? <snide>Does breakage like this provide a good reason to move to a modern, cross platform, and user friendly VCS like bzr or (on at least one of those points) git?</snide>

            Thanks for help debugging this. Now I get the pleasure of moving our custom code to a newly checked out version...

            Show
            paul.ortman Paul Ortman added a comment - You're correct, a fresh checkout of MOODLE_19_STABLE does have the files present, but a cvs -z3 -d up on an already checked out MOODLE_19_STABLE never adds the directories or files below lib/pear/HTML for AJAX. Is there something I'm somehow missing about using cvs? Does this happen regularly? <snide>Does breakage like this provide a good reason to move to a modern, cross platform, and user friendly VCS like bzr or (on at least one of those points) git?</snide> Thanks for help debugging this. Now I get the pleasure of moving our custom code to a newly checked out version...
            Hide
            dougiamas Martin Dougiamas added a comment -

            Nicolas, there is something funny going on with the checkin...

            http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/JSON.php?view=log&pathrev=

            Please don't delete files in CVS and re-add them ... I think it's made CVS confused (it downloaded fine on one site for me but not another).

            I found that if I just updated that directory like this:

            1. cvs -q update -dP -r MOODLE_18_STABLE
              U AJAX.php
              P AJAX/Action.php
              P AJAX/Debug.php
              P AJAX/Helper.php
              P AJAX/JSON.php
              P AJAX/Response.php
              P AJAX/Server.php
              P AJAX/Serializer/Error.php
              P AJAX/Serializer/JSON.php
              P AJAX/Serializer/Null.php
              P AJAX/Serializer/PHP.php
              P AJAX/Serializer/Urlencoded.php
              P AJAX/Serializer/XML.php
              U QuickForm/element.php

            Then it got the files, and then doing this seemed to bring it all back to normal:

            1. cvs -q update -dP -r MOODLE_19_STABLE
              U AJAX.php
              P AJAX/Action.php
              P AJAX/Debug.php
              P AJAX/Helper.php
              P AJAX/JSON.php
              P AJAX/Response.php
              P AJAX/Server.php
              P AJAX/Serializer/Error.php
              P AJAX/Serializer/JSON.php
              P AJAX/Serializer/Null.php
              P AJAX/Serializer/PHP.php
              P AJAX/Serializer/Urlencoded.php
              P AJAX/Serializer/XML.php
              U QuickForm/element.php
            Show
            dougiamas Martin Dougiamas added a comment - Nicolas, there is something funny going on with the checkin... http://cvs.moodle.org/moodle/lib/pear/HTML/AJAX/Serializer/JSON.php?view=log&pathrev= Please don't delete files in CVS and re-add them ... I think it's made CVS confused (it downloaded fine on one site for me but not another). I found that if I just updated that directory like this: cvs -q update -dP -r MOODLE_18_STABLE U AJAX.php P AJAX/Action.php P AJAX/Debug.php P AJAX/Helper.php P AJAX/JSON.php P AJAX/Response.php P AJAX/Server.php P AJAX/Serializer/Error.php P AJAX/Serializer/JSON.php P AJAX/Serializer/Null.php P AJAX/Serializer/PHP.php P AJAX/Serializer/Urlencoded.php P AJAX/Serializer/XML.php U QuickForm/element.php Then it got the files, and then doing this seemed to bring it all back to normal: cvs -q update -dP -r MOODLE_19_STABLE U AJAX.php P AJAX/Action.php P AJAX/Debug.php P AJAX/Helper.php P AJAX/JSON.php P AJAX/Response.php P AJAX/Server.php P AJAX/Serializer/Error.php P AJAX/Serializer/JSON.php P AJAX/Serializer/Null.php P AJAX/Serializer/PHP.php P AJAX/Serializer/Urlencoded.php P AJAX/Serializer/XML.php U QuickForm/element.php
            Hide
            dougiamas Martin Dougiamas added a comment -

            I'll delete the files and re-add

            Show
            dougiamas Martin Dougiamas added a comment - I'll delete the files and re-add
            Hide
            samulik Samuli Karevaara added a comment -

            My issue was unrelated to Moodle: the folder /lib/pear/HTML/AJAX/ and it's contents was missing after a subversion merge.

            Show
            samulik Samuli Karevaara added a comment - My issue was unrelated to Moodle: the folder /lib/pear/HTML/AJAX/ and it's contents was missing after a subversion merge.
            Hide
            skodak Petr Skoda added a comment -

            I suppose we can close this one now - did not see any more complaints recently, thanks

            Show
            skodak Petr Skoda added a comment - I suppose we can close this one now - did not see any more complaints recently, thanks

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  28/Jan/09