Blocking a stream when cleaning a jsp file

Under heavy load, I see that many threads become blocked when GZipping and unpacking the JSP file. The landfill looks like below. It seems to come from "header.jsp" of 14 KB in size.

"http-0.0.0.0-8080-304" daemon prio = 3 tid = 0x0000000008bcc000 nid = 0x302 runnable [0xfffffd7de7bc2000] java.lang.Thread.State: RUNNABLE in java.util.zip.Deflater.deflateBytes (native method) .util.zip.Deflater.deflate (Deflater.java:306) - blocked <0xfffffd7e589078e8> (java.util.zip.ZStreamRef) in java.util.zip.DeflaterOutputStream.deflate (DeflaterOutputStream.java:159) .zip.DeflaterOutputStream.write (DeflaterOutputStream.java:118) in java.util.zip.GZIPOutputStream.write (GZIPOutputStream.java:72) - blocked <0xfffffd7e58524d28> (java.util.zip.Zip.Zip.Zip.Zip.Zip.ZipGZ .DeflaterOutputStream.write (DeflaterOutputStream.java:91) at com.pinksheets.common.web.cache.ServletOutputStreamWrapper.write (ServletOutputStreamWrapper.java:24) in java.io.OutputStream.write (OutputStream.java. nio.cs.StreamEncoder.writeBytes (StreamEncoder.java:202) at sun.nio.cs.StreamEncoder.imp lWrite (StreamEncoder.java:263) at sun.nio.cs.StreamEncoder.write (StreamEncoder.java:106) - blocked <0xfffffd7e58524d48> (java.io.OutputStreamWriter) in java.io.OutputStreamWriter.write (Output 190) in java.io.BufferedWriter.write (BufferedWriter.java:170) - blocked <0xfffffd7e58524d48> (java.io.OutputStreamWriter) in java.io.PrintWriter.write (PrintWriter.javahaps82) - blocked <0xffbdd java.io.BufferedWriter) on org.apache.jasper.runtime.JspWriterImpl.flushBuffer (JspWriterImpl.java:119) on org.apache.jasper.runtime.JspWriterImpl.write (JspWriterImpl.java:326) on org.apache.as .runtime.JspWriterImpl.write (JspWriterImpl.java{42) at org.apache.jsp.include.header_jsp._jspService (header_jsp.java:2032) on org.apache.jasper.runtime.HttpJspBase.service (HttpJsp70ase ) in javax.servlet.http.HttpServlet.service (HttpServlet.java:717)

+6
source share
1 answer

A few links:

We face similar problems - our best theory so far is that Java code (or the way to use the base zlib support library) can cause the stream to go into space in this way. So far, the only way to prevent this is to not respond to GZip - but we would rather pay 100% of the processor cost (since other threads are still very responsive) than not GZIP. It has been several months since publication; Do you have any other information?

+3
source

Source: https://habr.com/ru/post/892044/


All Articles