Bug 162731 - Solver Progress Dialog does not update while solver is running (dialog remains frozen)
Summary: Solver Progress Dialog does not update while solver is running (dialog remain...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
7.6.0.3 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Solver
  Show dependency treegraph
 
Reported: 2024-08-31 21:53 UTC by Rafael Lima
Modified: 2024-11-14 05:21 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments
Screenshot showing the problem (frozen Progress dialog) (57.79 KB, image/png)
2024-08-31 21:53 UTC, Rafael Lima
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rafael Lima 2024-08-31 21:53:23 UTC
Created attachment 196154 [details]
Screenshot showing the problem (frozen Progress dialog)

When running a solver model that takes a bit longer to finish, the Progress dialog is shown to the user. However, after it is shown, it remains frozen and is not updated.

Steps to reproduce
1) Open attachment 196153 [details] (from bug 160062)
2) Go to the BinPacking sheet
3) Open the solver dialog Tools - Solver
4) Click Options and make sure the solver engine is either CoinMP or LpSolve
5) Click Solve
6) The Progress dialog will open, but it will not be repainted (see attached screenshot)

I was able to reproduce this issue in gtk3 and Windows as well.

The Progress dialog works fine if the engine is DEPS or SCO (nlpsolver).

System info

Version: 24.2.5.2 (X86_64) / LibreOffice Community
Build ID: 420(Build:2)
CPU threads: 16; OS: Linux 6.8; UI render: default; VCL: kf5 (cairo+xcb)
Locale: pt-BR (pt_BR.UTF-8); UI: en-US
Ubuntu package version: 4:24.2.5-0ubuntu0.24.04.2
Calc: threaded
Comment 1 Buovjaga 2024-11-13 17:16:47 UTC
With kf6 and gtk3, I don't see the progress dialog. With gen, I see it as a black square. With Window, I get instead a Warning dialog: Invalid input. If I close it, I see the progress dialog normally, but there is no progress.

I see the black square with gen in the last commit of 7.6 bibisect repo, but in the oldest commit it says there is no solution. Maybe the solving success depends on some of your enhancements?

Arch Linux 64-bit
Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 921bc202246843d444d6e72a28457fd952e5333e
CPU threads: 8; OS: Linux 6.11; UI render: default; VCL: kf6 (cairo+wayland)
Locale: fi-FI (fi_FI.UTF-8); UI: en-US
Calc: CL threaded
Built on 13 November 2024

Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 58948dd22464c38b2a042022f4d549ca926f0476
CPU threads: 2; OS: Windows 11 X86_64 (10.0 build 22621); UI render: Skia/Raster; VCL: win
Locale: en-US (en_US); UI: en-GB
Calc: threaded
Comment 2 Rafael Lima 2024-11-13 21:52:03 UTC
(In reply to Buovjaga from comment #1)
> With kf6 and gtk3, I don't see the progress dialog.

I confirm that with kf6 the progress window does not even show. LO keeps frozen until a solution is found.

Version: 24.8.3.1 (X86_64)
Build ID: 480(Build:1)
CPU threads: 12; OS: Linux 6.11; UI render: default; VCL: kf6 (cairo+wayland)
Locale: pt-BR (en_US.UTF-8); UI: en-US
Calc: threaded

> Maybe the solving success depends on some of your enhancements?

No, I did not change this part of the code.

Code pointer is ScOptSolverDlg::CallSolver() in:

/core/sc/source/ui/miscdlgs/optsolver.cxx

I tried to change various things to make it appear, but I was not successful.
Comment 3 Buovjaga 2024-11-14 05:21:34 UTC
(In reply to Rafael Lima from comment #2)
> > Maybe the solving success depends on some of your enhancements?
> 
> No, I did not change this part of the code.
> 
> Code pointer is ScOptSolverDlg::CallSolver() in:
> 
> /core/sc/source/ui/miscdlgs/optsolver.cxx
> 
> I tried to change various things to make it appear, but I was not successful.

Yeah, I was just wondering if there would be another example that we could use to check with older versions and see, if this is a regression.