Bug #30772 Exceptions in catalina.out for support zip feature as replication info disabled
Submitted: 3 Sep 2007 16:34 Modified: 7 Sep 2007 16:47
Reporter: Mark Leith Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Server Severity:S3 (Non-critical)
Version:1.2.0.7406 OS:Any
Assigned to: Mark Matthews CPU Architecture:Any

[3 Sep 2007 16:34] Mark Leith
Description:
When downloading the 'support support' zip file, from the product information page, using an installation that has the subscription expired, there are stack traces printed to the catalina.out file, such as:

Sep 3, 2007 9:02:17 AM org.apache.catalina.core.ApplicationContext log
SEVERE: rest: null
com.mysql.merlin.exception.PermissionDeniedException
	at com.mysql.merlin.server.group.GroupService.checkAcl(GroupService.java:266)
	at com.mysql.merlin.server.group.GroupService.getDot(GroupService.java:258)
	at com.mysql.merlin.server.PublicAPIServlet.getDotForGroup(PublicAPIServlet.java:96)
	at com.mysql.merlin.server.PublicAPIServlet.zipReplicationTopologies(PublicAPIServlet.java:273)
	at com.mysql.merlin.server.PublicAPIServlet.zipSupportInfo(PublicAPIServlet.java:172)
	at com.mysql.merlin.server.PublicAPIServlet.processRequest(PublicAPIServlet.java:65)
	at com.mysql.merlin.server.MerlinServlet.doCommon(MerlinServlet.java:243)
	at com.mysql.merlin.server.MerlinServlet.doGet(MerlinServlet.java:157)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:595)
Sep 3, 2007 9:02:17 AM org.apache.catalina.core.ApplicationContext log
SEVERE: rest: no current ZIP entry
java.util.zip.ZipException: no current ZIP entry
	at java.util.zip.ZipOutputStream.write(ZipOutputStream.java:255)
	at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
	at com.mysql.merlin.server.PublicAPIServlet.zipException(PublicAPIServlet.java:357)
	at com.mysql.merlin.server.PublicAPIServlet.zipReplicationTopologies(PublicAPIServlet.java:283)
	at com.mysql.merlin.server.PublicAPIServlet.zipSupportInfo(PublicAPIServlet.java:172)
	at com.mysql.merlin.server.PublicAPIServlet.processRequest(PublicAPIServlet.java:65)
	at com.mysql.merlin.server.MerlinServlet.doCommon(MerlinServlet.java:243)
	at com.mysql.merlin.server.MerlinServlet.doGet(MerlinServlet.java:157)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:595)

How to repeat:
o Use an expired subscription key
o Download the diagnostic report from the product information page
o Check catalina.out

Suggested fix:
1) Do not print these stack traces, check access first and then try to get the information

2) This kind of stack trace really should be put within the misc log within the merlin.logs table, rather than within catalina.out
[5 Sep 2007 15:47] Sloan Childers
As far as I can tell this is working as designed.  Without a valid replication subscription we don't allow anyone to see replication in the product.
[5 Sep 2007 22:03] Sloan Childers
r7467,7474 trunk
[5 Sep 2007 23:47] Sloan Childers
r7479 br_6559_1.2.0
[7 Sep 2007 16:47] Bill Weber
Verified fixed in build 1.2.0.7481.