View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
11094Bug reportsComfortUpdatepublic2016-05-03 11:22
ReporterDenisChenu Assigned Toc_schmitz  
PrioritynoneSeverityminor 
Status closedResolutionfixed 
Product Version2.50.x 
Fixed in Version2.50.x 
Summary11094: Updating from DB 165 and less is broken
Description

IF DB version is lesser than 166 : unabmle to update

Steps To Reproduce

Download a 2.00 version : 2.00_plus_131206
https://github.com/LimeSurvey/LimeSurvey/releases/tag/2.00_plus_131206 for example
Install it
Update to last GIT : broken when try to update

TagsNo tags attached.
Attached Files
CDbException.html (28,723 bytes)   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CDbException</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>CDbException</h1>

	<p class="message">
		La table « {{permissions}} » associée à la classe Active record « Permission » est introuvable dans la base de données.	</p>

	<div class="source">
		<p class="file">/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/db/ar/CActiveRecord.php(2387)</p>
		<div class="code"><pre><span class="ln">2375</span> 
<span class="ln">2376</span>     /**
<span class="ln">2377</span>      * Constructor.
<span class="ln">2378</span>      * @param CActiveRecord $model the model instance
<span class="ln">2379</span>      * @throws CDbException if specified table for active record class cannot be found in the database
<span class="ln">2380</span>      */
<span class="ln">2381</span>     public function __construct($model)
<span class="ln">2382</span>     {
<span class="ln">2383</span>         $this-&gt;_modelClassName=get_class($model);
<span class="ln">2384</span> 
<span class="ln">2385</span>         $tableName=$model-&gt;tableName();
<span class="ln">2386</span>         if(($table=$model-&gt;getDbConnection()-&gt;getSchema()-&gt;getTable($tableName))===null)
<span class="error"><span class="ln error-ln">2387</span>             throw new CDbException(Yii::t('yii','The table "{table}" for active record class "{class}" cannot be found in the database.',
</span><span class="ln">2388</span>                 array('{class}'=&gt;$this-&gt;_modelClassName,'{table}'=&gt;$tableName)));
<span class="ln">2389</span>                 
<span class="ln">2390</span>         if(($modelPk=$model-&gt;primaryKey())!==null || $table-&gt;primaryKey===null)
<span class="ln">2391</span>         {
<span class="ln">2392</span>             $table-&gt;primaryKey=$modelPk;
<span class="ln">2393</span>             if(is_string($table-&gt;primaryKey) &amp;&amp; isset($table-&gt;columns[$table-&gt;primaryKey]))
<span class="ln">2394</span>                 $table-&gt;columns[$table-&gt;primaryKey]-&gt;isPrimaryKey=true;
<span class="ln">2395</span>             elseif(is_array($table-&gt;primaryKey))
<span class="ln">2396</span>             {
<span class="ln">2397</span>                 foreach($table-&gt;primaryKey as $name)
<span class="ln">2398</span>                 {
<span class="ln">2399</span>                     if(isset($table-&gt;columns[$name]))
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tbody><tr class="trace core collapsed">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/db/ar/CActiveRecord.php(411): <strong>CActiveRecordMetaData</strong>-&gt;<strong>__construct</strong>(Permission)				</div>

				<div class="code"><pre><span class="ln">406</span>     {
<span class="ln">407</span>         $className=get_class($this);
<span class="ln">408</span>         if(!array_key_exists($className,self::$_md))
<span class="ln">409</span>         {
<span class="ln">410</span>             self::$_md[$className]=null; // preventing recursive invokes of {@link getMetaData()} via {@link __get()}
<span class="error"><span class="ln error-ln">411</span>             self::$_md[$className]=new CActiveRecordMetaData($this);
</span><span class="ln">412</span>         }
<span class="ln">413</span>         return self::$_md[$className];
<span class="ln">414</span>     }
<span class="ln">415</span> 
<span class="ln">416</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/db/ar/CActiveRecord.php(680): <strong>CActiveRecord</strong>-&gt;<strong>getMetaData</strong>()				</div>

				<div class="code"><pre><span class="ln">675</span>      * @param string $name attribute name
<span class="ln">676</span>      * @return boolean whether this AR has the named attribute (table column).
<span class="ln">677</span>      */
<span class="ln">678</span>     public function hasAttribute($name)
<span class="ln">679</span>     {
<span class="error"><span class="ln error-ln">680</span>         return isset($this-&gt;getMetaData()-&gt;columns[$name]);
</span><span class="ln">681</span>     }
<span class="ln">682</span> 
<span class="ln">683</span>     /**
<span class="ln">684</span>      * Returns the named attribute value.
<span class="ln">685</span>      * If this is a new record and the attribute is not set before,
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/models/LSActiveRecord.php(29): <strong>CActiveRecord</strong>-&gt;<strong>hasAttribute</strong>("created")				</div>

				<div class="code"><pre><span class="ln">24</span>      * @return array
<span class="ln">25</span>      */
<span class="ln">26</span>     public function behaviors()
<span class="ln">27</span>     {
<span class="ln">28</span>         $aBehaviors=array();
<span class="error"><span class="ln error-ln">29</span>         $sCreateFieldName=($this-&gt;hasAttribute('created')?'created':null);
</span><span class="ln">30</span>         $sUpdateFieldName=($this-&gt;hasAttribute('modified')?'modified':null);
<span class="ln">31</span>         $sDriverName = Yii::app()-&gt;db-&gt;getDriverName();
<span class="ln">32</span>         if ($sDriverName=='sqlsrv' || $sDriverName=='dblib')
<span class="ln">33</span>         {
<span class="ln">34</span>             $sTimestampExpression=new CDbExpression('GETDATE()');
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/db/ar/CActiveRecord.php(396): <strong>LSActiveRecord</strong>-&gt;<strong>behaviors</strong>()				</div>

				<div class="code"><pre><span class="ln">391</span>         if(isset(self::$_models[$className]))
<span class="ln">392</span>             return self::$_models[$className];
<span class="ln">393</span>         else
<span class="ln">394</span>         {
<span class="ln">395</span>             $model=self::$_models[$className]=new $className(null);
<span class="error"><span class="ln error-ln">396</span>             $model-&gt;attachBehaviors($model-&gt;behaviors());
</span><span class="ln">397</span>             return $model;
<span class="ln">398</span>         }
<span class="ln">399</span>     }
<span class="ln">400</span> 
<span class="ln">401</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/models/Permission.php(38): <strong>CActiveRecord</strong>::<strong>model</strong>("Permission")				</div>

				<div class="code"><pre><span class="ln">33</span>      * @param string $class
<span class="ln">34</span>      * @return Permission
<span class="ln">35</span>      */
<span class="ln">36</span>     public static function model($class = __CLASS__)
<span class="ln">37</span>     {
<span class="error"><span class="ln error-ln">38</span>         return parent::model($class);
</span><span class="ln">39</span>     }
<span class="ln">40</span> 
<span class="ln">41</span>     /**
<span class="ln">42</span>      * Returns the base permissions
<span class="ln">43</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/models/Survey.php(281): <strong>Permission</strong>::<strong>model</strong>()				</div>

				<div class="code"><pre><span class="ln">276</span>     * @return CActiveRecord
<span class="ln">277</span>     */
<span class="ln">278</span>     public function permission($loginID)
<span class="ln">279</span>     {
<span class="ln">280</span>         $loginID = (int) $loginID;
<span class="error"><span class="ln error-ln">281</span>         if(Permission::model()-&gt;hasGlobalPermission('surveys','read',$loginID))// Test global before adding criteria
</span><span class="ln">282</span>             return $this;
<span class="ln">283</span>         $criteria = $this-&gt;getDBCriteria();
<span class="ln">284</span>         $criteria-&gt;mergeWith(array(
<span class="ln">285</span>             'condition' =&gt; 'sid IN (SELECT entity_id FROM {{permissions}} WHERE entity = :entity AND  uid = :uid AND permission = :permission AND read_p = 1)
<span class="ln">286</span>                             OR owner_id = :owner_id',
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/core/Survey_Common_Action.php(458): <strong>Survey</strong>-&gt;<strong>permission</strong>("1")				</div>

				<div class="code"><pre><span class="ln">453</span>             {
<span class="ln">454</span>                 Yii::app()-&gt;session['flashmessage'] = gT("Warning: You are still using the default password ('password'). Please change your password and re-login again.");
<span class="ln">455</span>             }
<span class="ln">456</span> 
<span class="ln">457</span>             // Count active survey
<span class="error"><span class="ln error-ln">458</span>             $aData['dataForConfigMenu']['activesurveyscount'] = $aData['activesurveyscount'] = Survey::model()-&gt;permission(Yii::app()-&gt;user-&gt;getId())-&gt;active()-&gt;count();
</span><span class="ln">459</span> 
<span class="ln">460</span>             // Count survey
<span class="ln">461</span>             $aData['dataForConfigMenu']['surveyscount'] = Survey::model()-&gt;count();
<span class="ln">462</span> 
<span class="ln">463</span>             // Count user
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/core/Survey_Common_Action.php(244): <strong>Survey_Common_Action</strong>-&gt;<strong>_showadminmenu</strong>()				</div>

				<div class="code"><pre><span class="ln">239</span> 
<span class="ln">240</span> 
<span class="ln">241</span>         ob_start(); //// That was used before the MVC pattern, in procedural code. Will not be used anymore.
<span class="ln">242</span> 
<span class="ln">243</span>         $this-&gt;_showHeaders($aData); //// THe headers will be called from the layout
<span class="error"><span class="ln error-ln">244</span>         $this-&gt;_showadminmenu(); //// The admin menu will be called from the layout, probably as a widget for dynamic content.
</span><span class="ln">245</span>         $this-&gt;_userGroupBar($aData);
<span class="ln">246</span> 
<span class="ln">247</span>         //// Here will start the rendering from the controller of the main view.
<span class="ln">248</span>         //// For example, the Group controller will use the main.php layout, and then render the view list_group.php
<span class="ln">249</span>         //// This view will call as a subview the questiongroupbar, and then _listquestiongroup subview.
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/controllers/admin/databaseupdate.php(48): <strong>Survey_Common_Action</strong>-&gt;<strong>_renderWrappedTemplate</strong>("update", array("output" =&gt; "
        &lt;div class="jumbotron message-box"&gt;
            &lt;h2 cla..."), array("display" =&gt; array("header" =&gt; true), "updatedbaction" =&gt; true))				</div>

				<div class="code"><pre><span class="ln">43</span>             $aViewUrls['output'] = CheckForDBUpgrades();
<span class="ln">44</span>         }
<span class="ln">45</span> 
<span class="ln">46</span>         $aData['updatedbaction'] = true;
<span class="ln">47</span> 
<span class="error"><span class="ln error-ln">48</span>         $this-&gt;_renderWrappedTemplate('update', $aViewUrls, $aData);
</span><span class="ln">49</span>     }
<span class="ln">50</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>databaseupdate</strong>-&gt;<strong>db</strong>(null)				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>(databaseupdate, array(null))				</div>

				<div class="code"><pre><span class="ln">104</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">105</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">106</span>             else
<span class="ln">107</span>                 return false;
<span class="ln">108</span>         }
<span class="error"><span class="ln error-ln">109</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">110</span>         return true;
<span class="ln">111</span>     }
<span class="ln">112</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/core/Survey_Common_Action.php(101): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>(databaseupdate, ReflectionMethod, array("sa" =&gt; "db"))				</div>

				<div class="code"><pre><span class="ln">096</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">097</span>         }
<span class="ln">098</span> 
<span class="ln">099</span>         // We're all good to go, let's execute it
<span class="ln">100</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
<span class="error"><span class="ln error-ln">101</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">102</span>     }
<span class="ln">103</span> 
<span class="ln">104</span>     /**
<span class="ln">105</span>     * Some functions have different parameters, which are just an alias of the
<span class="ln">106</span>     * usual parameters we're getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-&gt;<strong>runWithParams</strong>(array("sa" =&gt; "db"))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(databaseupdate)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#14			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(databaseupdate, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/controllers/AdminController.php(161): <strong>CController</strong>-&gt;<strong>run</strong>("databaseupdate")				</div>

				<div class="code"><pre><span class="ln">156</span>                     $this-&gt;redirect(array('/admin/authentication/sa/login'));
<span class="ln">157</span>                 }
<span class="ln">158</span> 
<span class="ln">159</span>             }
<span class="ln">160</span> 
<span class="error"><span class="ln error-ln">161</span>             return parent::run($action);
</span><span class="ln">162</span>     }
<span class="ln">163</span> 
<span class="ln">164</span>     /**
<span class="ln">165</span>     * Routes all the actions to their respective places
<span class="ln">166</span>     *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-&gt;<strong>run</strong>("databaseupdate")				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
<span class="ln">287</span>                 array('{route}'=&gt;$route===''?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#17			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("admin/databaseupdate/sa/db")				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#18			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler('onBeginRequest'))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,'end'),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler('onEndRequest'))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#19			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/index.php(211): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">206</span>         die (sprintf('%s should be writable by the webserver (766 or 776).', $runtimePath));
<span class="ln">207</span>     }
<span class="ln">208</span> }
<span class="ln">209</span> 
<span class="ln">210</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">211</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">212</span> 
<span class="ln">213</span> /* End of file index.php */
<span class="ln">214</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2016-05-02 11:23:02 Apache/2.2.22 (Debian) <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.17	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>



</body></html>
CDbException.html (28,723 bytes)   
Bug heat4
Complete LimeSurvey version number (& build)160502
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionnot relevant
Server OS (if known)not relevant
Webserver software & version (if known)not relevant
PHP Versionn

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2016-05-02 11:43

developer   ~38083

https://github.com/LimeSurvey/LimeSurvey/commit/959dd5c3b98e8f41a29b2793d2b385f9e5b82bb7 child

DenisChenu

DenisChenu

2016-05-02 12:26

developer   ~38086

PS: i use same prefix when have this issue. ANd made
a

  • rm -Rf tmp/*
  • mkdir tmp/runtime
  • mkdir tmp/assets
c_schmitz

c_schmitz

2016-05-02 12:45

administrator   ~38087

I tried this several times - no problem here.

c_schmitz

c_schmitz

2016-05-02 13:02

administrator   ~38088

This is only a problem if you force a log in to the administration before the DB update kicks in but you are not supposed to do that (I get the missing plugins error there, too)

Since nobody uses GitHub this way it is not a problem for normal users.
However we just can let the update kick in on update, too.

c_schmitz

c_schmitz

2016-05-02 13:03

administrator   ~38089

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=18844

DenisChenu

DenisChenu

2016-05-02 13:11

developer   ~38090

I i remind : we force authentificatation for DB upgrade ? For security issue , no ?
https://github.com/LimeSurvey/LimeSurvey/commit/c518471a38ba8f20e8981af81b95310b328f9c5a ?

c_schmitz

c_schmitz

2016-05-02 13:21

administrator   ~38091

Last edited: 2016-05-02 13:21

No, we never had authorization on update because in some case the authorization won't work (for changes in permissions, for exmample)

c_schmitz

c_schmitz

2016-05-03 11:22

administrator   ~38142

Version 2.50 Build 160503 released

Related Changesets

LimeSurvey: master 157001ca

2016-05-02 11:02:58

c_schmitz

Details Diff
Fixed issue 11094: Database update does not kick in on authentication Affected Issues
11094
mod - application/controllers/AdminController.php Diff File

Issue History

Date Modified Username Field Change
2016-05-02 11:41 DenisChenu New Issue
2016-05-02 11:41 DenisChenu Status new => assigned
2016-05-02 11:41 DenisChenu Assigned To => LouisGac
2016-05-02 11:41 DenisChenu File Added: CDbException.html
2016-05-02 11:43 DenisChenu Note Added: 38083
2016-05-02 12:26 DenisChenu Note Added: 38086
2016-05-02 12:45 c_schmitz Note Added: 38087
2016-05-02 13:02 c_schmitz Note Added: 38088
2016-05-02 13:03 c_schmitz Changeset attached => LimeSurvey master 157001ca
2016-05-02 13:03 c_schmitz Note Added: 38089
2016-05-02 13:03 c_schmitz Assigned To LouisGac => c_schmitz
2016-05-02 13:03 c_schmitz Resolution open => fixed
2016-05-02 13:03 c_schmitz Status assigned => resolved
2016-05-02 13:03 c_schmitz Fixed in Version => 2.5
2016-05-02 13:11 DenisChenu Note Added: 38090
2016-05-02 13:21 c_schmitz Note Added: 38091
2016-05-02 13:21 c_schmitz Note Edited: 38091
2016-05-03 11:22 c_schmitz Note Added: 38142
2016-05-03 11:22 c_schmitz Status resolved => closed