[wildfly-dev] JBAS011592 the logging subsystem requires the log manager to be org.jboss.logmanager.LogManager

Max Rydahl Andersen manderse at redhat.com
Thu Nov 27 04:32:12 EST 2014


On 24 Nov 2014, at 17:48, David M. Lloyd wrote:

> On 11/24/2014 10:40 AM, Max Rydahl Andersen wrote:
>>>>>
>>>>> We do not do any agent funkyness afaik.
>>>>>
>>>>> And as said the "workaround" so far have been "restart it" and it
>>>>> works.
>>>>>
>>>>> zero changes to the state or arguments.
>>>>
>>>> okey so there been some new movement in this.
>>>>
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1037970
>>>>
>>>> Indicating there actually is a race condition if something pings 
>>>> the jvm
>>>> via jmx during the startup
>>>> *before* jboss main boot process manages to set the logmanager.
>>>> Something that will happen because
>>>> we actually have a feature that scans for locally running jvm's and
>>>> attach an agent to gather info.
>>>>
>>>> Suggested workaround is to add this to our launch:
>>>> JAVA_OPTS="$JAVA_OPTS
>>>> -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
>>>> JAVA_OPTS="$JAVA_OPTS
>>>> -Xbootclasspath/p:$JBOSS_HOME/modules/org/jboss/logmanager/main/jboss-logmanager-1.3.1.Final-redhat-1.jar"
>>>>
>>>> -logging org.jboss.logmanager.LogManager
>>>>
>>>> Question from us is, is the above workaround proper ? Will 
>>>> EAP/WildFly
>>>> change their boot arguments to match to avoid this race condition 
>>>> issue
>>>> for bat/sh launched servers too ?
>>>
>>> No, there's a very good chance that will cause weird stuff to 
>>> happen,
>>> like two copies of the log manager being installed.  It may work,
>>> mostly, but this is not a risk-free solution.
>>
>> Yeah, that was what I feared...btw. this is what the official
>> recommendation is on the knowledge base article about this issue ;/
>>
>> But can you confirm that the issue is can and will happen if a remote
>> process tries to install an agent and even if the agent has zero 
>> jboss
>> logging usage
>> that can somehow result in jboss logging getting activated before it 
>> has
>> settings configured ?
>>
>> I'm just wondering what code actually is being invoked that needs 
>> this
>> log manager when we are installing an agent very early in the start 
>> up
>> phase ?
>
> Conceptually we don't need or want our log manager to be installed 
> until we have something interesting to log.  But, you only get one 
> chance to install the log manager, and the JVM initializes it whenever 
> it wants, so that's the basic summary of the problem.  The only way to 
> "beat" the JVM is to get in there ahead of it.
>
> You could theoretically dig in with reflection and swap out the log 
> manager after the fact, but then you'd also have to somehow swap out 
> all the loggers made with the original log manager, otherwise what 
> happens is some log messages just go missing.
>
> Another option is to install some kind of "proxy" log manager that has 
> a facility to swap out all the backing loggers.

and I assume there are some reason why the logmanager don't have a 
fallback default it will use until its fully configured ?  (i.e. to 
avoid this racecondition to result in full error/stopping of the server)

/max
http://about.me/maxandersen



More information about the wildfly-dev mailing list