Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Admin interface broken after comfortupdate to 2.06+

  • hstiekema
  • hstiekema's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 7 months ago #123850 by hstiekema
I was running a 2.05+ version (don't know 100% sure, but most likely 2.05+ Build 141020) and tried a comfort-update to the current stable 2.06+ version. This is running against a postgreSQL database.

After doing a comfort-update the interface is broken. The final page in the update process showed the same warning a lot of times:

Strict Standards: Only variables should be passed by reference in /opt/limesurveytst/framework/i18n/gettext/CGettextMoFile.php on line 76 Strict Standards: Only variables should be passed by reference in /opt/limesurveytst/framework/i18n/gettext/CGettextMoFile.php on line 234 Strict Standards: Only variables should be passed by reference in /opt/limesurveytst/framework/i18n/gettext/CGettextMoFile.php


followed by loads of repeated lines the same as the last line. Below that, there was actually part of a limesurvey interface, showing that the update was a success and that i had to refresh my chache.

However, when i load the admin interface now, all i get is the same message as above, again with the last line repeated ~ 100 times. This is followed by a stacktrace (i hope this copy-pastes properly, otherwise i'll provide a screenshot):

PHP warning

Cannot modify header information - headers already sent by (output started at /opt/limesurveytst/framework/i18n/gettext/CGettextMoFile.php:234)

/opt/limesurveytst/application/core/Survey_Common_Action.php(241)

229 if (!empty($sAction))
230 {
231 $sViewPath .= $sAction . '/';
232 }
233
234
235
236 // Header
237 ob_start();
238 if(!isset($aData) || $aData !== false)
239 {
240 // Send HTTP header
241 header("Content-type: text/html; charset=UTF-8"); // needed for correct UTF-8 encoding
242 Yii::app()->getController()->_getAdminHeader();
243 }
244
245
246 // Menu bars
247 if (!isset($aData) || ($aData !== false && (!is_array($aData) || !in_array('browse', array_keys($aData)))))
248 {
249 if(!isset($aData))
250 {
251 $this->_updatenotification();
252 Yii::app()->getController()->_showadminmenu(!empty($aData) ? $aData : null);
253 }

Stack Trace
#0

/opt/limesurveytst/application/core/Survey_Common_Action.php(241): header("Content-type: text/html; charset=UTF-8")

236 // Header
237 ob_start();
238 if(!isset($aData) || $aData !== false)
239 {
240 // Send HTTP header
241 header("Content-type: text/html; charset=UTF-8"); // needed for correct UTF-8 encoding
242 Yii::app()->getController()->_getAdminHeader();
243 }
244
245
246 // Menu bars

#1

/opt/limesurveytst/application/controllers/admin/update.php(415): Survey_Common_Action->_renderWrappedTemplate("update", array("output" => "<div class="messagebox"><div class='header'>Database upgrade</di..."), array("display" => array("header" => true), "updatedbaction" => true))

410 $aViewUrls = CheckForDBUpgrades();
411 }
412
413 $aData = true;
414
415 $this->_renderWrappedTemplate('update', $aViewUrls, $aData);
416 }
417
418 /**
419 * For updates from the old updater.
420 */

#2
unknown(0): update->db(null)
#3
+
/opt/limesurveytst/framework/web/actions/CAction.php(108): ReflectionMethod->invokeArgs(update, array(null))
#4

/opt/limesurveytst/application/core/Survey_Common_Action.php(99): CAction->runWithParamsInternal(update, ReflectionMethod, array("sa" => "db"))

094 $oMethod = new ReflectionMethod($this, $sDefault);
095 }
096
097 // We're all good to go, let's execute it
098 // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
099 return parent::runWithParamsInternal($this, $oMethod, $params);
100 }
101
102 /**
103 * Some functions have different parameters, which are just an alias of the
104 * usual parameters we're getting in the url. This function just populates

#5
+
/opt/limesurveytst/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("sa" => "db"))
#6
+
/opt/limesurveytst/framework/web/CController.php(286): CController->runAction(update)
#7
+
/opt/limesurveytst/framework/web/CController.php(265): CController->runActionWithFilters(update, array())
#8
+
/opt/limesurveytst/application/controllers/AdminController.php(164): CController->run("update")
#9
+
/opt/limesurveytst/framework/web/CWebApplication.php(282): AdminController->run("update")
#10
+
/opt/limesurveytst/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/update/sa/db")
#11
+
/opt/limesurveytst/framework/base/CApplication.php(184): CWebApplication->processRequest()
#12
+
/opt/limesurveytst/index.php(211): CApplication->run()
2015-08-18 16:30:56 Apache Yii Framework/1.1.15
Profiling Summary Report (Time: 0.24682s, Memory: 17,543KB)
Procedure Count Total (s) Avg. (s) Min. (s) Max. (s)
system.db.CDbCommand.query(SELECT conname, consrc, contype, indkey FROM ( SELECT conname, CASE WHEN contype='f' THEN pg_catalog.pg_get_constraintdef(oid) ELSE 'CHECK (' || consrc || ')' END AS consrc, contype, conrelid AS relid, NULL AS indkey FROM pg_catalog.pg_constraint WHERE contype IN ('f', 'c') UNION ALL SELECT pc.relname, NULL, CASE WHEN indisprimary THEN 'p' ELSE 'u' END, pi.indrelid, indkey FROM pg_catalog.pg_class pc, pg_catalog.pg_index pi WHERE pc.oid=pi.indexrelid AND EXISTS ( SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) WHERE d.classid = pc.tableoid AND d.objid = pc.oid AND d.deptype = 'i' AND c.contype IN ('u', 'p') ) ) AS sub WHERE relid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema)). Bound with :table='lime_settings_global', :schema='public') 1 0.00783 0.00783 0.00783 0.00783
system.db.CDbCommand.query(SELECT a.attname, LOWER(format_type(a.atttypid, a.atttypmod)) AS type, d.adsrc, a.attnotnull, a.atthasdef, pg_catalog.col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attnum > 0 AND NOT a.attisdropped AND a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = :schema)) ORDER BY a.attnum. Bound with :table='lime_settings_global', :schema='public') 1 0.00701 0.00701 0.00701 0.00701
system.db.CDbCommand.query(SELECT a.attname, LOWER(format_type(a.atttypid, a.atttypmod)) AS type, d.adsrc, a.attnotnull, a.atthasdef, pg_catalog.col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attnum > 0 AND NOT a.attisdropped AND a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = :schema)) ORDER BY a.attnum. Bound with :table='lime_surveys', :schema='public') 1 0.00343 0.00343 0.00343 0.00343
system.db.CDbCommand.query(SELECT conname, consrc, contype, indkey FROM ( SELECT conname, CASE WHEN contype='f' THEN pg_catalog.pg_get_constraintdef(oid) ELSE 'CHECK (' || consrc || ')' END AS consrc, contype, conrelid AS relid, NULL AS indkey FROM pg_catalog.pg_constraint WHERE contype IN ('f', 'c') UNION ALL SELECT pc.relname, NULL, CASE WHEN indisprimary THEN 'p' ELSE 'u' END, pi.indrelid, indkey FROM pg_catalog.pg_class pc, pg_catalog.pg_index pi WHERE pc.oid=pi.indexrelid AND EXISTS ( SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) WHERE d.classid = pc.tableoid AND d.objid = pc.oid AND d.deptype = 'i' AND c.contype IN ('u', 'p') ) ) AS sub WHERE relid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema)). Bound with :table='lime_surveys', :schema='public') 1 0.00198 0.00198 0.00198 0.00198
system.db.CDbCommand.query(SELECT conname, consrc, contype, indkey FROM ( SELECT conname, CASE WHEN contype='f' THEN pg_catalog.pg_get_constraintdef(oid) ELSE 'CHECK (' || consrc || ')' END AS consrc, contype, conrelid AS relid, NULL AS indkey FROM pg_catalog.pg_constraint WHERE contype IN ('f', 'c') UNION ALL SELECT pc.relname, NULL, CASE WHEN indisprimary THEN 'p' ELSE 'u' END, pi.indrelid, indkey FROM pg_catalog.pg_class pc, pg_catalog.pg_index pi WHERE pc.oid=pi.indexrelid AND EXISTS ( SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) WHERE d.classid = pc.tableoid AND d.objid = pc.oid AND d.deptype = 'i' AND c.contype IN ('u', 'p') ) ) AS sub WHERE relid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema)). Bound with :table='lime_plugins', :schema='public') 1 0.00183 0.00183 0.00183 0.00183
system.db.CDbCommand.query(SELECT a.attname, LOWER(format_type(a.atttypid, a.atttypmod)) AS type, d.adsrc, a.attnotnull, a.atthasdef, pg_catalog.col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attnum > 0 AND NOT a.attisdropped AND a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = :schema)) ORDER BY a.attnum. Bound with :table='lime_plugins', :schema='public') 1 0.00135 0.00135 0.00135 0.00135
system.db.CDbCommand.query(SELECT * FROM "lime_settings_global" "t") 1 0.00065 0.00065 0.00065 0.00065
system.db.CDbCommand.query(SELECT attnum, attname FROM pg_catalog.pg_attribute WHERE attrelid=( SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace=( SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema ) ) AND attnum IN (1). Bound with :table='lime_settings_global', :schema='public') 1 0.00057 0.00057 0.00057 0.00057
system.db.CDbCommand.query(SELECT attnum, attname FROM pg_catalog.pg_attribute WHERE attrelid=( SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace=( SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema ) ) AND attnum IN (1). Bound with :table='lime_surveys', :schema='public') 1 0.00038 0.00038 0.00038 0.00038
system.db.CDbCommand.query(SELECT attnum, attname FROM pg_catalog.pg_attribute WHERE attrelid=( SELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace=( SELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema ) ) AND attnum IN (1). Bound with :table='lime_plugins', :schema='public')



My system admin just updated PHP to the latest version, so i assume that shouldn't be a problem. Any help would be appreciated.
The topic has been locked.
  • LouisGac
  • LouisGac's Avatar
  • Visitor
  • Visitor
8 years 7 months ago - 8 years 7 months ago #123857 by LouisGac
so, I corrected my first post :

1. It seems that the files has been updated correctly
2. The second error message you have : "Cannot modify header information - headers already sent by" , is the direct consequence of the first one. The first error message being shown, the DB Update process can't be launched.

You should just try to deactivate the error rendering. In your config.php, find the debug line and turn it to 0 : debug'=>0,
So you will have no more the first warning, and the DB update page will be shown.

We'll have to find why the first warning is shown.
Last edit: 8 years 7 months ago by LouisGac.
The topic has been locked.
  • LouisGac
  • LouisGac's Avatar
  • Visitor
  • Visitor
8 years 7 months ago #123859 by LouisGac
so, to be more clear : the update process worked. The error message you had at the end of the ComfortUpdate seems to have no relation with the update itself, but was a display problem.
The topic has been locked.
  • hstiekema
  • hstiekema's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 6 months ago #123939 by hstiekema
My immediate problem is fixed now. I restored the backup and installed the latest 2.05+ version 'the long way' (or whatever the manual calls it). This works just fine. I haven't tried upgrading to 2.06 again. That will probably happen at some point, but i'm good for now. Thanks.
The topic has been locked.
More
8 years 6 months ago #125624 by vikinggeek
I'm experiencing the same problem as described here upgrading from 2.05 (2.05+ Build 141229). The difference is that I did a "download" upgrade and I used the release from Sept 11 (limesurvey206plus-build150911). The only file copied from the old installation was /application/config/config.php. I'm running CentOS release 6.7 (Final) all patches applied on 2.6.32-573.3.1.el6.x86_64 kernel.

Any idea what is going on?
The topic has been locked.
  • LouisGac
  • LouisGac's Avatar
  • Visitor
  • Visitor
8 years 6 months ago #125627 by LouisGac
turn off the error rendering in the config file and everything should work fine.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose