View Issue Details

This issue affects 1 person(s).
 8
IDProjectCategoryView StatusLast Update
09893Bug reportsSurvey takingpublic2015-09-30 13:26
Reporterchris1337 Assigned Toc_schmitz  
PriorityimmediateSeveritycrash 
Status closedResolutionwon't fix 
Product Version2.06+ 
Summary09893: Survey can't be activated with LS on linux and db on MSSQL - SQLSTATE[HY000]: General error: 1750
Description

When i try to activate a survey (with really many questins/answers) the activation fails.
Following error is beeing displayed:

Internal Server Error
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1750 General SQL Server error: Check messages from the SQL Server [1750] (severity 16) [(null)]

The table gets created, but the survey doesn't get marked as activated. I don't know if there are any other steps wich do not get processed.

Small surveys with only a few questions can be activated without of problems.
With LS 2.05+141229 everything worked fine.

I assume, that LS has a problem to interpret the warning message the MSSQL-DB returns when creating the survey table. The warning says that problems may occurr when writing to this table when the data to write to the row exceeds the 8000bytes / 8060bytes limitation for a rom in MSSQL.

Steps To Reproduce

Use Limesurvey 2.06+ >=Build150812 on Debian 7.
Use MSSQL Server2008R2 as DB.
Build / generate a realy big survey with about 400 answers. (sorry, i'm not permitted to upload our survey structure.)
Just try to activate the survey.

Additional Information

A fast solution for this problem would be nice, because we want to test a big survey which we have to start in the beginning of october.

TagsNo tags attached.
Attached Files
LS-Internal Server Error.png (14,281 bytes)   
LS-Internal Server Error.png (14,281 bytes)   
Bug heat8
Complete LimeSurvey version number (& build)2.06+ Build 150911
I will donate to the project if issue is resolvedNo
Browser
Database type & versionMSSQL Server2008 R2
Server OS (if known)Debian 7
Webserver software & version (if known)Apache/2.2.22 (Debian)
PHP VersionPHP 5.4.45
Git branch / Pull Request URL

Users monitoring this issue

chris1337, biloFG

Activities

chris1337

chris1337

2015-09-17 10:25

reporter   ~33117

Last edited: 2015-09-18 09:50

I added the CREATE TABLE statement which causes the warning in MSSQL when the survey should be activated.
There are very many "nvarchar(max)" fields. Why does limesurvey use such a big type of field?

The warning message the MSSQL-Server throws is:
Warning: The maximum length of the row exceeds the permissible limit of 8060 bytes. For some combination of large values, the insert/update operation will fail.

Chris

c_schmitz

c_schmitz

2015-09-30 13:26

administrator   ~33250

As LimeSurvey uses UTF-8 nvarchar is obviously the right field type to use.
nvarchar(max) uses less row space than for exmaple nvarchar(200).

The problem is that you survey is too big for LS to create the table without limitations in general. Either remove (sub-)questions from your survey or split it to several ones.
This might be a design flaw, but it is a not a bug, but a limitation by MSSQL server.

Issue History

Date Modified Username Field Change
2015-09-16 17:23 chris1337 New Issue
2015-09-16 17:23 chris1337 File Added: LS-Internal Server Error.png
2015-09-17 09:58 chris1337 Issue Monitored: chris1337
2015-09-17 10:22 chris1337 File Added: LS-activate-Survey-Create-Table.sql
2015-09-17 10:25 chris1337 Note Added: 33117
2015-09-18 09:50 chris1337 Note Edited: 33117
2015-09-18 10:05 biloFG Issue Monitored: biloFG
2015-09-30 13:26 c_schmitz Note Added: 33250
2015-09-30 13:26 c_schmitz Status new => closed
2015-09-30 13:26 c_schmitz Assigned To => c_schmitz
2015-09-30 13:26 c_schmitz Resolution open => fixed
2015-09-30 13:26 c_schmitz Resolution fixed => won't fix
2021-08-20 20:27 guest Bug heat 4 => 8