View Issue Details

This bug affects 1 person(s).
 2
IDProjectCategoryView StatusLast Update
20148Bug reportsSurvey takingpublic2025-06-24 13:24
Reporteruschwarz Assigned Tomarcolombardo  
PrioritynoneSeveritycrash 
Status assignedResolutionopen 
Product Version6.6.x 
Summary20148: Division by zero in progress bar
Description

I've not entirely traced the logic, but under some circumstances, the progress bar seems to think there are 0 questions and

$progressValue = ($this->aSurveyInfo['progress']['currentstep']) / $this->aSurveyInfo['progress']['total'] * 100;

in SurveyRuntimeHelper.php fails.

(This has been around for months, we're currently patching in a max(1,…) in the denominator because we don't want to understand the actual code.)

Steps To Reproduce

Steps to reproduce

Import the attached survey. Test the survey, accept the ToCs and click next.

Expected result

You go to the first proper question.

Actual result

Division by zero in SurveyRuntimeHelper.

TagsNo tags attached.
Attached Files
buggy-survey.lss (17,255 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>633</DBVersion>
 <languages>
  <language>de</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[87]]></gid>
    <sid><![CDATA[452991]]></sid>
    <group_order><![CDATA[0]]></group_order>
    <randomization_group/>
    <grelevance><![CDATA[1]]></grelevance>
   </row>
  </rows>
 </groups>
 <group_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[87]]></id>
    <gid><![CDATA[87]]></gid>
    <group_name/>
    <description/>
    <language><![CDATA[de]]></language>
    <sid><![CDATA[452991]]></sid>
    <group_order><![CDATA[0]]></group_order>
    <randomization_group/>
    <grelevance><![CDATA[1]]></grelevance>
   </row>
  </rows>
 </group_l10ns>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>encrypted</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>question_theme_name</fieldname>
   <fieldname>modulename</fieldname>
   <fieldname>same_script</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[608]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[452991]]></sid>
    <gid><![CDATA[87]]></gid>
    <type><![CDATA[Y]]></type>
    <title><![CDATA[G01Q01]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[Y]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[yesno]]></question_theme_name>
    <modulename/>
    <same_script><![CDATA[0]]></same_script>
   </row>
  </rows>
 </questions>
 <question_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>qid</fieldname>
   <fieldname>question</fieldname>
   <fieldname>help</fieldname>
   <fieldname>script</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[608]]></id>
    <qid><![CDATA[608]]></qid>
    <question><![CDATA[<p style="list-style-type:decimal;border:none;border-bottom:none;margin-left:48px;text-indent:-18pt;border-left:none;border-top:none;border-right:none;">Does the progress bar work?</p>
]]></question>
    <help/>
    <script/>
    <language><![CDATA[de]]></language>
   </row>
  </rows>
 </question_l10ns>
 <question_attributes>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>attribute</fieldname>
   <fieldname>value</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[cssclass]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[display_type]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[hidden]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[hide_tip]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[page_break]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[printable_help]]></attribute>
    <value/>
    <language><![CDATA[de]]></language>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[public_statistics]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[random_group]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[save_as_default]]></attribute>
    <value><![CDATA[N]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[scale_export]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[statistics_graphtype]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[608]]></qid>
    <attribute><![CDATA[statistics_showgraph]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
  </rows>
 </question_attributes>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>ipanonymize</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
   <fieldname>tokenencryptionoptions</fieldname>
   <fieldname>othersettings</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[452991]]></sid>
    <gsid><![CDATA[1]]></gsid>
    <admin><![CDATA[inherit]]></admin>
    <adminemail><![CDATA[inherit]]></adminemail>
    <anonymized><![CDATA[Y]]></anonymized>
    <format><![CDATA[I]]></format>
    <savetimings><![CDATA[I]]></savetimings>
    <template><![CDATA[inherit]]></template>
    <language><![CDATA[de]]></language>
    <additional_languages/>
    <datestamp><![CDATA[I]]></datestamp>
    <usecookie><![CDATA[I]]></usecookie>
    <allowregister><![CDATA[I]]></allowregister>
    <allowsave><![CDATA[I]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[I]]></autoredirect>
    <allowprev><![CDATA[Y]]></allowprev>
    <printanswers><![CDATA[I]]></printanswers>
    <ipaddr><![CDATA[I]]></ipaddr>
    <ipanonymize><![CDATA[I]]></ipanonymize>
    <refurl><![CDATA[I]]></refurl>
    <showsurveypolicynotice><![CDATA[2]]></showsurveypolicynotice>
    <publicstatistics><![CDATA[I]]></publicstatistics>
    <publicgraphs><![CDATA[I]]></publicgraphs>
    <listpublic><![CDATA[I]]></listpublic>
    <htmlemail><![CDATA[I]]></htmlemail>
    <sendconfirmation><![CDATA[I]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[I]]></tokenanswerspersistence>
    <assessments><![CDATA[I]]></assessments>
    <usecaptcha><![CDATA[E]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[inherit]]></bounce_email>
    <emailresponseto><![CDATA[inherit]]></emailresponseto>
    <emailnotificationto><![CDATA[inherit]]></emailnotificationto>
    <tokenlength><![CDATA[-1]]></tokenlength>
    <showxquestions><![CDATA[N]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[I]]></shownoanswer>
    <showqnumcode><![CDATA[I]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[Y]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[-1]]></questionindex>
    <navigationdelay><![CDATA[-1]]></navigationdelay>
    <nokeyboard><![CDATA[I]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[I]]></alloweditaftercompletion>
    <tokenencryptionoptions><![CDATA[{ "enabled":"Y","columns":{ "firstname":"N","lastname":"N","email":"N" } }]]></tokenencryptionoptions>
    <othersettings><![CDATA[{"question_code_prefix":"","subquestion_code_prefix":"","answer_code_prefix":""}]]></othersettings>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>surveyls_alias</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[452991]]></surveyls_survey_id>
    <surveyls_policy_error/>
    <surveyls_email_invite_subj><![CDATA[Einladung zu einer Umfrage]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Hallo {FIRSTNAME},<br />
<br />
Hiermit möchten wir dich zu einer Umfrage einladen.<br />
<br />
Der Titel der Umfrage ist <br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
Um an dieser Umfrage teilzunehmen, klicke bitte auf den unten stehenden Link.<br />
<br />
Mit freundlichen Grüßen,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Klicke hier um die Umfrage zu starten:<br />
{SURVEYURL}<br />
<br />
Wenn Sie an diese Umfrage nicht teilnehmen und keine weiteren Erinnerungen erhalten möchten, klicken Sie bitte auf den folgenden Link:<br />
{OPTOUTURL}<br />
<br />
Wenn Sie gesperrt sind, jedoch wieder teilnehmen und weitere Einladungen erhalten möchten, klicken Sie bitte auf den folgenden Link:<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Erinnerung an die Teilnahme an einer Umfrage]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Hallo {FIRSTNAME},<br />
<br />
Vor kurzem haben wir dich zu einer Umfrage eingeladen.<br />
<br />
Zu unserem Bedauern haben wir bemerkt, dass du die Umfrage noch nicht ausgefüllt hast. Wir möchten dir mitteilen, dass die Umfrage noch aktiv ist, und würden uns freuen, wenn du teilnehmen könntest.<br />
<br />
Der Titel der Umfrage ist <br />
'{SURVEYNAME}'<br />
<br />
'{SURVEYDESCRIPTION}'<br />
<br />
Um an dieser Umfrage teilzunehmen, klicke bitte auf den unten stehenden Link.<br />
<br />
 Mit freundlichen Grüßen,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Klicke hier, um die Umfrage zu starten:<br />
{SURVEYURL}<br />
<br />
Wenn Sie an diese Umfrage nicht teilnehmen und keine weiteren Erinnerungen erhalten möchten, klicken Sie bitte auf den folgenden Link:<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Registrierungsbestätigung für Teilnahmeumfrage]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Hallo {FIRSTNAME},<br />
<br />
du (oder jemand, der deine E-Mail-Adresse angegeben hat) hast dich für eine Umfrage mit dem Titel {SURVEYNAME} angemeldet.<br />
<br />
Um an dieser Umfrage teilzunehmen, klicke bitte auf folgenden Link:<br />
<br />
{SURVEYURL}<br />
<br />
Wenn du irgendwelche Fragen zu dieser Umfrage hast oder wenn du dich nicht für diese Umfrage angemeldet hast und glaubst, dass dir diese E-Mail irrtümlicherweise zugeschickt worden ist, kontaktiere bitte {ADMINNAME} unter {ADMINEMAIL}.]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Bestätigung für die Teilnahme an unserer Umfrage]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Hallo {FIRSTNAME},<br />
<br />
Vielen Dank für die Teilnahme an der Umfrage mit dem Titel {SURVEYNAME}. Deine Antworten wurden bei uns gespeichert.<br />
<br />
Wenn du irgendwelche Fragen zu dieser E-Mail hast, kontaktiere bitte {ADMINNAME} unter {ADMINEMAIL}.<br />
<br />
Mit freundlichen Grüßen,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[1]]></surveyls_dateformat>
    <surveyls_alias/>
    <email_admin_notification_subj><![CDATA[Antwortabsendung für Umfrage {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Hallo,<br />
<br />
Eine neue Antwort wurde für die Umfrage '{SURVEYNAME}' abgegeben.<br />
<br />
Klicke auf den folgenden Link um den Antwortdatensatz anzusehen:<br />
{VIEWRESPONSEURL}<br />
<br />
Klicke auf den folgenden Link um den Antwortdatensatz zu bearbeiten:<br />
{EDITRESPONSEURL}<br />
<br />
Um die Statistik zu sehen, klicke hier:<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Antwortabsendung für Umfrage {SURVEYNAME} mit Ergebnissen]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Hallo,<br />
<br />
Eine neue Antwort wurde für die Umfrage '{SURVEYNAME}' abgegeben.<br />
<br />
Klicken Sie auf den folgenden Link um den Antwortdatensatz anzusehen:<br />
{VIEWRESPONSEURL}<br />
<br />
Klicken Sie auf den folgenden Link um den Antwortdatensatz zu bearbeiten:<br />
{EDITRESPONSEURL}<br />
<br />
Um die Statistik zu sehen, klicken Sie hier:<br />
{STATISTICSURL}<br />
<br />
<br />
Die folgenden Antworten wurden vom Teilnehmer gegeben:<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[1]]></surveyls_numberformat>
    <surveyls_language><![CDATA[de]]></surveyls_language>
    <surveyls_title><![CDATA[Buggy progress bar]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext><![CDATA[…]]></surveyls_welcometext>
    <surveyls_endtext><![CDATA[…]]></surveyls_endtext>
    <surveyls_policy_notice><![CDATA[…]]></surveyls_policy_notice>
    <surveyls_policy_notice_label/>
    <surveyls_url/>
    <surveyls_urldescription/>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>452991</sid>
   <template_name>fruity</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <!--
 <themes_inherited>
  <theme>
   <sid>452991</sid>
   <template_name>cau-minimal</template_name>
   <config>
    <options>
     <cssframework>CAU</cssframework>
     <brandlogo>on</brandlogo>
     <brandlogofile>image::theme::files/logo.png</brandlogofile>
    </options>
   </config>
  </theme>
  </themes_inherited>
  -->
</document>
buggy-survey.lss (17,255 bytes)   
Bug heat2
Complete LimeSurvey version number (& build)6.15.0
I will donate to the project if issue is resolvedNo
Browser
Database type & versionMariaDB 11.4.7
Server OS (if known)Ubuntu LTS 24.04
Webserver software & version (if known)Apache/2.4.63
PHP Version8.3.20

Users monitoring this issue

There are no users monitoring this issue.

Activities

tibor.pacalat

tibor.pacalat

2025-06-24 13:24

administrator   ~82939

I imported your survey and couldn't provoke crashing it. Progress bar is behaving correctly. I will ask dev that worked on it to take a look.

Issue History

Date Modified Username Field Change
2025-06-24 11:09 uschwarz New Issue
2025-06-24 11:09 uschwarz File Added: buggy-survey.lss
2025-06-24 13:24 tibor.pacalat Note Added: 82939
2025-06-24 13:24 tibor.pacalat Bug heat 0 => 2
2025-06-24 13:24 tibor.pacalat Assigned To => marcolombardo
2025-06-24 13:24 tibor.pacalat Status new => assigned