View Issue Details

This bug affects 1 person(s).
 8
IDProjectCategoryView StatusLast Update
18247Bug reportsRemoteControlpublic2022-09-19 11:02
Reporterhappysocrates Assigned Togabrieljenik  
PrioritynoneSeveritypartial_block 
Status closedResolutionfixed 
Product Version5.3.x 
Summary18247: php version 8 and remote control, error in bigdata.php
Description

Hi running limeSurvey on a shared host. Linux based LiteSpeed server, MySQL Version 10.5

LimeSurvey version 5.3.23 release 220705. Fresh installation on both filesystem and database.

Using the remote control API. Everything is working without problems on PHP 7.4. However when I change to PHP version 8 or PHP version 8.1, the remotecontrol calls fail.

If I change the PHP version to 7.4 and repeat. It works again. I have other applications (such as Drupal) working in the same environment on the same server. For this problem there were no other applications installed.

Steps To Reproduce

Steps to reproduce

Set PHP Version to 8 or later.

Complete fresh installation of LimeSurvey. No need to create any surveys.

Activate the JSON-RPC api, copy the URL

Access the site using remote control. First call get_session_key will fail.

Expected result

The site returns the session key

Actual result

The call fails and returns a null result.

I turned on debug level 2 and caught the response from the server and it is pointing to the error:

"BigData::hasStream(): Argument #1 ($result) must be passed by reference, value given" on line 24 of application/libraries/BigData.php(24)

Complete returned information attached in error.html.

The function array_reduce did change in PHP version 8.

TagsNo tags attached.
Attached Files
error.html (21,367 bytes)   
<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>PHP warning</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>PHP warning</h1>

	<p class="message">
		BigData::hasStream(): Argument #1 ($result) must be passed by reference, value given	</p>

	<div class="source">
		<p class="file">/home/u552477061/domains/vgqst.com/public_html/limesurvey/application/libraries/BigData.php(24)</p>
		<div class="code"><pre><span class="ln">12</span>     /**
<span class="ln">13</span>      * This function combines json_encode and echo.
<span class="ln">14</span>      * If a stream is passed (or is part of the array) it&#039;s content will be
<span class="ln">15</span>      * directly streamed instead of reading it into memory first.
<span class="ln">16</span>      * Supported flags:
<span class="ln">17</span>      * JSON_FORCE_OBJECT
<span class="ln">18</span>      * @param array $json
<span class="ln">19</span>      * @param int $options Same flags used in JSON_ENCODE.
<span class="ln">20</span>      */
<span class="ln">21</span>     public static function json_echo($json, $options = 0)
<span class="ln">22</span>     {
<span class="ln">23</span>         // Scan array for any streams.
<span class="error"><span class="ln error-ln">24</span>         $hasStream = array_reduce($json, array(&#039;BigData&#039;, &#039;hasStream&#039;), false);
</span><span class="ln">25</span> 
<span class="ln">26</span>         // If there is no stream we are done.
<span class="ln">27</span>         if (!$hasStream) {
<span class="ln">28</span>             echo json_encode($json, $options);
<span class="ln">29</span>         } else {
<span class="ln">30</span>             self::json_echo_data($json, ($options &amp; JSON_FORCE_OBJECT) == JSON_FORCE_OBJECT);
<span class="ln">31</span>         }
<span class="ln">32</span>     }
<span class="ln">33</span> 
<span class="ln">34</span>     protected static function hasStream(&amp;$result, $item)
<span class="ln">35</span>     {
<span class="ln">36</span>         if ($result === true) {
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/application/libraries/BigData.php(24): <strong>array_reduce</strong>(array(&quot;id&quot; =&gt; 1, &quot;result&quot; =&gt; &quot;uoQndvTd4P6s3QpZ_ip4qbndx2TQsAOg&quot;, &quot;error&quot; =&gt; null), array(&quot;BigData&quot;, &quot;hasStream&quot;), false)				</div>

				<div class="code"><pre><span class="ln">19</span>      * @param int $options Same flags used in JSON_ENCODE.
<span class="ln">20</span>      */
<span class="ln">21</span>     public static function json_echo($json, $options = 0)
<span class="ln">22</span>     {
<span class="ln">23</span>         // Scan array for any streams.
<span class="error"><span class="ln error-ln">24</span>         $hasStream = array_reduce($json, array(&#039;BigData&#039;, &#039;hasStream&#039;), false);
</span><span class="ln">25</span> 
<span class="ln">26</span>         // If there is no stream we are done.
<span class="ln">27</span>         if (!$hasStream) {
<span class="ln">28</span>             echo json_encode($json, $options);
<span class="ln">29</span>         } else {
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/application/libraries/LSjsonRPCServer.php(64): <strong>BigData</strong>::<strong>json_echo</strong>(array(&quot;id&quot; =&gt; 1, &quot;result&quot; =&gt; &quot;uoQndvTd4P6s3QpZ_ip4qbndx2TQsAOg&quot;, &quot;error&quot; =&gt; null))			</div>

				<div class="code"><pre><span class="ln">59</span> 
<span class="ln">60</span>         // output the response
<span class="ln">61</span>         if (is_null($request) || !empty($request[&#039;id&#039;])) {
<span class="ln">62</span> // notifications don&#039;t want response
<span class="ln">63</span>             header(&#039;content-type: text/javascript&#039;);
<span class="error"><span class="ln error-ln">64</span>             BigData::json_echo($response);
</span><span class="ln">65</span>         }
<span class="ln">66</span> 
<span class="ln">67</span>         // finish
<span class="ln">68</span>         return true;
<span class="ln">69</span>     }
</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/u552477061/domains/vgqst.com/public_html/limesurvey/application/controllers/admin/RemoteControl.php(66): <strong>LSjsonRPCServer</strong>::<strong>handle</strong>(remotecontrol_handle)				</div>

				<div class="code"><pre><span class="ln">61</span>                 Yii::app()-&gt;loadLibrary(&#039;LSjsonRPCServer&#039;);
<span class="ln">62</span>                 if (!isset($_SERVER[&#039;CONTENT_TYPE&#039;])) {
<span class="ln">63</span>                     $serverContentType = explode(&#039;;&#039;, $_SERVER[&#039;HTTP_CONTENT_TYPE&#039;]);
<span class="ln">64</span>                     $_SERVER[&#039;CONTENT_TYPE&#039;] = reset($serverContentType);
<span class="ln">65</span>                 }
<span class="error"><span class="ln error-ln">66</span>                 LSjsonRPCServer::handle($oHandler);
</span><span class="ln">67</span>             }
<span class="ln">68</span>             foreach (App()-&gt;log-&gt;routes as $route) {
<span class="ln">69</span>                 $route-&gt;enabled = $route-&gt;enabled &amp;&amp; !($route instanceof CWebLogRoute);
<span class="ln">70</span>             }
<span class="ln">71</span>             Yii::app()-&gt;session-&gt;destroy();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>RemoteControl</strong>-><strong>run</strong>()				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/actions/CAction.php(115): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(RemoteControl, array())				</div>

				<div class="code"><pre><span class="ln">110</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">111</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">112</span>             else
<span class="ln">113</span>                 return false;
<span class="ln">114</span>         }
<span class="error"><span class="ln error-ln">115</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">116</span>         return true;
<span class="ln">117</span>     }
<span class="ln">118</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/application/core/SurveyCommonAction.php(83): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(RemoteControl, ReflectionMethod, array())				</div>

				<div class="code"><pre><span class="ln">78</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">79</span>         }
<span class="ln">80</span> 
<span class="ln">81</span>         // We&#039;re all good to go, let&#039;s execute it
<span class="ln">82</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">83</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">84</span>     }
<span class="ln">85</span> 
<span class="ln">86</span>     /**
<span class="ln">87</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">88</span>      * usual parameters we&#039;re getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/CController.php(308): <strong>SurveyCommonAction</strong>-><strong>runWithParams</strong>(array())		</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">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(RemoteControl)		</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">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(RemoteControl, 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">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/application/controllers/AdminController.php(202): <strong>CController</strong>-><strong>run</strong>(&quot;remotecontrol&quot;)				</div>

				<div class="code"><pre><span class="ln">197</span>         }
<span class="ln">198</span> 
<span class="ln">199</span>         $this-&gt;runModuleController($action);
<span class="ln">200</span> 
<span class="ln">201</span> 
<span class="error"><span class="ln error-ln">202</span>         return parent::run($action);
</span><span class="ln">203</span>     }
<span class="ln">204</span> 
<span class="ln">205</span>     /**
<span class="ln">206</span>      * Starting with LS4, 3rd party developper can extends any of the LimeSurve controllers.
<span class="ln">207</span>      *
</pre></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/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>(&quot;remotecontrol&quot;)				</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(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
<span class="ln">287</span>                 array(&#039;{route}&#039;=&gt;$route===&#039;&#039;?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;admin/remotecontrol&quot;)				</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">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-><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(&#039;onBeginRequest&#039;))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,&#039;end&#039;),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(&#039;onEndRequest&#039;))
<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">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/u552477061/domains/vgqst.com/public_html/limesurvey/index.php(192): <strong>CApplication</strong>-><strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">187</span> require_once APPPATH . &#039;core/LSYii_Application&#039; . EXT;
<span class="ln">188</span> 
<span class="ln">189</span> $config = require_once(APPPATH . &#039;config/internal&#039; . EXT);
<span class="ln">190</span> 
<span class="ln">191</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">192</span> Yii::createApplication(&#039;LSYii_Application&#039;, $config)-&gt;run();
</span><span class="ln">193</span> 
<span class="ln">194</span> /* End of file index.php */
<span class="ln">195</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</table>
	</div>

	<div class="version">
		2022-07-10 05:39:57 LiteSpeed <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.24-dev	</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>
error.html (21,367 bytes)   
Bug heat8
Complete LimeSurvey version number (& build)5.3.23 release 220705
I will donate to the project if issue is resolvedNo
BrowserNot relevant
Database type & versionMySQL 10.5
Server OS (if known)Linux
Webserver software & version (if known)LiteSpeed
PHP Version8.0

Users monitoring this issue

happysocrates

Activities

gabrieljenik

gabrieljenik

2022-07-13 14:26

manager   ~70897

You can install LS3 on PHP8 but it is officially not supported.
LS5 supports currrently 8.0, but not 8.1, yet.

Which minor vesion of PHP are you using?

happysocrates

happysocrates

2022-07-13 17:01

reporter   ~70911

I have tried on both PHP 8.0 and 8.1. Same result.

gabrieljenik

gabrieljenik

2022-07-19 19:47

manager   ~71018

PR: https://github.com/LimeSurvey/LimeSurvey/pull/2520

gabrieljenik

gabrieljenik

2022-07-19 19:48

manager   ~71019

@happysocrates maybe you can help by testing the PR?
(not sure about your background)

happysocrates

happysocrates

2022-07-20 04:40

reporter   ~71034

Thanks @gabrieljenik! I am comfortable with PHP and server apps but don't know my way around GIT.

I manually added the change to my test environment (5.3.24) and tested on PHP 7.4, 8.0 and 8.1. All worked.

gabrieljenik

gabrieljenik

2022-07-20 15:13

manager   ~71057

That's good enough for testing! Thanks!

gabrieljenik

gabrieljenik

2022-09-14 13:54

manager   ~71729

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

LimeBot

LimeBot

2022-09-19 11:02

administrator   ~71814

Fixed in Release 5.4.1+220919

Related Changesets

LimeSurvey: master 2dac079d

2022-09-14 13:54:30

gabrieljenik


Committer: GitHub Details Diff
Fixed issue 18247: php version 8 and remote control, error in bigdata.php (#2520) Affected Issues
18247
mod - application/libraries/BigData.php Diff File

Issue History

Date Modified Username Field Change
2022-07-11 05:36 happysocrates New Issue
2022-07-11 05:36 happysocrates File Added: error.html
2022-07-11 05:37 happysocrates Issue Monitored: happysocrates
2022-07-11 05:37 happysocrates Bug heat 0 => 2
2022-07-13 14:26 gabrieljenik Assigned To => gabrieljenik
2022-07-13 14:26 gabrieljenik Status new => feedback
2022-07-13 14:26 gabrieljenik Note Added: 70897
2022-07-13 14:26 gabrieljenik Bug heat 2 => 4
2022-07-13 17:01 happysocrates Note Added: 70911
2022-07-13 17:01 happysocrates Bug heat 4 => 6
2022-07-13 17:01 happysocrates Status feedback => assigned
2022-07-13 21:15 gabrieljenik Assigned To gabrieljenik =>
2022-07-13 21:15 gabrieljenik Status assigned => acknowledged
2022-07-18 15:06 gabrieljenik Assigned To => gabrieljenik
2022-07-18 15:06 gabrieljenik Status acknowledged => assigned
2022-07-19 19:47 gabrieljenik Status assigned => ready for code review
2022-07-19 19:47 gabrieljenik Note Added: 71018
2022-07-19 19:48 gabrieljenik Note Added: 71019
2022-07-20 04:40 happysocrates Note Added: 71034
2022-07-20 15:13 gabrieljenik Status ready for code review => ready for merge
2022-07-20 15:13 gabrieljenik Note Added: 71057
2022-09-14 13:54 gabrieljenik Changeset attached => LimeSurvey master 2dac079d
2022-09-14 13:54 gabrieljenik Note Added: 71729
2022-09-14 13:54 gabrieljenik Resolution open => fixed
2022-09-19 11:02 LimeBot Note Added: 71814
2022-09-19 11:02 LimeBot Status ready for merge => closed
2022-09-19 11:02 LimeBot Bug heat 6 => 8