[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #12 from QA Administrators --- [Automated Action] NeedInfo-To-Unconfirmed -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 QA Administrators changed: What|Removed |Added Status|NEEDINFO|UNCONFIRMED Ever confirmed|1 |0 -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #11 from QA Administrators --- Dear Mubeen, This bug has been in NEEDINFO status with no change for at least 6 months. Please provide the requested information as soon as possible and mark the bug as UNCONFIRMED. Due to regular bug tracker maintenance, if the bug is still in NEEDINFO status with no change in 30 days the QA team will close the bug as INSUFFICIENTDATA due to lack of needed information. For more information about our NEEDINFO policy please read the wiki located here: https://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/NEEDINFO If you have already provided the requested information, please mark the bug as UNCONFIRMED so that the QA team knows that the bug is ready to be confirmed. Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-NeedInfo-Ping -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #10 from Mubeen --- 25.2.3.2 - Still having freeze issues. I had no choice but to downgrade to 24.8. When I downgraded the problem went away. The environment is a Windows server 2022 - Remote Desktop Session host. We have 4 hosts and all them them experienced the exact same issues with 25.2.x. There must be something specific to the server editions that's happening. The same issues doesn't happen on my Windows 10 Pro workstation. -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #9 from Mubeen --- 1) I am going to try 25.2.3.2 to see if that fixes the issue. 2) I can not seem to reproduce it on my workstation, but on 4 x Windows server 2022 session hosts, the current freezing problem still exists. This includes mainly generating labels in Writer, but problem of information too fast also present in Calc. 3) If the problem persists after 25.2.3.2 -- which is a production environment, I will downgrade to 24.8, since it's a production environment (user's complaining if things keep breaking.) -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496
--- Comment #8 from Mateusz Wlazłowski ---
I asked chatgpt to generate me a python script to insert rows below using
ExecuteDispatch(".uno:InsertRowsBefore");. Added those files in
~/.config/libreoffice/4/user/Scripts/python (for windows the path is similar).
Opened Calc, and ran them both from Tools > Macros > Organize Macros... >
Python and I saw no issues ; Calc inserted 100 rows before without pause
In order for me to confirm it please include :
1- A project which can be used to build the c++ code. The aim is to be able to
click on "build" and the executable will be built to reproduce the issue.
Include only the bare minimum of code in order to reproduce the code. The aim
is not to loose time understanding how your entire project is made, nor take
the time how it works. I'm thinking notably about UNO_ExecuteDispatch
2- Include the executable from said project and say how to use it along with
the file to automate. In the end, it is possible to quickly reproduce the issue
without spending too much time installing and configuring Visual Studio, or
dealing with the additional space it requires
I have a VM of windows so downloading executables like this is not an issue for
me
insert2.py
def insert_100_rows_before_row_3_dispatch():
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
controller = doc.getCurrentController()
frame = controller.getFrame()
# Select row 3 (index 2 in UNO)
cell = sheet.getCellByPosition(0, 2) # Column A, Row 3
controller.select(cell)
# Prepare dispatcher
ctx = XSCRIPTCONTEXT.getComponentContext()
dispatcher = ctx.ServiceManager.createInstanceWithContext(
"com.sun.star.frame.DispatchHelper", ctx
)
# Execute InsertRowsBefore 100 times
for _ in range(100):
dispatcher.executeDispatch(frame, ".uno:InsertRowsBefore", "", 0, ())
insert.py
def insert_100_rows_before_row_3():
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0] # Access the first sheet (you can change index if
needed)
row_index = 2 # Row 3 in user terms (0-based index)
num_rows_to_insert = 100
sheet.Rows.insertByIndex(row_index, num_rows_to_insert)
Version: 25.2.2.1 (X86_64) / LibreOffice Community
Build ID: 38d746d66d9b82fa248a2e90142b9dd3ddd1d6cd
CPU threads: 8; OS: Linux 6.11; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496
--- Comment #7 from Mubeen ---
We have essentially wrapped LibreOffice's executeDispatch function, which we
call UNO_ExecuteDispatch, so it resembles the VBA-like macro LibreOffice
creates when using the Macro Recorder.
For example to create a table in Writer, the VBA would look like this:
rem define variables
dim document as object
dim dispatcher as object
rem --
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem --
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "TableName"
args1(0).Value = ""
args1(1).Name = "Columns"
args1(1).Value = 40
args1(2).Name = "Rows"
args1(2).Value = 4
args1(3).Name = "Flags"
args1(3).Value = 9
dispatcher.executeDispatch(document, ".uno:InsertTable", "", 0, args1())
Our with our C++ wrappers it looks like this:
void InsertTable(int iRows, int iCols)
{
Sequence args1(4);
UNO_SeqArgMaker(args1[0], "TableName", "");
UNO_SeqArgMaker(args1[1], "Columns", ( sal_Int32 ) iCols);
UNO_SeqArgMaker(args1[2], "Rows", ( sal_Int32 ) iRows);
UNO_SeqArgMaker(args1[3], "Flags", ( sal_Int8 ) 9);
UNO_ExecuteDispatch(".uno:InsertTable", "", 0, &args1);
}
---
bool UNO_ExecuteDispatch(
std::string strUNOCommandURL,
std::string TargetFrameName,
::sal_Int32 SearchFlags,
const::css::uno::Sequence<::css::beans::PropertyValue>* arguments)
{
try
{
const::css::uno::Sequence<::css::beans::PropertyValue>
array(0);
if ( arguments == nullptr )
arguments = &array;
m_rDispatchService->executeDispatch(m_rDispatchReceivingWindow,
StringToOUString(strUNOCommandURL),
StringToOUString(TargetFrameName),
SearchFlags,
*arguments);
return true;
}
catch ( ... )
{
return false;
}
}
// SEQUENCE ARRAY HELPER FUNCTIONS
void UNO_SeqArgMaker(com::sun::star::beans::PropertyValue &argIndexValue,
std::string name, sal_Int32 value)
{
argIndexValue.Name = StringToOUString(name);
argIndexValue.Value <<= value;
}
void UNO_SeqArgMaker(com::sun::star::beans::PropertyValue &argIndexValue,
std::string name, sal_Int16 value)
{
argIndexValue.Name = StringToOUString(name);
argIndexValue.Value <<= value;
}
void UNO_SeqArgMaker(com::sun::star::beans::PropertyValue &argIndexValue,
std::string name, sal_Int8 value)
{
argIndexValue.Name = StringToOUString(name);
argIndexValue.Value <<= value;
}
void UNO_SeqArgMaker(com::sun::star::beans::PropertyValue &argIndexValue,
std::string name, sal_Bool value)
{
argIndexValue.Name = StringToOUString(name);
argIndexValue.Value <<= value;
}
void UNO_SeqArgMaker(com::sun::star::beans::PropertyValue &argIndexValue,
std::string name, std::string value)
{
argIndexValue.Name = StringToOUString(name);
argIndexValue.Value <<= StringToOUString(value);
}
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #6 from Mubeen --- Created attachment 200708 --> https://bugs.documentfoundation.org/attachment.cgi?id=200708&action=edit UNO_ExecuteDispatch C++ This is a small example of how UNO_ExecuteDispatch works. In our main application, we've built a wrapper class around it and it would be too large to post to illustrate a point. -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #5 from Mateusz Wlazłowski --- I'm not familiar with the UNO_ExecuteDispatch, but I can compile the c++ code if you provide the minimal example how you use it Could you also provide a file that you automate from the c++ code -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #3 from Mubeen --- It's not a particular file that has issues, it seems, when I am automating LibreOffice from a C++ application, LibreOffice (LO) often just freezes all of a sudden. This happens for both Calc and Writer. I have noticed if I purposely throttle things, then the problem of freezing goes away. For example, we generate jewelry labels in Writer to be printer on a label printer. Normally, we can generate 100 labels that have a data matrix barcode, price, description, etc. That will happen without a problem, but now, sometimes randomly after any unpredictable number of labels, LO just freezes. We have to kill LO from the Windows Task manager. I have tried putting in a Sleep of 400ms in between each label generation, which mostly helps -- not less chances of freezing, but occasionally it freezes. LO 24.8 and prior didn't have these issues. It's a new issue in 25.2.2.2 -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #4 from Mubeen --- Created attachment 200705 --> https://bugs.documentfoundation.org/attachment.cgi?id=200705&action=edit Labels that work sometimes but freezes at others This is an example file where we generated labels and they actually worked. At other times, a label will just stop mid-way. For example, the price won't come and LibreOffice (LO) just freezes before outputting the price and proceeding onto the rest of the labels to add to the document. -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 --- Comment #2 from Mubeen --- Version: 25.2.2.2 (X86_64) / LibreOffice Community Build ID: 7370d4be9e3cf6031a51beef54ff3bda878e3fac CPU threads: 20; OS: Windows 10 X86_64 (10.0 build 20348); UI render: default; VCL: win Locale: en-CA (en_CA); UI: en-US Calc: threaded -- You are receiving this mail because: You are the assignee for the bug.
[Bug 166496] Calc freezes when input queue is too fast after Pivot Table
https://bugs.documentfoundation.org/show_bug.cgi?id=166496 Mateusz Wlazłowski changed: What|Removed |Added CC||[email protected] Ever confirmed|0 |1 Status|UNCONFIRMED |NEEDINFO --- Comment #1 from Mateusz Wlazłowski --- Could you provide us an example file for us to reproduce ? Also, please check in safe mode in Help > Restart in Safe Mode and paste here the info of you libreoffice from help > About Libreoffice. There is an icon which paste the info into the clipboard Thanks -- You are receiving this mail because: You are the assignee for the bug.
