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

Container running under Podman errors with sqlite3.OperationalError: unable to open database file #202

Open
wadebee opened this issue Jan 2, 2023 · 2 comments

Comments

@wadebee
Copy link

wadebee commented Jan 2, 2023

Similar error to Issue #133 however the suggested --no-cache workaround does not work.

Podman is a drop-in replacement for Docker however it does not permit containers to run as root. Wondering if this issue is related to that?

Here is how I launch the container session:
podman run -it --rm --name b3vis-mnamer -v /home/wade/Movies:/mnt --entrypoint "/bin/sh" b3vis/mnamer:latest

Here is the mnamer command I used:
python -m mnamer -v --no-cache -r /mnt

system

  • date = 2023-01-02
  • platform = Linux-5.15.0-56-generic-x86_64-with
  • arguments = ['-v', '--no-cache', '-r', '/mnt']
  • cache location = /root/.cache/mnamer-py3.9.sql
  • python version = 3.9.9
  • mnamer version = 2.5.2
  • appdirs version = 1.4.4
  • babelfish version = 0.5.5-dev
  • guessit version = 3.2.0
  • requests version = 2.26.0
  • requests cache version = 0.5.2
  • teletype version = 1.1.0

settings

  • targets = [PosixPath('/mnt')]
  • batch = False
  • lower = False
  • recurse = True
  • scene = False
  • verbose = True
  • hits = 5
  • ignore = ['.sample.', '^RARBG.*']
  • language = None
  • mask = ['.avi', '.m4v', '.mp4', '.mkv', '.ts', '.wmv', '.srt', '.idx', '.sub']
  • no_guess = False
  • no_overwrite = False
  • no_style = False
  • movie_api = tmdb
  • movie_directory = None
  • movie_format = {name} ({year}).{extension}
  • episode_api = tvmaze
  • episode_directory = None
  • episode_format = {series} - S{season:02}E{episode:02} - {title}.{extension}
  • version = False
  • clear_cache = False
  • config_dump = False
  • config_ignore = False
  • config_path = None
  • id_imdb = None
  • id_tmdb = None
  • id_tvdb = None
  • id_tvmaze = None
  • no_cache = True
  • media = None
  • test = False
  • api_key_omdb = None
  • api_key_tmdb = None
  • api_key_tvdb = None
  • api_key_tvmaze = None
  • replace_before = {}
  • replace_after = {'&': 'and', '@': 'at', ';': ','}

targets

  • /mnt/SNL_SEASON_1_VOL_2/Saturday Night Live S1 E4.mkv
  • /mnt/SNL_SEASON_1_VOL_2/Saturday Night Live S1 V2 E2.mkv
  • /mnt/SNL_SEASON_1_VOL_2/Saturday Night Live S1 V2 E3.mkv
    Starting mnamer

Processing Episode "Saturday Night Live S1 E4.mkv" (2.26GB)
/mnt/SNL_SEASON_1_VOL_2/Saturday Night Live S1 E4.mkv
using tvmaze

search parameters

  • container = .mkv
  • group = None
  • language = None
  • language_sub = None
  • quality = None
  • synopsis = None
  • media = episode
  • series = Saturday Night Live
  • season = 1
  • episode = 4
  • date = None
  • title = None
  • id_tvdb = None
  • id_tvmaze = None
  • extension = .mkv

============================== CRASH REPORT BEGIN ==============================

--------------------------------- environment ----------------------------------

  • date = 2023-01-02
  • platform = Linux-5.15.0-56-generic-x86_64-with
  • arguments = ['-v', '--no-cache', '-r', '/mnt']
  • cache location = /root/.cache/mnamer-py3.9.sql
  • python version = 3.9.9
  • mnamer version = 2.5.2
  • appdirs version = 1.4.4
  • babelfish version = 0.5.5-dev
  • guessit version = 3.2.0
  • requests version = 2.26.0
  • requests cache version = 0.5.2
  • teletype version = 1.1.0

--------------------------------- stack trace ----------------------------------

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/mnamer/main.py", line 23, in main
frontend.launch()
File "/usr/local/lib/python3.9/site-packages/mnamer/frontends.py", line 80, in launch
self._process_targets()
File "/usr/local/lib/python3.9/site-packages/mnamer/frontends.py", line 97, in _process_targets
matches = target.query()
File "/usr/local/lib/python3.9/site-packages/mnamer/target.py", line 233, in query
for idx, result in enumerate(results, start=1):
File "/usr/local/lib/python3.9/site-packages/mnamer/providers.py", line 374, in search
yield from self._search_with_season_and_episode(
File "/usr/local/lib/python3.9/site-packages/mnamer/providers.py", line 437, in _search_with_season_and_episode
series_data = tvmaze_show_search(series)
File "/usr/local/lib/python3.9/site-packages/mnamer/endpoints.py", line 466, in tvmaze_show_search
status, content = request_json(url, parameters, cache=cache)
File "/usr/local/lib/python3.9/site-packages/mnamer/utils.py", line 264, in request_json
session = get_session()
File "/usr/local/lib/python3.9/site-packages/mnamer/utils.py", line 188, in get_session
get_session.session = requests_cache.CachedSession(
File "/usr/local/lib/python3.9/site-packages/requests_cache/core.py", line 73, in init
self.cache = backends.create_backend(backend, cache_name, backend_options)
File "/usr/local/lib/python3.9/site-packages/requests_cache/backends/init.py", line 63, in create_backend
return registry[backend_name](cache_name, **options)
File "/usr/local/lib/python3.9/site-packages/requests_cache/backends/sqlite.py", line 28, in init
self.responses = DbPickleDict(location + extension, 'responses', fast_save=fast_save)
File "/usr/local/lib/python3.9/site-packages/requests_cache/backends/storage/dbdict.py", line 62, in init
with self.connection() as con:
File "/usr/local/lib/python3.9/contextlib.py", line 119, in enter
return next(self.gen)
File "/usr/local/lib/python3.9/site-packages/requests_cache/backends/storage/dbdict.py", line 74, in connection
con = sqlite.connect(self.filename)
sqlite3.OperationalError: unable to open database file

=============================== CRASH REPORT END ===============================

Dang, it looks like mnamer crashed! Please consider filling an issue at
https://github.com/jkwill87/mnamer/issues along with this report.

@wadebee
Copy link
Author

wadebee commented Jan 2, 2023

I was able to work around this issue after noticing that the /root/.cache folder does not exist in this container.

mkdir /root/.cache

@c4tz
Copy link

c4tz commented Apr 14, 2024

I also just happened to find this problem. Apparently, requests_cache looks for the XDG_CACHE_HOME env var, so it will also fail for other users when the respective path is non-existent.

But I think the root of this problem lays in --no-cache being ignored by either mnamer or requests_cache itself (as you already wrote, @wadebee). It must have worked before, because I only stumbled upon this after re-building an older Docker image in which I installed mnamer (without using a pinned version, sadly, so I can't really tell since when it is broken). 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants