[wildfly-dev] Wildfly start-up as service script depends on console log to determinate start result
James R. Perkins
jperkins at redhat.com
Fri Jun 12 13:32:01 EDT 2015
This won't work as there's no guarantee there will be a server.log
and/or that it would live in log directory. The best solution involves
not reading logs at all. I don't have any great ideas on the best way to
currently do that.
On 06/11/2015 10:25 PM, Jorge Solórzano wrote:
> I think there is no easy fix, we can assume for example that after 3
> seconds that the PID exists then the process is up and return OK, but
> if the process stops latter, it will be a fake start.
>
> I know that we should not rely on read the log as James stated, but
> until we can figure out a better aproach this is my proposal, I can
> modify wildfly-init-debian.sh to have this behavior
>
> 1. Add to logging subsystem to standalone*.xml:
> <logger category="org.jboss.as <http://org.jboss.as>">
> <level name="INFO"/>
> </logger>
>
> 2. Remove JBOSS_CONSOLE_LOG and read JBOSS_LOG_DIR
>
> 3. If standalone read "$JBOSS_LOG_DIR/server.log"
> if domain read "$JBOSS_LOG_DIR/host-controller.log"
> to find WFLYSRV0025 or the string used for EAP... this is probably
> volatile but it's not changed frequently, in fact it has been changed
> only once.
>
> 4. Always check the status of pid (if dies return immediately).
>
> 5. If server.log is not found, deactivated or not print the correct
> output there are two choices:
> a. On wait timeout, send a warning about an unknow status (this is how
> works right now).
> b. On wait timeout, just check if PID is still up and return OK,
> otherwise FAILURE.
>
> I believe this approach avoids the problem of console log...
>
>
>
> Best regards,
>
>
> Jorge Solórzano
> http://www.jorsol.com
>
> On Thu, Jun 11, 2015 at 5:29 PM, Chao Wang <chaowan at redhat.com
> <mailto:chaowan at redhat.com>> wrote:
>
> Thanks for your reply. Please see in-line below
>
> On 06/11/2015 12:44 AM, Brian Stansberry wrote:
>> A couple thoughts:
>>
>> 1) Looking at wildfly-init-redhat.sh at least, I don't see how that
>> check is actually testing for successful startup. It looks like it's
>> just trying to delay start() returning for a while, max 30 secs.
>>
>> So, what purpose is this fulfilling?
> My bad about issue background. It's actually an case in EAP 6 (not
> yet in wildfly). EAP 6.x script has launched state like:
> https://github.com/jbossas/jboss-eap/blob/6.4.x/build/src/main/resources/bin/init.d/jboss-as-standalone.sh#L110
> (not in wildfly's script). Also, console log handler has been
> removed only in EAP full-ha mode long time ago due to performance
> concern.(wildfly keeps it for the moment). This leads to issue in
> bz1224170 <https://bugzilla.redhat.com/show_bug.cgi?id=1224170>.
> That's why I try to seek an better option than current behavior
> from wildfly.
>> 2) How does other software solve this problem? If it's solving a valid
>> problem, it seems like there would be a typical solution.
> I have checked some other application servers, most of them let
> users themselves to write a script to run as service for their OS.
> Geronimo does provide a script, Although I did damage to its
> configuration file to make a fatal error, terminal output still
> displays "Server started". In fact, process does not event exist
> and detail error can be seen in log file.
>> On 6/9/15 8:59 AM, Chao Wang wrote:
>>> Hi all,
>>>
>>> The Wildfly start-up as service scripts wildfly-init-redhat.sh and
>>> wildfly-init-debian.sh currently depend on a grep action of key message
>>> 'WFLYSRV0025:' in console log to determinate whether service start is
>>> successful. The log message indication is accurate, however, it's not
>>> that robust since user can always remove console handler from logging
>>> subsystem. I have opened a WFCORE enhancement jira
>>> https://issues.jboss.org/browse/WFCORE-747 for it.
>>>
>>> For the moment, I have tried three options, they're all not that perfect
>>> to implement
>>>
>>> 1. Stay with exact log message, users need to define their jboss log
>>> directory such as $JBOSS_HOME/standalone/log/server.log for standalone
>>> and $JBOSS_HOME/domain/log/host-controller.log for domain instead of
>>> searching in console log. This is more like another workaround since it
>>> is also volatile once we update log message in future release.(EAP has
>>> 'JBAS015874:')
>>>
>>> 2. Use service pid, this is not precise because a long start-up can
>>> crash in the last second. It needs to wait a suitable seconds before
>>> checking pid existence. and still it can not avoid fake success in rare
>>> case just before timeout.
>>>
>>> 3. Use read-attribute server-state through CLI connection as I did in
>>> Pull Request on Jira. This is declined as it is possible that
>>> authentication is required before connection. In such case, any non
>>> encrypted password is not advised in configuration files.
>>>
>>> Therefore, I would like to listen for your opinions for them. Any other
>>> suggestion is certainly welcomed in mail or on jira.
>>>
>>>
>>> Best regards,
>>>
>>> Chao
>>>
>>>
>>> _______________________________________________
>>> wildfly-dev mailing list
>>> wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>
>
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1224170
>
> --
> Chao Wang
> Software Engineer
> JBoss by Red Hat
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
--
James R. Perkins
JBoss by Red Hat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20150612/fadeb5cd/attachment.html
More information about the wildfly-dev
mailing list