Bug 478508

Summary: Program freezes/crashes when loading a previously saved .lml file.
Product: [Applications] LabPlot2 Reporter: Francisco Ulloa <faulloaosorio>
Component: generalAssignee: Alexander Semke <alexander.semke>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version First Reported In: 2.10.1   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In: 3.0
Sentry Crash Report:
Attachments: Project file plus file imported into spreadsheet

Description Francisco Ulloa 2023-12-14 13:11:27 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1. Import an .csv file to a spreadsheet.
2. Save the project as .lml file.
3. Re open the project from a new window, by using "Open".

OBSERVED RESULT
The program freezes and the file is not charged after 20 minutes.

EXPECTED RESULT
The project is loaded and the saved progress is available again.


SOFTWARE/OS VERSIONS
Windows: 10 PRO 64-bit, (10.0, Build 19045)
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Alexander Semke 2023-12-14 14:53:41 UTC
(In reply to Francisco Ulloa from comment #0)
> SUMMARY
> ***
> NOTE: If you are reporting a crash, please try to attach a backtrace with
> debug symbols.
> See
> https://community.kde.org/Guidelines_and_HOWTOs/Debugging/
> How_to_create_useful_crash_reports
> ***
> 
> 
> STEPS TO REPRODUCE
> 1. Import an .csv file to a spreadsheet.
> 2. Save the project as .lml file.
> 3. Re open the project from a new window, by using "Open".
> 
> OBSERVED RESULT
> The program freezes and the file is not charged after 20 minutes.

Can you please attach your project file so we can try to reproduce this problem on our side? Thank you.
Comment 2 Francisco Ulloa 2023-12-14 15:13:46 UTC
Created attachment 164162 [details]
Project file plus file imported into spreadsheet

The zip folder contains the project file after importing the example file into a spreadsheet and saving it.
Comment 3 Alexander Semke 2023-12-14 16:06:02 UTC
(In reply to Francisco Ulloa from comment #2)
> Created attachment 164162 [details]
> Project file plus file imported into spreadsheet
> 
> The zip folder contains the project file after importing the example file
> into a spreadsheet and saving it.

your project file has 20 datetime columns with each having 21.5k rows. So, we have to read in total 430k datetime values. Parsing datetime is expensive and this explains why it takes so long. On my old Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz it takes 12s for example and on the newer AMD Ryzen 7 7700X it takes 6s only. So, the faster the hardware the faster the import in this case. 

We'll check how to further optimize the import datetime data so it's also faster on slower hardware.
Comment 4 Alexander Semke 2026-02-12 17:08:35 UTC
Git commit bbbe9e6bb8b195923a21ea5e2a531a699903789e by Alexander Semke.
Committed on 12/02/2026 at 07:34.
Pushed by asemke into branch 'master'.

Use base64 encoding also for datetime data - convert from QDateTime to qint64 and encode it prior to saving into XML. 
This is significantly faster than parsing QDateTime objects row by row in the XML.
FIXED-IN: 3.0

M  +1    -0    ChangeLog
M  +1    -1    src/backend/core/Project.cpp
M  +28   -13   src/backend/core/column/Column.cpp

https://invent.kde.org/education/labplot/-/commit/bbbe9e6bb8b195923a21ea5e2a531a699903789e
Comment 5 Alexander Semke 2026-02-12 21:51:36 UTC
(In reply to Francisco Ulloa from comment #0)
> SUMMARY
> ***
> NOTE: If you are reporting a crash, please try to attach a backtrace with
> debug symbols.
> See
> https://community.kde.org/Guidelines_and_HOWTOs/Debugging/
> How_to_create_useful_crash_reports
> ***
> 
> 
> STEPS TO REPRODUCE
> 1. Import an .csv file to a spreadsheet.
> 2. Save the project as .lml file.
> 3. Re open the project from a new window, by using "Open".
> 
> OBSERVED RESULT
> The program freezes and the file is not charged after 20 minutes.
Thank you for reporting this issues. We finalize got to this problem and optimized the handling of datetime data. Save and load are significantly faster now in the coming release 3.0. In case you want to try it out earlier, please check our current nightly builds.