Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autocomplete fails ambiguously on read-only root filesystem. #6484

Open
supernomad opened this issue Dec 12, 2024 · 0 comments
Open

Autocomplete fails ambiguously on read-only root filesystem. #6484

supernomad opened this issue Dec 12, 2024 · 0 comments
Labels

Comments

@supernomad
Copy link
Contributor

supernomad commented Dec 12, 2024

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_settings

It 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

  1. Launch container with a read-only filesystem.
  2. 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants