View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
19370Bug reportsImport/Exportpublic2024-01-22 08:39
Reportermhladun Assigned To 
PrioritynoneSeverityfeature 
Status newResolutionopen 
Product Version5.6.x 
Summary19370: 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 reproduce

Import a large number of participants via a CSV. Something like 30 thousand+ should reproduce this.

Expected result

The 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 result

The 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.

Tagscsv, import, participants, ux
Bug heat4
Complete LimeSurvey version number (& build)5.6.46 - 231121
I will donate to the project if issue is resolvedNo
BrowserFirefox
Database type & versionPostgresql 13.12.18
Server OS (if known)Centos 8.5
Webserver software & version (if known) Apache 2.4.37
PHP Version8.022

Users monitoring this issue

There are no users monitoring this issue.

Activities

mhladun

mhladun

2024-01-21 19:07

reporter   ~79254

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".

DenisChenu

DenisChenu

2024-01-22 08:39

developer   ~79259

The upload button should be disabled during the uploading of CSV imports.

:+1: easy to do

And including some user feedback like a progress bar, and a mechanism to keep the connection alive would be ideal.

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
But if we create something : we create it for more upload (VV for example)

Issue History

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