python_ooo_dev_tools
python_ooo_dev_tools copied to clipboard
ResourceWarning: subprocess is still running
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()