python_ooo_dev_tools icon indicating copy to clipboard operation
python_ooo_dev_tools copied to clipboard

ResourceWarning: subprocess is still running

Open JulienPalard opened this issue 4 months ago • 8 comments

Using ooo-dev-tools 0.47.18 (also on 0.47.17 and I don't remember for previous ones) I'm getting a ResourceWarning about un unkilled subprocess:

$ PYTHONTRACEMALLOC=20 python repro.py
05/10/2024 09:24:20 - DEBUG - LoInst - Root: LoInst Init
05/10/2024 09:24:20 - DEBUG - LoInst - Root: LoInst created
05/10/2024 09:24:20 - DEBUG - LoInst - Root: load_office()
05/10/2024 09:24:20 - DEBUG - LoInst - Root: on_reset() Triggering RESET
05/10/2024 09:24:20 - DEBUG - LoInst - Root: on_reset() RESET Triggered. Current Doc is None
05/10/2024 09:24:20 - DEBUG - LoInst - Root: on_office_loading() Triggering OFFICE_LOADING
05/10/2024 09:24:20 - DEBUG - LoInst - Root: on_office_loading() Triggered OFFICE_LOADING.
Warning: failed to launch javaldx - java may not function correctly
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_loaded() Triggering OFFICE_LOADED
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_loaded() Triggered OFFICE_LOADED
05/10/2024 09:24:21 - DEBUG - LoInst - Root: load_office() Loaded Office
05/10/2024 09:24:21 - DEBUG - LoInst - Root: Closing Office
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_closing() Triggering OFFICE_CLOSING
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_closing() Triggered OFFICE_CLOSING
05/10/2024 09:24:21 - DEBUG - LoInst - Root: Office terminated
05/10/2024 09:24:21 - DEBUG - LoInst - Root: Office bridge has gone!!
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_closed() Triggering OFFICE_CLOSED
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_office_closed() Triggered OFFICE_CLOSED
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_reset() Triggering RESET
05/10/2024 09:24:21 - DEBUG - LoInst - Root: on_reset() RESET Triggered. Current Doc is None
/usr/lib/python3.12/subprocess.py:1127: ResourceWarning: subprocess 1006971 is still running
  _warn("subprocess %s is still running" % self.pid,
Object allocated at (most recent call last):
  File "repro.py", lineno 12
    b()
  File "repro.py", lineno 9
    with Lo.Loader(Lo.ConnectSocket(headless=True), opt=options) as loader:
  File ".venv/lib/python3.12/site-packages/ooodev/loader/lo.py", lineno 212
    self.loader = Lo.load_office(
  File ".venv/lib/python3.12/site-packages/ooodev/loader/lo.py", lineno 752
    result = cls._lo_inst.load_office(connector=connector, cache_obj=cache_obj)
  File ".venv/lib/python3.12/site-packages/ooodev/loader/inst/lo_inst.py", lineno 730
    lo_loader = LoLoader(connector=b_connector, cache_obj=cache_obj, opt=opt)
  File ".venv/lib/python3.12/site-packages/ooodev/loader/inst/lo_loader.py", lineno 64
    self._lo_inst.connect()
  File ".venv/lib/python3.12/site-packages/ooodev/conn/connect.py", lineno 612
    self._popen()
  File ".venv/lib/python3.12/site-packages/ooodev/conn/connect.py", lineno 667
    self._popen_from_args(args, shutdown)
  File ".venv/lib/python3.12/site-packages/ooodev/conn/connect.py", lineno 292
    self._soffice_process = subprocess.Popen(

with repro.py containing:

import logging

from ooodev.loader.inst.options import Options as LoOptions
from ooodev.loader.lo import Lo


def b():
    options = LoOptions(log_level=logging.DEBUG)
    with Lo.Loader(Lo.ConnectSocket(headless=True), opt=options) as loader:
        pass

b()

JulienPalard avatar Oct 05 '24 07:10 JulienPalard