Bug 157815 - LibreOffice becomes an unkillable process after loading a file with embedded fonts.
Summary: LibreOffice becomes an unkillable process after loading a file with embedded ...
Status: UNCONFIRMED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: filters and storage (show other bugs)
Version:
(earliest affected)
6.4.0.3 release
Hardware: x86-64 (AMD64) Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-18 19:36 UTC by constantinides
Modified: 2023-12-28 22:31 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description constantinides 2023-10-18 19:36:56 UTC
This problem only seems to occur when LibreOffice is started from a service on Windows Server 2016.

Steps to reproduce:
1. Create a new .odt file with embedded fonts by going to File -> Properties -> checking "Embed fonts in the document"
2. Create a new .NET Windows service.  (It might apply to non-.NET services as well, I haven't tried)
3. In the OnStart() method of the service, start the LibreOffice process with the "--convert-to pdf" argument and passing in the file path of the embedded fonts document from step 1.  I'm using .NET 4.6.1 and have included sample code below.

Expected Result: LibreOffice converts the ODT file to a PDF file.
Actual Result: LibreOffice doesn't create the PDF file and hangs.  Any attempts to kill the process fail, even with admin rights.

Other Notes:
1. This bug was introduced with version 6.4.0.1.  Version 6.3.6.2 works fine.
2. This also happens when trying to convert from .docx to .odt, so it doesn't seem to be related to the file formats.
3. The code below works fine when run from a normal program (not a service), or when run from a service on Windows Server 2019.

---------------------------------------------------
-- C# code in the Windows service OnStart() method
---------------------------------------------------

const string inputFilePath = @"C:\Temp\FileConverterTest\Files_Input\TestEmbeddedFonts.odt";
const string outputFolderPath = @"C:\Temp\FileConverterTest\Files_Output";

ProcessStartInfo info = new ProcessStartInfo(
	@"C:\Program Files\LibreOffice\program\soffice.exe", 
	"--convert-to pdf \"" + inputFilePath + "\" --outdir \"" + outputFolderPath + "\"");
info.WindowStyle = ProcessWindowStyle.Hidden;
info.CreateNoWindow = false;
info.UseShellExecute = false;
Process.Start(info);
Comment 1 Buovjaga 2023-10-27 13:47:16 UTC
(In reply to constantinides from comment #0)
> 1. This bug was introduced with version 6.4.0.1.  Version 6.3.6.2 works fine.

In this case you could try to bisect it with the Windows 6.4 repository.
https://wiki.documentfoundation.org/QA/Bibisect/Bibisecting_tutorial
https://wiki.documentfoundation.org/QA/Bibisect
https://wiki.documentfoundation.org/QA/Bibisect/Windows
https://bibisect.libreoffice.org/win64-6.4

Let me know, if you need help.
Comment 2 Stéphane Guillou (stragu) 2023-11-04 19:52:27 UTC
If you are not able to bibisect the issue, could you please provide more information on how to achieve step 2: "Create a new .NET Windows service."
Also: Do you still reproduce the issue in a currently supported LibreOffice version? Please test 7.6.
Thank you!
Comment 3 constantinides 2023-11-07 19:07:35 UTC
I'll setup a VM to try bibisecting and will report back on that.

To expand on what I meant by "Create a new .NET Window service":
1. Open Visual Studio
2. Create a new Project
3. Select type: Visual C# -> Windows Desktop -> Windows Service (.NET Framework)
4. Put the code I have in the description in the OnStart() method.

However, I've since found another way to test that doesn't require .NET.  The problem also occurs if you try to start LibreOffice from a Windows task with the option to "Run whether user is logged on or not."
To create and run such a task:
1. Start -> Windows Administrative Tools -> Task Scheduler
2. Select "Task Scheduler Library" on the left side of the window.
3. Click "Create Task" on the right side of the window
4. Enter a Name of "LibreOffice Test"
5. Select "Run whether user is logged on or not."
6. On the Actions tab, click the "New..." button.
7. Program/Script: "C:\Program Files\LibreOffice\program\soffice.exe"
8. Add arguments: --convert-to pdf "C:\Temp\FileConverterTest\Files_Input\TestEmbeddedFonts.odt" --outdir "C:\Temp\FileConverterTest\Files_Output"
9. Click ok to create the action
10. Click ok to create the task
11. Select the task from the list and click "Run" on the right side of the screen.

And I have tested this problem with LibreOffice version 7.6.2 and it is still present.