View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
19370 | Bug reports | Import/Export | public | 2024-01-21 19:01 | 2024-01-22 08:39 |
Reporter | mhladun | Assigned To | |||
Priority | none | Severity | feature | ||
Status | new | Resolution | open | ||
Product Version | 5.6.x | ||||
Summary | 19370: Importing a large number of participants from CSV - Performance and UX | ||||
Description | I submitted a post about this topic at https://forums.limesurvey.org/forum/design-issues/145369-importing-large-number-of-participants-from-a-csv-results-in-gateway-timeout. Essentially, uploading a CSV containing 45 thousand participant records (firstname, lastname, email), reaching 1.7 MB in size, takes more than 60 seconds to complete with no visual feedback about progress. The default gateway timeout error for PHP and Apache is thrown - "The gateway did not receive a timely response from the upstream server or application.". After this error, the site freezes, and in order to get back to the site, I must close my browser, and open it again. The upload button should be disabled during the uploading of CSV imports. And including some user feedback like a progress bar, and a mechanism to keep the connection alive would be ideal. | ||||
Steps To Reproduce | Steps to reproduceImport a large number of participants via a CSV. Something like 30 thousand+ should reproduce this. Expected resultThe import is takes less than 10 seconds to complete. The upload button is disabled so users don't repeatedly click it. A progress bar, or upload feedback is displayed. Actual resultThe CSV appears to be uploading, with a loading icon in the browser's tab, but when the Gateway Timeout is reached, we have no idea about the results of the upload. | ||||
Tags | csv, import, participants, ux | ||||
Bug heat | 4 | ||||
Complete LimeSurvey version number (& build) | 5.6.46 - 231121 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | Firefox | ||||
Database type & version | Postgresql 13.12.18 | ||||
Server OS (if known) | Centos 8.5 | ||||
Webserver software & version (if known) | Apache 2.4.37 | ||||
PHP Version | 8.022 | ||||
It looks like, after the Gateway Timeout error, participant records are increasing at about 10-50/second. This might just be a UX issue, and not a backend problem since all the records are still being created, just not instantly after clicking "upload". |
|
:+1: easy to do
About keep connection : more complex but there are solution using ajax and https://www.php.net/manual/fr/function.ob-flush.php and https://www.php.net/manual/fr/function.flush.php |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2024-01-21 19:01 | mhladun | New Issue | |
2024-01-21 19:03 | mhladun | Tag Attached: import | |
2024-01-21 19:03 | mhladun | Tag Attached: ux | |
2024-01-21 19:03 | mhladun | Tag Attached: csv | |
2024-01-21 19:03 | mhladun | Tag Attached: participants | |
2024-01-21 19:07 | mhladun | Note Added: 79254 | |
2024-01-21 19:07 | mhladun | Bug heat | 0 => 2 |
2024-01-22 08:39 | DenisChenu | Note Added: 79259 | |
2024-01-22 08:39 | DenisChenu | Bug heat | 2 => 4 |