Giter VIP home page Giter VIP logo

Comments (9)

regebro avatar regebro commented on July 21, 2024

I improved the handling of signals, some signals might have resulted in Unoserver existing without Libreoffice exiting. I believe that now Unoserver should not quit and leave LibreOffice hanging, so that should at least solve THAT.

Why soffice is using 100% and doesn't exist, well, that's a different mystery. Can you try converting those specific files with just soffice?

from unoserver.

Rafiot avatar Rafiot commented on July 21, 2024

Thank you for the update, I'll update the version and see what happen. And I'll give it a shot as you suggested to see what happen.

Are you aware of a way to unceremoniously kill the soffice process after a timeout? Especially for the headless runs, we really don't want it to run forever.

from unoserver.

Rafiot avatar Rafiot commented on July 21, 2024

Okay, seems it's because killing unoserver (SIGTERM) doesn't kill soffice, and I have then multiple soffice processes trying to connect to the socket.

Is there a preferred way to gracefully stop unoserver so it properly kills the soffice process?

from unoserver.

mmeisso avatar mmeisso commented on July 21, 2024

Hi,

It seems that unoserver is ignoring completely signals when hanging on

document.storeToURL(export_path, output_props)

I could only kill it with a sigkill, which let intact soffice.bin processes. I'm running server and convert on different containers, so i can't kill by hand soffice.bin "incriminated" processes. If someone knows how to kill that...

from unoserver.

regebro avatar regebro commented on July 21, 2024

I could probably make the converter easier to kill in that situation, but that wouldn't change anything, the server is still hanging. There's no way for the converter to kill the server if it's hanging. Your problem here isn't with the converter, but with the libreoffice process.

from unoserver.

regebro avatar regebro commented on July 21, 2024

@Rafiot It's really hard to test how it behaves in different situations, but in the update what I did is that when unoserver gets a sigterm it just passes that on to soffice. It shouldn't exit unless soffice exits. If it does, just sigkill it instead, then it will send sigkill to soffice, and it will exit.

from unoserver.

Rafiot avatar Rafiot commented on July 21, 2024

I just noted that the problem mostly occurs for me on an ubuntu 20.04 server, but not on my dev box running Ubuntu 21.10. Could it be that the version of libreoffice on ubuntu 20.04 is not handling the signal properly?

And I'm thinking of an other way to handle the case: right now, I'm just launching unoserver with Popen, but I should use the UnoServer class instead and launch it with start so I have the libreoffice process object that I can check and kill it if need to.

from unoserver.

regebro avatar regebro commented on July 21, 2024

Yeah, if you are running it from inside python, and are using the system python, using the class could be a good way to do it.

from unoserver.

Rafiot avatar Rafiot commented on July 21, 2024

It seems I solved it with a more recent libreoffice, and using the class directly.

from unoserver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.