Resin log rollover causes deadlock

Resin log rollover causes deadlock

book

Article ID: KB0091293

calendar_today

Updated On:

Products Versions
TIBCO DataSynapse GridServer -
Not Applicable -

Description

Resolution:
Due to a known issue in Resin 3.0.15, on rare occasions a log rollover will cause a JVM deadlock on the manager.

This can be fixed via 2 resin changes. This will stop resin from logging anything in stdout, and it will capture its own messages to its own logs:

1) In wrapper.pl comment out the logging to stdout: this prevents resin from capturing it

#if (! $stdout_log) {
# $stdout_log = "$SERVER_ROOT/log/stdout.log";
#}

2) In resin.conf you now want to log resin messages to its own log files, so replace the following lines:

&ltlog name="" level="info" path="stdout:" timestamp="[%H:%M:%S.%s] " />
&ltlog name="com.caucho.java" level="config" path="stdout:" timestamp="[%H:%M:%S.%s] " />
&ltlog name="com.caucho.loader" level="config" path="stdout:" timestamp="[%H:%M:%S.%s] " />

with these

&ltresin:if test="${empty ds.resinLog}">
&ltresin:choose>
&ltresin:when test="${empty ds.baseDir}">
&ltresin:set var="ds.resinLog" value="./webapps/livecluster/WEB-INF/log/resin/resin.log" />
</resin:when>
&ltresin:otherwise>
&ltresin:set var="ds.resinLog" value="${ds.baseDir}/WEB-INF/log/resin/resin.log" />
</resin:otherwise>
</resin:choose>
</resin:if>
&ltlog name="" level="info" path="${ds.resinLog}" timestamp="[%H:%M:%S.%s] " />
&ltlog name="com.caucho.java" level="config" path="${ds.resinLog}" timestamp="[%H:%M:%S.%s] " />
&ltlog name="com.caucho.loader" level="config" path="${ds.resinLog}" timestamp="[%H:%M:%S.%s] " />

Issue/Introduction

Resin log rollover causes deadlock