Skip to content

Commit

Permalink
Merge pull request #23381 from kinvolk/alban/apache-log
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue

examples/guestbook/php-redis: don't reopen stdio fds

/etc/apache2/apache2.conf was configured to log in this way:
> ErrorLog /proc/self/fd/2
> CustomLog /proc/self/fd/1 combined

This causes apache to reopen the already-opened fds. It works fine when
the file descriptors are pipes or ttys but it fails when they are Unix
sockets because sockets cannot be opened with the open() syscall. The
issue happens when apache is connected to systemd-journald, like in the
rkt container run-time.

This patch uses "cat" to directly write to the stdio fds without
reopening them. apache2.conf now looks like:
> ErrorLog "|$/bin/cat 1>&2"
> CustomLog "|/bin/cat" combined

It works both with Docker and rkt (tested with and without
--interactive).

Symptoms:
> [ 2673.478868] apache2-foreground[4]: (6)No such device or address:
> AH00091: apache2: could not open error log file /proc/self/fd/2.

See also: rkt/rkt#2300

-----

/cc @sjpotter @yifan-gu @jonboulle
  • Loading branch information
k8s-merge-robot committed Apr 11, 2016
2 parents fbe5f70 + f6f013b commit 31de622
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions examples/guestbook/php-redis/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ RUN apt-get install -y php-pear
RUN pear channel-discover pear.nrk.io
RUN pear install nrk/Predis

# If the container's stdio is connected to systemd-journald,
# /proc/self/fd/{1,2} are Unix sockets and apache will not be able to open()
# them. Use "cat" to write directly to the already opened fds without opening
# them again.
RUN sed -i 's#ErrorLog /proc/self/fd/2#ErrorLog "|$/bin/cat 1>\&2"#' /etc/apache2/apache2.conf
RUN sed -i 's#CustomLog /proc/self/fd/1 combined#CustomLog "|/bin/cat" combined#' /etc/apache2/apache2.conf

ADD guestbook.php /var/www/html/guestbook.php
ADD controllers.js /var/www/html/controllers.js
ADD index.html /var/www/html/index.html

1 comment on commit 31de622

@k8s-teamcity-mesosphere

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TeamCity OSS :: Kubernetes Mesos :: 4 - Smoke Tests Build 21076 outcome was SUCCESS
Summary: Tests passed: 1, ignored: 273 Build time: 00:12:25

Please sign in to comment.