-
Notifications
You must be signed in to change notification settings - Fork 90
Open
Labels
Description
Description
When running Deephaven in a container, namely while in k8s, and the root filesystem is set to read-only. The autocomplete fails with the following message:
qtp24404443-57 | .c.ConsoleServiceGrpcImpl | Autocomplete package not found; disabling autocomplete.
qtp24404443-57 | .c.ConsoleServiceGrpcImpl | Do you need to install the autocomplete package?
qtp24404443-57 | .c.ConsoleServiceGrpcImpl | pip install deephaven-core[autocomplete]==<version>
qtp24404443-57 | .c.ConsoleServiceGrpcImpl | Add the jvm flag '-Ddeephaven.console.autocomplete.disable=true' to disable this message.
There are no other errors, however if you run the command that produces that output on startup:
from deephaven_internal.auto_completer import jedi_settingsIt returns the actual error:
r-Scheduler-Serial-1 | .c.ConsoleServiceGrpcImpl | Error running script: java.lang.RuntimeException: Error in Python interpreter:
Type: <class 'OSError'>
Value: [Errno 30] Read-only file system: '/root/.cache/jedi'
Line: 225
Namespace: makedirs
File: /usr/lib/python3.10/os.py
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/opt/deephaven/venv/lib/python3.10/site-packages/deephaven_internal/auto_completer/__init__.py", line 25, in <module>
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/__init__.py", line 783, in preload_module
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/helpers.py", line 487, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/__init__.py", line 215, in complete
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/completion.py", line 170, in complete
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/completion.py", line 284, in _complete_python
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/api/completion.py", line 385, in _complete_trailer
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/helpers.py", line 79, in infer_call_of_leaf
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/context.py", line 224, in infer_node
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 157, in infer_node
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 170, in _infer_node_if_inferred
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/cache.py", line 44, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 175, in _infer_node_cached
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/debug.py", line 81, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 83, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 185, in _infer_node
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 305, in infer_atom
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/context.py", line 77, in py__getattribute__
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/base_value.py", line 430, in from_sets
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/context.py", line 77, in <genexpr>
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/names.py", line 281, in infer
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/plugins/__init__.py", line 21, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/plugins/stdlib.py", line 878, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/plugins/django.py", line 177, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/syntax_tree.py", line 762, in tree_name_to_values
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/cache.py", line 44, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 53, in infer_import
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 116, in _prepare_infer_import
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 296, in follow
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 376, in import_module_by_names
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 377, in <listcomp>
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/plugins/__init__.py", line 21, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/plugins/flask.py", line 20, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/gradual/typeshed.py", line 115, in wrapper
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/base_value.py", line 430, in from_sets
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/gradual/typeshed.py", line 116, in <genexpr>
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 446, in import_module
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/imports.py", line 461, in _load_python_module
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/__init__.py", line 199, in parse
File "/opt/deephaven/venv/lib/python3.10/site-packages/jedi/inference/__init__.py", line 196, in parse_and_get_code
File "/opt/deephaven/venv/lib/python3.10/site-packages/parso/grammar.py", line 114, in parse
File "/opt/deephaven/venv/lib/python3.10/site-packages/parso/cache.py", line 127, in load_module
File "/opt/deephaven/venv/lib/python3.10/site-packages/parso/cache.py", line 136, in _load_from_file_system
File "/opt/deephaven/venv/lib/python3.10/site-packages/parso/cache.py", line 263, in _get_hashed_path
File "/opt/deephaven/venv/lib/python3.10/site-packages/parso/cache.py", line 274, in _get_cache_directory_path
File "/usr/lib/python3.10/os.py", line 215, in makedirs
File "/usr/lib/python3.10/os.py", line 225, in makedirs
at org.jpy.PyLib.executeCode(Native Method)
at org.jpy.PyObject.executeCode(PyObject.java:138)
at io.deephaven.engine.util.PythonEvaluatorJpy.evalScript(PythonEvaluatorJpy.java:73)
at io.deephaven.integrations.python.PythonDeephavenSession.lambda$evaluate$1(PythonDeephavenSession.java:229)
at io.deephaven.util.locks.FunctionalLock.doLockedInterruptibly(FunctionalLock.java:51)
at io.deephaven.integrations.python.PythonDeephavenSession.evaluate(PythonDeephavenSession.java:229)
at io.deephaven.engine.util.AbstractScriptSession.lambda$evaluateScript$0(AbstractScriptSession.java:166)
at io.deephaven.engine.context.ExecutionContext.lambda$apply$0(ExecutionContext.java:196)
at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:207)
at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:195)
at io.deephaven.engine.util.AbstractScriptSession.evaluateScript(AbstractScriptSession.java:166)
at io.deephaven.engine.util.DelegatingScriptSession.evaluateScript(DelegatingScriptSession.java:72)
at io.deephaven.engine.util.ScriptSession.evaluateScript(ScriptSession.java:75)
at io.deephaven.server.console.ConsoleServiceGrpcImpl.lambda$executeCommand$5(ConsoleServiceGrpcImpl.java:192)
at io.deephaven.server.session.SessionState$ExportObject.doExport(SessionState.java:1001)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at io.deephaven.server.runner.scheduler.SchedulerModule$ThreadFactory.lambda$newThread$0(SchedulerModule.java:100)
at java.base/java.lang.Thread.run(Thread.java:1583)
Steps to reproduce
- Launch container with a read-only filesystem.
- Load the IDE and observe the failure.
Expected results
Expected auto-complete to work or at least display a proper error as to why it isn't working while using a read-only root filesystem.
Actual results
An error was encountered that led us to believe we had a dependency issue instead of a configuration issue.
Versions
- Deephaven: 0.37.0
- OS: Container OS (no idea on version)
- Browser: Brave Version 1.69.160 Chromium: 128.0.6613.114
- Docker: K8s no clue on version of containerd itself.