Skip to content

Redis won't start after upgrading to icingadb-redis 7.2.6-2+debian12 #47

@sagepe

Description

@sagepe

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 8.10.0-1bookworm
  • Ruby: ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x86_64-linux]
  • Distribution: Debian 12
  • Module version: 3.1.1

How to reproduce (e.g Puppet code you use)

  class { 'icingadb::redis':
    manage_repos => false,
    bind         => ['127.0.0.1', '::1'],
    port         => 6380,
  }

Upgrade from 7.0.15-1+debian12 => 7.2.6-2+debian12

What are you seeing

Icingadb-redis won't start with the following error:

... systemd[1]: Starting icingadb-redis.service - Redis database for Icinga DB...
... icingadb-redis-server[3754696]: *** FATAL CONFIG FILE ERROR (Redis 7.2.6) ***
... icingadb-redis-server[3754696]: Can't open the log file: Read-only file system
... systemd[1]: icingadb-redis.service: Main process exited, code=exited, status=1/FAILURE
... systemd[1]: icingadb-redis.service: Failed with result 'exit-code'.
... systemd[1]: Failed to start icingadb-redis.service - Redis database for Icinga DB.

What behaviour did you expect instead

icingadb-redis to start successfully after an upgrade.

Output log

See above.

Any additional information you'd like to impart

According to this forum post, the latest icingdb-redis package took out ReadWritePaths=-/var/log/icingadb-redis from the service unit file shipped with the package and set logfile="" in the default configuration file.

This module uses puppet-redis, which in turn expects a log file to be set - I don't think there's a way to override this. This module also sets manage_service_file => false, so the service unit as shipped is used.

We've worked around this by adding a drop-in file via our profile class:

systemd::dropin_file { 'redis-logfile.conf':
  unit    => 'icingadb-redis.service',
  content => "[Service]\nReadWritePaths=-/var/log/icingadb-redis\n",
}

I wasn't sure what the best place for this was, but I thought I'd open an issue here for visibility. There may be a way of working around this in a different fashion with the modules as-is, but this is what we did.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions