I’m trying to do bench init
following init.sh
file in hrms github. Here is my command in my server:
bench init --skip-redis-config-generation frappe-bench
Somehow, I got this TimeoutError from trying connecting to redis.
Setting Up Environment
$ python3 -m venv env
$ /home/fahadh/frappe-bench/env/bin/python -m pip install --quiet --upgrade pip
$ /home/fahadh/frappe-bench/env/bin/python -m pip install --quiet wheel
Getting frappe
$ git clone https://github.com/frappe/frappe.git --depth 1 --origin upstream
Cloning into 'frappe'...
remote: Enumerating objects: 3319, done.
remote: Counting objects: 100% (3319/3319), done.
remote: Compressing objects: 100% (2812/2812), done.
remote: Total 3319 (delta 459), reused 2862 (delta 412), pack-reused 0 (from 0)
Receiving objects: 100% (3319/3319), 15.29 MiB | 8.38 MiB/s, done.
Resolving deltas: 100% (459/459), done.
Installing frappe
$ /home/fahadh/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/fahadh/frappe-bench/apps/frappe
$ yarn install --check-files
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "less@^4.x".
warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "stylus@^0.x".
warning " > @vue/component-compiler@4.2.4" has unmet peer dependency "vue-template-compiler@*".
[5/5] Building fresh packages...
Done in 11.32s.
Found existing apps updating states...
$ supervisorctl restart frappe:
unix:///var/run/supervisor.sock no such file
WARN: restarting supervisor group `frappe:` failed. Use `bench restart` to retry.
$ bench build
Traceback (most recent call last):
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 357, in connect
sock = self.retry.call_with_retry(
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/retry.py", line 67, in call_with_retry
raise error
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/retry.py", line 62, in call_with_retry
return do()
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 358, in <lambda>
lambda: self._connect(), lambda error: self.disconnect(error)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 730, in _connect
raise err
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 718, in _connect
sock.connect(socket_address)
TimeoutError: [Errno 110] Connection timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/fahadh/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
return super().invoke(ctx)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1694, in invoke
super().invoke(ctx)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 788, in invoke
return __callback(*args, **kwargs)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/fahadh/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 107, in app_group
ctx.obj = CliCtxObj(sites=get_sites(site), force=force, verbose=verbose, profile=profile)
File "/home/fahadh/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 119, in get_sites
elif default_site := frappe.get_conf().default_site:
File "/home/fahadh/frappe-bench/apps/frappe/frappe/config.py", line 155, in get_conf
with frappe.init_site(site):
File "/home/fahadh/frappe-bench/apps/frappe/frappe/__init__.py", line 368, in __enter__
init(self.site)
File "/home/fahadh/frappe-bench/apps/frappe/frappe/__init__.py", line 268, in init
setup_redis_cache_connection()
File "/home/fahadh/frappe-bench/apps/frappe/frappe/__init__.py", line 397, in setup_redis_cache_connection
client_cache = ClientCache()
File "/home/fahadh/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 480, in __init__
self.invalidator_id = self.invalidator.client_id()
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/commands/core.py", line 581, in client_id
return self.execute_command("CLIENT ID", **kwargs)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/client.py", line 559, in execute_command
return self._execute_command(*args, **options)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/client.py", line 565, in _execute_command
conn = self.connection or pool.get_connection(command_name, **options)
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 1422, in get_connection
connection.connect()
File "/home/fahadh/frappe-bench/env/lib/python3.10/site-packages/redis/connection.py", line 361, in connect
raise TimeoutError("Timeout connecting to server")
redis.exceptions.TimeoutError: Timeout connecting to server
Timeout connecting to server
subprocess.CalledProcessError: Command 'bench build' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/fahadh/.local/lib/python3.10/site-packages/bench/commands/make.py", line 75, in init
init(
File "/home/fahadh/.local/lib/python3.10/site-packages/bench/utils/render.py", line 105, in wrapper_fn
return fn(*args, **kwargs)
File "/home/fahadh/.local/lib/python3.10/site-packages/bench/utils/system.py", line 112, in init
build_assets(bench_path=path)
File "/home/fahadh/.local/lib/python3.10/site-packages/bench/utils/bench.py", line 384, in build_assets
exec_cmd(command, cwd=bench_path, env=env)
File "/home/fahadh/.local/lib/python3.10/site-packages/bench/utils/__init__.py", line 181, in exec_cmd
raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: bench build
ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]:
Aborted!
This is solved by running redis server to port 11000 and 13000. But, why should I have redis server ready? Because when I tried in inside docker container that I create like this:
docker run -dt --entrypoint /bin/bash --name frappe frappe/bench:latest
and then I exec inside the container with
docker exec -it frappe /bin/bash
and then do bench init
bench init --skip-redis-config-generation frappe-bench
It’s doing fine without any running redis server. What could be wrong with my init?