Setting pid in memcached.conf causes strange behavior

Bug #1176178 reported by Johnny Shields on 2013-05-03
This bug affects 2 people
Affects Status Importance Assigned to Milestone
memcached (Ubuntu)

Bug Description

In memcached.conf, if I set this line:

# pid file
-P /var/run/

Then when I run

sudo service memcached start

I observe two strange behaviors:

1) The following log lines appears:

WARNING: The pid file contained the following (running) pid: 19
Could not open the pid file /var/run/ for writing: permission denied

(the second line only appears when I set the user to "-u memcache", rather than "-u root")

2) The sudo service memcached start command does not daemonize until I press <enter>

I'm running Ubuntu precise (12.04.2 LTS), with the most recent memcached package installed.

description: updated
description: updated
Yolanda Robla (yolanda.robla) wrote :

Thanks for reporting this
Can you provide the configuration file for memcached, and describe us the permissions for the /var/run folder?

Changed in memcached (Ubuntu):
status: New → Incomplete
Johnny Shields (johnny-shields) wrote :

$ ls -l /var/run
lrwxrwxrwx 1 root root 4 May 3 20:20 /var/run -> /run

$ less /etc/memcached.conf

# memcached default config file
# 2003 - Jay Bonci <email address hidden>
# This configuration file is read by the start-memcached script provided as
# part of the Debian GNU/Linux distribution.

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached/memcached.log

# pid file
-P /var/run/

# Be verbose (shows errors, warnings, and socket connections)

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 768

# Override the size of each slab page in bytes, i.e. the maximum item size that
# memcached will accept. Recommended not to set above 1 MB for performance reasons.
# The default value is 1 MB.
-I 1048576

# Default connection port is 11211
-p 11211

# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
# -l

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
# -M

# Maximize core file limit
# -r

It would appear as though the init script is creating the pid with root:root ownership, irrespective of memcached.conf's contents, yet still passes the -P during memecached's exec. When the -P option is added to the config, it results in this error as memcached tries to create a pid that already exists, and doesn't have permissions to overwrite.

Johnny Shields (johnny-shields) wrote :

How can we move forward on this?

Launchpad Janitor (janitor) wrote :

[Expired for memcached (Ubuntu) because there has been no activity for 60 days.]

Changed in memcached (Ubuntu):
status: Incomplete → Expired
Johnny Shields (johnny-shields) wrote :

Is there anything that can be done about this? Bug still affects me.

Changed in memcached (Ubuntu):
status: Expired → Incomplete
Launchpad Janitor (janitor) wrote :

[Expired for memcached (Ubuntu) because there has been no activity for 60 days.]

Changed in memcached (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers