** Description changed:

  When installing the haproxy package from the current Ubuntu 18.04 Bionic
  repos, the package does not install the directory /run/haproxy. This
  directory is mentioned in the default config file
  /etc/haproxy/haproxy.cfg:
  
   stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd
  listeners
  
  Starting HAProxy manually will show the following error:
  
  # /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
  [ALERT] 337/154339 (24) : Starting frontend GLOBAL: cannot bind UNIX socket 
[/run/haproxy/admin.sock]
  
  After manual creation of the directory, the start works:
  
  # mkdir /run/haproxy
  
  # /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
  
  # ps auxf
  USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  root        10  0.1  0.0  18616  3416 pts/0    Ss   15:42   0:00 /bin/bash
  root        32  0.0  0.0  34400  2900 pts/0    R+   15:45   0:00  \_ ps auxf
  root         1  0.0  0.0  18376  3016 ?        Ss   15:40   0:00 bash 
/root/entrypoint.sh
  haproxy     31  0.0  0.0  54284  1252 ?        Ss   15:45   0:00 
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
  
  This can be reproduced with a simple Docker container the following
  Dockerfile:
  
  ----------------------------------------------
  FROM ubuntu:18.04
  MAINTAINER Claudio Kuenzler <c...@claudiokuenzler.com>
  
  # install packages
  RUN apt-get update \
    && apt-get install -y -qq haproxy
  
  CMD ["/usr/sbin/haproxy","-f","/etc/haproxy/haproxy.cfg"]
  ----------------------------------------------
  
  Checking the haproxy package for the run directory shows nothing:
  
  # dpkg -L haproxy | grep run ; date
  Wed Dec  4 15:58:52 UTC 2019
+ 
+ *******************************************
+ 
+ Update: After analysis of the haproxy package (see
+ https://www.claudiokuenzler.com/blog/917/haproxy-ubuntu-18.04-docker-
+ image-not-starting-cannot-bind-unix-socket), it turns out that the
+ /run/haproxy directory is defined in debian/haproxy.tmpfile. However
+ tmpfile's are only considered in systems with SystemD. As Docker
+ containers run without Systemd, this directory is never created.
+ 
+ Suggestion: Do not rely on Systemd to create /run/haproxy. Maybe use
+ debian/haproxy.dirs? However the permissions are not set in this case.

-- 
You received this bug notification because you are a member of Ubuntu
High Availability Team, which is subscribed to haproxy in Ubuntu.
https://bugs.launchpad.net/bugs/1855140

Title:
  haproxy package misses creation of default stats socket path

Status in haproxy package in Ubuntu:
  New

Bug description:
  When installing the haproxy package from the current Ubuntu 18.04
  Bionic repos, the package does not install the directory /run/haproxy.
  This directory is mentioned in the default config file
  /etc/haproxy/haproxy.cfg:

   stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd
  listeners

  Starting HAProxy manually will show the following error:

  # /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
  [ALERT] 337/154339 (24) : Starting frontend GLOBAL: cannot bind UNIX socket 
[/run/haproxy/admin.sock]

  After manual creation of the directory, the start works:

  # mkdir /run/haproxy

  # /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg

  # ps auxf
  USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  root        10  0.1  0.0  18616  3416 pts/0    Ss   15:42   0:00 /bin/bash
  root        32  0.0  0.0  34400  2900 pts/0    R+   15:45   0:00  \_ ps auxf
  root         1  0.0  0.0  18376  3016 ?        Ss   15:40   0:00 bash 
/root/entrypoint.sh
  haproxy     31  0.0  0.0  54284  1252 ?        Ss   15:45   0:00 
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg

  This can be reproduced with a simple Docker container the following
  Dockerfile:

  ----------------------------------------------
  FROM ubuntu:18.04
  MAINTAINER Claudio Kuenzler <c...@claudiokuenzler.com>

  # install packages
  RUN apt-get update \
    && apt-get install -y -qq haproxy

  CMD ["/usr/sbin/haproxy","-f","/etc/haproxy/haproxy.cfg"]
  ----------------------------------------------

  Checking the haproxy package for the run directory shows nothing:

  # dpkg -L haproxy | grep run ; date
  Wed Dec  4 15:58:52 UTC 2019

  *******************************************

  Update: After analysis of the haproxy package (see
  https://www.claudiokuenzler.com/blog/917/haproxy-ubuntu-18.04-docker-
  image-not-starting-cannot-bind-unix-socket), it turns out that the
  /run/haproxy directory is defined in debian/haproxy.tmpfile. However
  tmpfile's are only considered in systems with SystemD. As Docker
  containers run without Systemd, this directory is never created.

  Suggestion: Do not rely on Systemd to create /run/haproxy. Maybe use
  debian/haproxy.dirs? However the permissions are not set in this case.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/1855140/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-ha
Post to     : ubuntu-ha@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-ha
More help   : https://help.launchpad.net/ListHelp

Reply via email to