5 Replies Latest reply on Dec 26, 2015 8:58 AM by gazzonyx

    start of wildfly-9.0.2.Final fails on fedora 23

    gerritvds

      Hi,

       

      I have installed wildfly 9.0.2 on fedora 23 in a VirtualBox, according to the following instruction:

      How To Install WildFly as a Service on Linux - Developer Should Know

      In the output below, you can see the content of the relevant files.

       

      When I start the service, I get the following:

       

      424 15:12:24 gerrit@localhost: /etc/init.d> sudo systemctl start wildfly

      Job for wildfly.service failed because a configured resource limit was exceeded. See "systemctl status wildfly.service" and "journalctl -xe" for details.

      425 15:13:02 gerrit@localhost: /etc/init.d> systemctl status -l wildfly.service

      ● wildfly.service - SYSV: WildFly startup script

        Loaded: loaded (/etc/rc.d/init.d/wildfly)

        Active: failed (Result: resources) since Wed 2015-12-16 15:13:02 CET; 19s ago

          Docs: man:systemd-sysv-generator(8)

        Process: 9205 ExecStart=/etc/rc.d/init.d/wildfly start (code=exited, status=0/SUCCESS)

       

      Dec 16 15:12:30 localhost.localdomain systemd[1]: Starting SYSV: WildFly startup script...

      Dec 16 15:12:30 localhost.localdomain runuser[9224]: pam_unix(runuser:session): session opened for user wildfly by (uid=0)

      Dec 16 15:13:02 localhost.localdomain wildfly[9205]: Starting wildfly: [  OK  ]

      Dec 16 15:13:02 localhost.localdomain systemd[1]: wildfly.service: PID file /var/run/wildfly/wildfly.pid not readable (yet?) after start: No such file or directory

      Dec 16 15:13:02 localhost.localdomain systemd[1]: Failed to start SYSV: WildFly startup script.

      Dec 16 15:13:02 localhost.localdomain systemd[1]: wildfly.service: Unit entered failed state.

      Dec 16 15:13:02 localhost.localdomain systemd[1]: wildfly.service: Failed with result 'resources'.

      426 15:13:21 gerrit@localhost: /etc/init.d> l /opt

      total 12

      drwxr-xr-x.  3 root    root    4096 Dec 14 10:04 google

      drwxr-xr-x.  9 root    root    4096 Dec 13 17:54 VBoxGuestAdditions-5.0.10

      lrwxrwxrwx.  1 wildfly wildfly  24 Dec 15 16:22 wildfly -> /opt/wildfly-9.0.2.Final

      drwxr-xr-x. 10 wildfly wildfly 4096 Oct 26 23:15 wildfly-9.0.2.Final

      427 15:21:43 gerrit@localhost: /etc/init.d> cat /etc/default/wildfly.conf

      # General configuration for the init.d scripts,

      # not necessarily for JBoss AS itself.

      # default location: /etc/default/wildfly

       

       

      ## Location of JDK

      # JAVA_HOME="/usr/lib/jvm/default-java"

      JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-4.b17.fc23.x86_64/"

       

       

      ## Location of WildFly

      JBOSS_HOME="/opt/wildfly"

       

       

      ## The username who should own the process.

      JBOSS_USER=wildfly

       

       

      ## The mode WildFly should start, standalone or domain

      JBOSS_MODE=standalone

       

       

      ## Configuration for standalone mode

      JBOSS_CONFIG=standalone.xml

       

       

      ## Configuration for domain mode

      # JBOSS_DOMAIN_CONFIG=domain.xml

      # JBOSS_HOST_CONFIG=host-master.xml

       

       

      ## The amount of time to wait for startup

      STARTUP_WAIT=30

       

       

      ## The amount of time to wait for shutdown

      SHUTDOWN_WAIT=30

       

       

      ## Location to keep the console log

      # JBOSS_CONSOLE_LOG="/var/log/wildfly/console.log"

       

       

      ## Additionals args to include in startup

      # JBOSS_OPTS="--admin-only -b 172.0.0.1"

      428 15:28:25 gerrit@localhost: /etc/init.d> cat /etc/init.d/wildfly

      #!/bin/sh

      #

      # WildFly control script

      #

      # chkconfig: - 80 20

      # description: WildFly startup script

      # processname: wildfly

      # pidfile: /var/run/wildfly/wildfly.pid

      # config: /etc/default/wildfly.conf

      #

       

       

      # Source function library.

      . /etc/init.d/functions

       

       

      # Load Java configuration.

      [ -r /etc/java/java.conf ] && . /etc/java/java.conf

      export JAVA_HOME

       

       

      # Load JBoss AS init.d configuration.

      if [ -z "$JBOSS_CONF" ]; then

              JBOSS_CONF="/etc/default/wildfly.conf"

      fi

       

       

      [ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}"

       

       

      # Set defaults.

       

       

      if [ -z "$JBOSS_HOME" ]; then

              JBOSS_HOME=/opt/wildfly

      fi

      export JBOSS_HOME

       

       

      if [ -z "$JBOSS_PIDFILE" ]; then

              JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid

      fi

      export JBOSS_PIDFILE

       

       

      if [ -z "$JBOSS_CONSOLE_LOG" ]; then

              JBOSS_CONSOLE_LOG=/var/log/wildfly/console.log

      fi

       

       

      if [ -z "$STARTUP_WAIT" ]; then

              STARTUP_WAIT=30

      fi

       

       

      if [ -z "$SHUTDOWN_WAIT" ]; then

              SHUTDOWN_WAIT=30

      fi

       

       

      if [ -z "$JBOSS_LOCKFILE" ]; then

              JBOSS_LOCKFILE=/var/lock/subsys/wildfly

      fi

       

       

      # Startup mode of wildfly

      if [ -z "$JBOSS_MODE" ]; then

              JBOSS_MODE=standalone

      fi

       

       

      # Startup mode script

      if [ "$JBOSS_MODE" = "standalone" ]; then

              JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh

              if [ -z "$JBOSS_CONFIG" ]; then

                      JBOSS_CONFIG=standalone.xml

              fi

      else

              JBOSS_SCRIPT=$JBOSS_HOME/bin/domain.sh

              if [ -z "$JBOSS_DOMAIN_CONFIG" ]; then

                      JBOSS_DOMAIN_CONFIG=domain.xml

              fi

              if [ -z "$JBOSS_HOST_CONFIG" ]; then

                      JBOSS_HOST_CONFIG=host.xml

              fi

      fi

       

       

      prog='wildfly'

       

       

      start() {

              echo -n "Starting $prog: "

              if [ -f $JBOSS_PIDFILE ]; then

                      read ppid < $JBOSS_PIDFILE

                      if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then

                              echo -n "$prog is already running"

                              failure

              echo

                      return 1

              else

                      rm -f $JBOSS_PIDFILE

              fi

              fi

              mkdir -p $(dirname $JBOSS_CONSOLE_LOG)

              cat /dev/null > $JBOSS_CONSOLE_LOG

       

       

              mkdir -p $(dirname $JBOSS_PIDFILE)

              chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true

       

       

              if [ ! -z "$JBOSS_USER" ]; then

                      if [ "$JBOSS_MODE" = "standalone" ]; then

                              if [ -r /etc/rc.d/init.d/functions ]; then

                                      daemon --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG $JBOSS_OPTS >> $JBOSS_CONSOLE_LOG 2>&1 &

                              else

                                      su - $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG $JBOSS_OPTS" >> $JBOSS_CONSOLE_LOG 2>&1 &

                              fi

                      else

                              if [ -r /etc/rc.d/init.d/functions ]; then

                                      daemon --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT --domain-config=$JBOSS_DOMAIN_CONFIG --host-config=$JBOSS_HOST_CONFIG $JBOSS_OPTS >> $JBOSS_CONSOLE_LOG 2>&1 &

                              else

                                      su - $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT --domain-config=$JBOSS_DOMAIN_CONFIG --host-config=$JBOSS_HOST_CONFIG $JBOSS_OPTS" >> $JBOSS_CONSOLE_LOG 2>&1 &

                              fi

                      fi

              fi

       

       

              count=0

              launched=false

       

       

              until [ $count -gt $STARTUP_WAIT ]

              do

                      grep 'WFLYSRV0025:' $JBOSS_CONSOLE_LOG > /dev/null

                      if [ $? -eq 0 ] ; then

                              launched=true

                              break

                      fi

                      sleep 1

                      let count=$count+1;

              done

       

       

              touch $JBOSS_LOCKFILE

              success

              echo

              return 0

      }

       

       

      stop() {

              echo -n $"Stopping $prog: "

              count=0;

       

       

              if [ -f $JBOSS_PIDFILE ]; then

                      read kpid < $JBOSS_PIDFILE

                      let kwait=$SHUTDOWN_WAIT

       

       

                      # Try issuing SIGTERM

                      kill -15 $kpid

                      until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ]

                              do

                              sleep 1

                              let count=$count+1;

                      done

       

       

                      if [ $count -gt $kwait ]; then

                              kill -9 $kpid

                      fi

              fi

              rm -f $JBOSS_PIDFILE

              rm -f $JBOSS_LOCKFILE

              success

              echo

      }

       

       

      status() {

              if [ -f $JBOSS_PIDFILE ]; then

                      read ppid < $JBOSS_PIDFILE

                      if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then

                              echo "$prog is running (pid $ppid)"

                              return 0

                      else

                              echo "$prog dead but pid file exists"

                              return 1

                      fi

              fi

              echo "$prog is not running"

              return 3

      }

       

       

      case "$1" in

              start)

                      start

                      ;;

              stop)

                      stop

                      ;;

              restart)

                      $0 stop

                      $0 start

                      ;;

              status)

                      status

                      ;;

              *)

                      ## If no parameters are given, print which are avaiable.

                      echo "Usage: $0 {start|stop|status|restart|reload}"

                      exit 1

                      ;;

      esac

      429 15:29:10 gerrit@localhost: /etc/init.d>

       

      gfkfh

        • 1. Re: start of wildfly-9.0.2.Final fails on fedora 23
          gerritvds

          My question is if someone can tell me what is wrong.

          • 2. Re: start of wildfly-9.0.2.Final fails on fedora 23
            gerritvds

            I did the same installation on Ubuntu (same java and wildfly versions and same procedure) and it works fine there. That means that the problem is either in Fedora 23 or in the file

            /opt/wildfly/bin/init.d/wildfly-init-redhat.sh

            (for Ubuntu there is another script, namely wildfly-init-debian.sh).

            • 3. Re: start of wildfly-9.0.2.Final fails on fedora 23
              jaikiran

              I don't know if those service scripts have really been tested.

              • 4. Re: start of wildfly-9.0.2.Final fails on fedora 23
                gazzonyx

                Try getting rid of the OpenJDK and using the Sun/Oracle JDK.  The openJDK has given me nothing but problems with a few installs.  Also, use alternative symlinks if you do - every dependency pull of the OpenJDK will break your install and you'll have to relink /etc/alternatives/$foo.  I've got 9.0.2 up and running tonight on Fedora 21 using the Sun JDK without issue (save for the couple of times I followed the documentation and everything broke).  I'm using (disregard the '20' in the hostname, most of my dev VMs don't last a full release) :

                [428 21:53:08 fedora-20-scottl wildfly-9]$ java -version

                java version "1.8.0_65"

                Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

                Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

                • 5. Re: start of wildfly-9.0.2.Final fails on fedora 23
                  gazzonyx

                  As an aside and completely off topic, does it bother anyone else that SystemD is shelling out, unsanitized input from a file owned by a service that's both a limited service user and very probably internet facing, as root? 

                   

                  I feel like if I popped a WildFly box I'd probably put some code in there, as the new owner of the wildfly service account, and force a restart of the service one way or another.  You could ask for a pony and you'd get it the next time SystemD did anything with the service (a clean shutdown still runs that code path before the file is removed).  I know at some point there's nothing you can do security wise, but this kind of seems like low hanging fruit since the contents of that file should only ever be an unsigned integer.  No?  It wouldn't be so dangerous if root was the owner and the WildFly service account couldn't write to it, but the account own the dir and the file.