EMtest not working after upgrading from 1.90 to 1.92

4 years 5 days ago #93972 by nomikon

We are trying to upgrade from a functional 1.90+ Build 9642 to a recent version. We are using PHP 5.4.12 and PostgreSQL 9.2.3.

The first attempt to go directly from 1.90 to 2.00 failed with a "CDbCommand failed to execute the SQL statement: SQLSTATE" error. If I'm right, this problem was already solved, but anyway, after reading some messages in this forum we did another attempt going first into a fresh 1.92-build120919.

At first glance, this time the upgrade was fine. However, after reading the hints for 1.92 page, I was trying to do the EMtest action, but all I get is a blank page. No PHP errors at all. (BTW, using the direct command admin/admin.php?action=EMtest&subaction=upgrade_conditions2relevance I get the same blank result).

Going deeper at the code I've noted that I'm being redirected to 'access_denied.php' file, so it seems I'm not authorized to do that EMtest action, even being the owner of that survey. In fact, looking at the 'Survey permissions' page there are no users at all. I would say my own name should be there... What should I do about this issue?

After that, the reason for which the page is blank seems related to the 'exit' call at the end of the switch logic in admin/admin.php. Then, after including the content of access_denied.php file, the script halts there with no futher action, leaving the page blank:
    elseif ($action == 'EMtest') {
        switch ($subaction) {
                if(bHasSurveyPermission($surveyid,'surveycontent','read')) {
                else {
        exit; // <<<=== That exit blocks showing the page content

Of course, commenting that 'exit' I get the error page, at least, although the main authorization issue remains.

Finally, if I go into a question and choose the "QA" icon (Survey logic file for current question group) I get another error with the text: "Invalid question - probably missing sub-questions or language-specific settings for language es".

Given that we need the EM features and group logic only available in >1.92, what would the better route to follow from here? Staying in 1.92 and trying to solve the above issues? Re-upgrading to 2.00...? Any other hints about these problems?


Please Log in to join the conversation.

4 years 5 days ago #93999 by nomikon
More details about the EMtest permissions issue: the problem arises because the survey ID is lost in the call to admin.php?action=EMtest. I can choose the survey in the menu, edit the general survey sttings and so on, but when I choose EMtest, the survey ID dissapear, $surveyid variable in admin.php goes NULL, so the SQL query in bHasSurveyPermission() function fails because of that sid = 0:

SELECT read_p FROM "lime_survey_permissions"
WHERE sid=0 AND uid = 99 and permission='surveycontent';

Any ideas?


Please Log in to join the conversation.

4 years 4 days ago #94024 by nomikon
Well, it seems that EMtest functions are available only to admins, so I enter as a LS admin and now get the EMtest menu. However, just after the EMtest Suite table or after executing any option I get another error:

Fatal error: Call to undefined function showadminmenu() in /usr/local/www/limesurvey-1.92-120919/admin/admin.php on line 682

From this it looks as the 'html.php' file is not being included before the call to showadminmenu(). Not a great problem, anyway, so long as the EMtest is running.

Anyway, the important issue is: We have some hundreds of surveys currently running in LS 1.90+ so we can't take any risks about those data, but, on the other hand, a lot of new surveys will require the EM features.

If 192plus-build12091 looks a bit buggy yet, and the direct upgrade from 1.90 to 2.00 fails with that "CDbCommand failed to execute the SQL statement: SQLSTATE" error, what would be the safest upgrade path to move from 1.90+ into 2.00 series?

Thanks in advance,

Please Log in to join the conversation.