Error while upgrading from 0.67 to 0.68

Hi!
As the headline mentioned while I’m upgrading to 0.68, I’m getting a " Please Wait " and nothing happens.
it’s important to note that it occurs only while I’m deploying on Docker with no write permission to disk.

  1. did something change between these 2 releases? ( did git compare. came up with nothing)
  2. How can I debug it? after deployment, there are no available logs.

Thanks!

Hey @amitg1,

Can you send a screen shot of your terminal while your pip install --upgrade streamlit?
How long are you sitting at the “please wait”?

Let me know and I will see if I can find an answer for you!
Happy Streamlit-ing!
Marisa

Hi!

Here is the stack trace when running streamlit run run.py:

Exception in thread ScriptRunner.scriptThread:
Traceback (most recent call last):
File “/usr/local/lib/python3.6/threading.py”, line 916, in _bootstrap_inner
self.run()
File “/usr/local/lib/python3.6/threading.py”, line 864, in run
self._target(*self._args, **self._kwargs)
File “/usr/local/lib/python3.6/site-packages/streamlit/script_runner.py”, line 162, in _process_request_queue
self._run_script(data)
File “/usr/local/lib/python3.6/site-packages/streamlit/script_runner.py”, line 261, in _run_script
self.on_event.send(ScriptRunnerEvent.SCRIPT_STARTED)
File “/usr/local/lib/python3.6/site-packages/blinker/base.py”, line 267, in send
for receiver in self.receivers_for(sender)]
File “/usr/local/lib/python3.6/site-packages/blinker/base.py”, line 267, in
for receiver in self.receivers_for(sender)]
File “/usr/local/lib/python3.6/site-packages/streamlit/report_session.py”, line 268, in _on_scriptrunner_event
self._maybe_enqueue_initialize_message()
File “/usr/local/lib/python3.6/site-packages/streamlit/report_session.py”, line 391, in _maybe_enqueue_initialize_message
imsg.user_info.installation_id = Installation.instance().installation_id
File “/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py”, line 81, in instance
cls._instance = Installation()
File “/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py”, line 87, in init
uuid.uuid5(uuid.NAMESPACE_DNS, _get_stable_random_id())
File “/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py”, line 62, in _get_stable_random_id
with file_util.streamlit_write(filepath) as output:
File “/usr/local/lib/python3.6/contextlib.py”, line 81, in enter
return next(self.gen)
File “/usr/local/lib/python3.6/site-packages/streamlit/file_util.py”, line 104, in streamlit_write
os.makedirs(os.path.dirname(path), exist_ok=True)
File “/usr/local/lib/python3.6/os.py”, line 220, in makedirs
mkdir(name, mode)
OSError: [Errno 30] Read-only file system: ‘/home/jenkins/.streamlit’

1 Like

Hey @amitg1,

Sorry, its been a bit busy here and I have only just saw that you sent your error log through. I have passed this on to our team to see if we can find some answers for you.

Also, have you tried this since the newest Streamlit version came out (0.70.0)?

Happy Streamlit-ing!
Marisa

Hey @amitg1,

Based on the error logs, you have a read only file system at /home/jenkins/.streamlit that our system should normally have write access (~/.streamlit is our home directory). Our team is looking into solutions on our end, but I would like to try and get you un-stuck ASAP.

Can you run the following in your terminal to give write permissions to this directory:

chmod +w /home/jenkins/.streamlit

The problem seems to be stemming from one of the recent pull requests (link) that helps us track metrics.

Just to reassure you:

  • We collect summary statistics to improve Streamlit
  • Streamlit open-source software does not — and never will — see or store any of the data you put into any app that you develop with it. That data belongs to you and only you.
  • The open-source software does, by default, collect summary statistics. You can easily turn off summary statistics when using our open source software by changing your config file to set browser.gatherUsageStats = false.
  • You can find more details on how to turn off this feature here.
  • here is a link to our privacy policy page if you want to know more

Hope this helps,
Happy Streamlit-ing!
Marisa

Hi,
Thanks for the quick response!
1.I do have gatherUsageState = false inside my project .streamlit/config.toml.

2.I even copied my config.toml to ~/.streamlit/config.toml in case the project config did not override the general one.

still having the same problem:

2020-11-08T14:12:43.149453931Z During handling of the above exception, another exception occurred:
2020-11-08T14:12:43.149457425Z 
2020-11-08T14:12:43.149460712Z Traceback (most recent call last):
2020-11-08T14:12:43.149464027Z   File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
2020-11-08T14:12:43.149467537Z     self.run()
2020-11-08T14:12:43.149470789Z   File "/usr/local/lib/python3.6/threading.py", line 864, in run
2020-11-08T14:12:43.149474268Z     self._target(*self._args, **self._kwargs)
2020-11-08T14:12:43.149477587Z   File "/usr/local/lib/python3.6/site-packages/streamlit/script_runner.py", line 162, in _process_request_queue
2020-11-08T14:12:43.149481138Z     self._run_script(data)
2020-11-08T14:12:43.149484417Z   File "/usr/local/lib/python3.6/site-packages/streamlit/script_runner.py", line 261, in _run_script
2020-11-08T14:12:43.149487934Z     self.on_event.send(ScriptRunnerEvent.SCRIPT_STARTED)
2020-11-08T14:12:43.149491298Z   File "/usr/local/lib/python3.6/site-packages/blinker/base.py", line 267, in send
2020-11-08T14:12:43.149494799Z     for receiver in self.receivers_for(sender)]
2020-11-08T14:12:43.149498145Z   File "/usr/local/lib/python3.6/site-packages/blinker/base.py", line 267, in <listcomp>
2020-11-08T14:12:43.149501759Z     for receiver in self.receivers_for(sender)]
2020-11-08T14:12:43.149505519Z   File "/usr/local/lib/python3.6/site-packages/streamlit/report_session.py", line 268, in _on_scriptrunner_event
2020-11-08T14:12:43.149509089Z     self._maybe_enqueue_initialize_message()
2020-11-08T14:12:43.149512398Z   File "/usr/local/lib/python3.6/site-packages/streamlit/report_session.py", line 391, in _maybe_enqueue_initialize_message
2020-11-08T14:12:43.14951598Z     imsg.user_info.installation_id = Installation.instance().installation_id
2020-11-08T14:12:43.149519402Z   File "/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py", line 81, in instance
2020-11-08T14:12:43.149522923Z     cls._instance = Installation()
2020-11-08T14:12:43.149526233Z   File "/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py", line 87, in __init__
2020-11-08T14:12:43.149529789Z     uuid.uuid5(uuid.NAMESPACE_DNS, _get_stable_random_id())
2020-11-08T14:12:43.149533154Z   File "/usr/local/lib/python3.6/site-packages/streamlit/metrics_util.py", line 62, in _get_stable_random_id
2020-11-08T14:12:43.149536706Z     with file_util.streamlit_write(filepath) as output:
2020-11-08T14:12:43.149540066Z   File "/usr/local/lib/python3.6/contextlib.py", line 81, in __enter__
2020-11-08T14:12:43.149543579Z     return next(self.gen)
2020-11-08T14:12:43.149546835Z   File "/usr/local/lib/python3.6/site-packages/streamlit/file_util.py", line 115, in streamlit_write
2020-11-08T14:12:43.149550392Z     raise util.Error("\n".join(msg))
2020-11-08T14:12:43.149553838Z streamlit.util.Error: Unable to write file: /home/jenkins/.streamlit/.stable_random_id

  1. When executing streamlit config show in the pod the output is not the same config I copied earlier.
    (it’s the initial config from https://docs.streamlit.io/en/stable/streamlit_configuration.html#set-configuration-options)
    BUT if i execute cat ~/.streamlit/config.toml I do see the right config. weird

  2. The next action was to execute it inside the mentioned pod
    streamlit run run.py --browser.gatherUsageStats false/streamlit run run.py --browser.gatherUsageStats=false
    still, same error

  3. My conclusion is that somehow in the update from 0.67 to 0.68 the ability to use a custom config something stopped working.
    AND there was a breaking change that requires writing to disk on versions bigger than 0.67.

My next action is to add “chmod +w /home/jenkins/.streamlit” which i don’t want to do but ill use as last resort.

Thanks