Describe the bug
Using the 8.0.3-bookworm
Docker Image, I'm getting the following error:
1:M 08 Jul 2025 19:44:16.505 # Module /usr/local/lib/redis/modules//redisbloom.so initialization failed. Module not loaded
1:M 08 Jul 2025 19:44:16.505 # Can't load module from /usr/local/lib/redis/modules//redisbloom.so: server aborting
In the configuration file I see these settings in the CONFIG REWRITE
section:
# Generated by CONFIG REWRITE
latency-tracking-info-percentiles 50 99 99.9
user default on nopass sanitize-payload ~* &* +@all
loadmodule /usr/local/lib/redis/modules//redisbloom.so
loadmodule /usr/local/lib/redis/modules//redisearch.so
loadmodule /usr/local/lib/redis/modules//redistimeseries.so
loadmodule /usr/local/lib/redis/modules//rejson.so
To reproduce
- Install 3 Docker containers for Redis Server using the
redis:8.0.3-bookworm
Docker Image - Configure replication with one master and two slaves
- Install 3 Docker containers for Redis Sentinel using the
redis:8.0.3-bookworm
Docker Image - Configure Redis Sentinel to monitor the 3 Redis Server nodes
I used these configuration files for Redis Server and Redis Sentinel (these are files taken from the second node, others are similar with different names and different ports):
20250708-redis-sentinel.conf.txt 20250708-redis-server.conf.txt
Expected behavior
I expect the server starts without problems loading the module without errors.
Anyway, I cannot understand why the loadmodule
directives are in the dynamic configuration settings.
Please note that I've never loaded that modules from Redis Cli.
Additional information
This is a 3 nodes Redis cluster, with one master and two slaves. Redis Sentinel is installed and configured as well, monitoring all three nodes.
Comment From: sundb
@mmartinello reproduce it in my local. After config rewrite, Redis will load the module twice when it is restarted. please also raise a issue in https://github.com/redis/docker-library-redis/issues thx.
version: '3.8'
services:
redis:
image: redis:8.0.3-bookworm
container_name: redis
ports:
- "6379:6379"
volumes:
- ./redis/data:/data
command: redis-server /data/redis.conf
Starting redis ... done
Attaching to redis
redis | Notice: Unknown file './redis.conf' found in data dir. Permissions will not be modified. Use SKIP_FIX_PERMS=1 to skip permission changes.
redis | Notice: Unknown file '/data/dump.rdb' found in '/data'. Permissions will not be modified. Use SKIP_FIX_PERMS=1 to skip permission changes.
redis | Starting Redis Server
redis | 1:C 09 Jul 2025 03:16:41.864 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis | 1:C 09 Jul 2025 03:16:41.864 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis | 1:C 09 Jul 2025 03:16:41.864 * Redis version=8.0.3, bits=64, commit=00000000, modified=1, pid=1, just started
redis | 1:C 09 Jul 2025 03:16:41.864 * Configuration loaded
redis | 1:M 09 Jul 2025 03:16:41.864 * monotonic clock: POSIX clock_gettime
redis | 1:M 09 Jul 2025 03:16:41.865 * Running mode=standalone, port=6379.
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Redis version found by RedisSearch : 8.0.3 - oss
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> RediSearch version 8.0.1 (Git=5688fcc)
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Low level api version 1 initialized successfully
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> gc: ON, prefix min length: 2, min word length to stem: 4, prefix max expansions: 200, query timeout (ms): 500, timeout policy: return, cursor read size: 1000, cursor max idle (ms): 300000, max doctable size: 1000000, max number of search results: 1000000,
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Initialized thread pools!
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Disabled workers threadpool of size 0
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Subscribe to config changes
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Enabled role change notification
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Cluster configuration: AUTO partitions, type: 0, coordinator timeout: 0ms
redis | 1:M 09 Jul 2025 03:16:41.866 * <search> Register write commands
redis | 1:M 09 Jul 2025 03:16:41.866 * Module 'search' loaded from /usr/local/lib/redis/modules//redisearch.so
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> RedisBloom version 8.0.1 (Git=unknown)
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> Registering configuration options: [
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { bf-error-rate : 0.01 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { bf-initial-size : 100 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { bf-expansion-factor : 2 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { cf-bucket-size : 2 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { cf-initial-size : 1024 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { cf-max-iterations : 20 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { cf-expansion-factor : 1 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> { cf-max-expansions : 32 }
redis | 1:M 09 Jul 2025 03:16:41.866 * <bf> ]
redis | 1:M 09 Jul 2025 03:16:41.866 * Module 'bf' loaded from /usr/local/lib/redis/modules//redisbloom.so
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> RedisTimeSeries version 80001, git_sha=577bfa8b5909e7ee572f0b651399be8303dc6641
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> Redis version found by RedisTimeSeries : 8.0.3 - oss
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> Registering configuration options: [
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-compaction-policy : }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-num-threads : 3 }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-retention-policy : 0 }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-duplicate-policy : block }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-chunk-size-bytes : 4096 }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-encoding : compressed }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-ignore-max-time-diff: 0 }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> { ts-ignore-max-val-diff : 0.000000 }
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> ]
redis | 1:M 09 Jul 2025 03:16:41.867 * <timeseries> Detected redis oss
redis | 1:M 09 Jul 2025 03:16:41.867 * Module 'timeseries' loaded from /usr/local/lib/redis/modules//redistimeseries.so
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Created new data type 'ReJSON-RL'
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> version: 80001 git sha: unknown branch: unknown
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Exported RedisJSON_V1 API
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Exported RedisJSON_V2 API
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Exported RedisJSON_V3 API
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Exported RedisJSON_V4 API
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Exported RedisJSON_V5 API
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Enabled diskless replication
redis | 1:M 09 Jul 2025 03:16:41.867 * <ReJSON> Initialized shared string cache, thread safe: false.
redis | 1:M 09 Jul 2025 03:16:41.867 * Module 'ReJSON' loaded from /usr/local/lib/redis/modules//rejson.so
redis | 1:M 09 Jul 2025 03:16:41.867 * <search> Acquired RedisJSON_V5 API
redis | 1:M 09 Jul 2025 03:16:41.867 # Module /usr/local/lib/redis/modules//redisbloom.so initialization failed. Module not loaded
redis | 1:M 09 Jul 2025 03:16:41.867 # Can't load module from /usr/local/lib/redis/modules//redisbloom.so: server aborting
redis exited with code 1