[Bug 62626] New: Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 Bug ID: 62626 Summary: Tomcat 9.0.10 APR/Native crashes Product: Tomcat Native Version: 1.2.17 Hardware: PC Status: NEW Severity: normal Priority: P2 Component: Library Assignee: dev@tomcat.apache.org Reporter: jan.pfei...@centrum.cz Target Milestone: --- Hello, since upgrade to Tomcat 9 and switching to APR Tomcat regularly crashes. # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc005) at pc=0x0001800e6fc9, pid=19764, tid=51640 # # JRE version: Java(TM) SE Runtime Environment (10.0.2+13) (build 10.0.2+13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0.2+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [tcnative-1.dll+0xe6fc9] # # Core dump will be written. Default location: C:\Program Files\Apache Tomcat 9.0 Shop 4\hs_err_pid19764.mdmp # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --- S U M M A R Y Command Line: -Dcatalina.home=C:\Program Files\Apache Tomcat 9.0 Shop 4 -Dcatalina.base=C:\Program Files\Apache Tomcat 9.0 Shop 4 -Djava.io.tmpdir=C:\Program Files\Apache Tomcat 9.0 Shop 4\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512M -Xmx4500M -Duser.language=cs -Duser.region=CZ -Djava.util.logging.config.file=C:\Program Files\Apache Tomcat 9.0 Shop 4\conf\logging.properties --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-modules=java.se.ee exit abort -Xms515m -Xmx4000m Host: Intel(R) Xeon(R) CPU E5-4610 v2 @ 2.30GHz, 8 cores, 15G, Windows Server 2012 , 64 bit Build 9200 (6.2.9200.16384) Time: Wed Aug 15 08:56:53 2018 Central Europe Daylight Time elapsed time: 37881 seconds (0d 10h 31m 21s) --- T H R E A D --- Current thread (0x33149800): JavaThread "https-openssl-apr-443-exec-132" daemon [_thread_in_native, id=51640, stack(0x396e,0x397e)] Stack: [0x396e,0x397e], sp=0x397dea50, free space=1018k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [tcnative-1.dll+0xe6fc9] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 15519 org.apache.tomcat.jni.SSLSocket.handshake(J)I (0 bytes) @ 0x15a94401 [0x15a943c0+0x0041] J 20374 c2 org.apache.tomcat.util.net.AprEndpoint.setSocketOptions(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Z (347 bytes) @ 0x165e540c [0x165e5320+0x00ec] J 20186 c2 org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run()V (199 bytes) @ 0x1657f10c [0x1657f040+0x00cc] J 20687 c2 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V java.base@10.0.2 (187 bytes) @ 0x166e3980 [0x166e37a0+0x01e0] j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 java.base@10.0.2 j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4 J 20564 c2 java.lang.Thread.run()V java.base@10.0.2 (17 bytes) @ 0x16507024 [0x16506fc0+0x0064] v ~StubRoutines::call_stub siginfo: EXCEPTION_ACCESS_VIOLATION (0xc005), reading address 0x00f0 ... --- S Y S T E M --- OS: Windows Server 2012 , 64 bit Build 9200 (6.2.9200.16384) CPU:total 8 (initial active 8) (2 cores per cpu, 1 threads per core) family 6 model 62 stepping 4, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, clmul, erms, tsc Memory: 4k page, physical 16776756k(8895804k free), swap 31456820k(18806572k free) vm_info: Java HotSpot(TM) 64-Bit Server VM (10.0.2+13) for windows-amd64 JRE (10.0.2+13), built on Jun 28 2018 01:57:56 by "mach5one" with MS VC++ 12.0 (VS2013) END. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62626] Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 jan.pfei...@centrum.cz changed: What|Removed |Added OS||All CC||jan.pfei...@centrum.cz -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62626] Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 Mark Thomas changed: What|Removed |Added Status|NEW |NEEDINFO --- Comment #1 from Mark Thomas --- I haven't seen any APR crashes for a while now on any platform. Some indication of how to reproduce this crash is going to be needed to investigate this further. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62626] Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 --- Comment #2 from jan.pfei...@centrum.cz --- It happens several times a day or even several times a hour. But it happens in random manner. No single particular request can do it. There are no clues in logs. At least for me. I have one qutie busy image serving servlet which produces tons of different client abort exceptions, closeNowException, Stream is not writable etc. I can only guess it is about concurent access to it. I have other logs available, if you want to look. After latest crash i have found this (only relevant log output before crash): Caused by: java.io.IOException: Unexpected error [120,001] writing data to the APR/native socket [975,220,944] with wrapper [org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@1ce3e909:975220944]. at org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper.doWriteInternal(AprEndpoint.java:2712) at org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper.doWrite(AprEndpoint.java:2640) at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:691) at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:628) at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:618) at org.apache.coyote.http2.Http2UpgradeHandler.writeBody(Http2UpgradeHandler.java:653) at org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:777) at org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:734) at org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59) at org.apache.coyote.Response.doWrite(Response.java:599) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:328) Do you want me to run some specific test or post server config or other logs? -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62626] Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 --- Comment #3 from Christopher Schultz --- (In reply to jan.pfeifer from comment #2) > It happens several times a day or even several times a hour. At least it's reproducible, even if you can't guarantee a trigger. > After latest crash i have found this (only relevant log output before crash): > > Caused by: java.io.IOException: Unexpected error [120,001] writing data to > the APR/native socket [975,220,944] with wrapper > [org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@1ce3e909:975220944]. That error code [120001] is: APR_UTIL_START_STATUS (10) + APR_OS_START_ERROR ( 2) +(os error code) ( 1) The OS error code is, unhelpfully, "Operation not permitted", at least on *NIX. I'm not sure how that maps to Windows, which usually has error codes with negative values. Are you maybe trying to write-back to a socket which should be closed? Is this NIO+OpenSSL or APR+OpenSSL? I'm guessing APR+OpenSSL. Are you able to try using NIO+JSSE or NIO+OpenSSL? -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1838100 - /tomcat/trunk/webapps/docs/changelog.xml
Author: markt Date: Wed Aug 15 14:50:06 2018 New Revision: 1838100 URL: http://svn.apache.org/viewvc?rev=1838100&view=rev Log: Correct changelog Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1838100&r1=1838099&r2=1838100&view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Aug 15 14:50:06 2018 @@ -47,8 +47,10 @@ - Fix potential deadlocks when using asynchronous Servlet processing with - HTTP/2 connectors. (markt) + +Fix potential deadlocks when using asynchronous Servlet processing with +HTTP/2 connectors. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62626] Tomcat 9.0.10 APR/Native crashes
https://bz.apache.org/bugzilla/show_bug.cgi?id=62626 --- Comment #4 from jan.pfei...@centrum.cz --- (In reply to Christopher Schultz from comment #3) Current configuration is for HTTP/2 so APR+openSSL I am using Spring framework, so only "direct write" is when i manualy read images and write them to the response output stream. There is also synchronized block where current thread checks if requested image is being resized. if so then it waits on task to finish. Actual code: //tasks is ConcurentHashMap try { String syncKey = target.getAbsolutePath(); Thread task; synchronized (this) { task = tasks.get(syncKey); if (task == null && !target.exists()) { //debug("START", request); ResizeTask resizeTask = new ResizeTask(source, target, size); resizeTask.setDebug(isDebug); resizeTask.setLink(getFullURL(request)); task = new Thread(resizeTask); tasks.put(syncKey, task); task.start(); } } if(task != null) task.join(); tasks.remove(syncKey); //debug("FINISH "+(System.currentTimeMillis() - time), request); } catch (InterruptedException e) { e.printStackTrace(); } But it seems lower level problem. To answer your question, yes i can try NIO(2) jsse/openssl. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1838101 - in /tomcat/tc8.5.x/trunk: ./ webapps/docs/changelog.xml
Author: markt Date: Wed Aug 15 14:51:30 2018 New Revision: 1838101 URL: http://svn.apache.org/viewvc?rev=1838101&view=rev Log: (empty) Modified: tomcat/tc8.5.x/trunk/ (props changed) tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.5.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 15 14:51:30 2018 @@ -1,2 +1,2 @@ /tomcat/tc8.0.x/trunk:1809644 -/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737903,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739492,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409 ,1741501,1741677,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743698,1743700-1743701,1744058,1744064-1744065,1744125,1744149,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744713,1744760,1744786,1745083,1745142-1745143,1745145,1745177,1745179-1745180,1745227,1745248,1745254,1745337,1745467,1745473,1745535,1745576,1745735,1745744,1746304,1746306-1746307,1746319,1746327,1746338,1746340-1746341,1746344,1746427,1746441,1746473,1746490,1746492,1746495-1746496,1746499-1746501,1746503-1746507,1746509,1746549,1746551,1746554,1746556,1746558,1746584,1746620,1746649,1746724,1746939,1746989,1747014,1747028,1747035,1747210,1747225,1747234,1747253,1747 404,1747506,1747536,1747924,1747980,1747993,1748001,1748253,1748452,1748547,1748629,1748676,1748715,1749287,1749296,1749328,1749373,1749465,1749506,1749508,1749665-1749666,1749763,1749865-1749866,1749898,1749978,1749980,1750011,1750015,1750056,1750480,1750617,1750634,1750692,1750697,1750700,1750703,1750707,1750714,1750718,1750723,1750774,1750899,1750975,1750995,1751061,1751097,1751173,1751438,1751447,1751463,1751702,1752212,1752737,1752745,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755005,1755007,1755009,1755132,1755180-1755181,1755185,1755190,1755204-1755206,1755208,1755214,1755224,1755227,1755230,1755629,1755646-1755647,1755650,1755653,1755675,1755680,1755683,1755693,1755717,1755731-1755737,1755812,1755828,1755884,1755890,1755918-1755919,1755942,1755958,1755960,1755970,1755993,1756013,1756019,1756039,1756056,1756083-1756114,1756175,1756288-1 756289,1756408-1756410,1756778,1756798,1756878,1756898,1756939,1757123-1757124,1757126,1757128,1757132-1757133,1757136,1757145,1757167-1757168,1757175,1757180,1757182,1757195,1757271,1757278,1757347,1757353-1757354,1757363,1757374,1757399,1757406,1757408,1757485,1757495,1757499,1757527,1757578,1757684,1757722,1757727,1757790,1757799,1757813,1757853,1757883,1757903,1757976,1757997,1758000,1758058,1758072-1758075,1758078-1758079,1758223,1758257,1758261,1758276,1758292,1758369,1758378-1758383,1758421,1758423,1758425-1758427,1758430,1758443,1758448,1758459,1758483,1758486-1758487,1758499,1758525,1758556,1758580,1758582,1758584,1758588,1758842,1759019,1759212,1759224,1759227,1759252,1759274,1759513-1759516,1759611,1759757,1759785-1759790,1760005,1760022,1760109-1760110,1760135,1760200-1760201,1760227,1760300,1760397,1760446,1760454,1760640,1760648,1761057,1761422,1761491,1761498,1761500-1761501,1761550,1761553,1761572,1761574,1761625-1761626,1761628,1761682,1761740,1761752,1762051-176205 3,1762123,1762168,1762172,1762182,1762201-1762202,1762204,1762208,1762288,1762296,1762324,1762348,1762353,1762362,1762374,1762492,1762503,1762505,1762541,1762608,1762710,1762753,1762766,1762769,1762944,1762947,1762953,1763167,1763179,1763232,1763259,1763271-1763272,1763276-1763277,1763319-1763320,1763370,1763372,1763375,1763377,1763393,1763412,1763430,1763450,1763462,1763505,1763511-1763512,1763516,1763518,1763520,1763529,1763559,1763565,1763568,1763574,1763619,1763634-1763635,1763718,1763748,1763786,1763798-1763799,
svn commit: r1838104 - in /tomcat/trunk: java/org/apache/coyote/http2/ java/org/apache/tomcat/util/net/ webapps/docs/
Author: markt Date: Wed Aug 15 15:06:56 2018 New Revision: 1838104 URL: http://svn.apache.org/viewvc?rev=1838104&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62620 Fix corruption of response bodies when writing large bodies using asynchronous processing over HTTP/2. Added: tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1838104&r1=1838103&r2=1838104&view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Wed Aug 15 15:06:56 2018 @@ -43,6 +43,7 @@ import org.apache.tomcat.util.buf.Messag import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.http.parser.Host; import org.apache.tomcat.util.net.ApplicationBufferHandler; +import org.apache.tomcat.util.net.WriteBuffer; import org.apache.tomcat.util.res.StringManager; class Stream extends AbstractStream implements HeaderEmitter { @@ -712,9 +713,10 @@ class Stream extends AbstractStream impl } -class StreamOutputBuffer implements HttpOutputBuffer { +class StreamOutputBuffer implements HttpOutputBuffer, WriteBuffer.Sink { private final ByteBuffer buffer = ByteBuffer.allocate(8 * 1024); +private final WriteBuffer writeBuffer = new WriteBuffer(32 * 1024); private volatile long written = 0; private volatile boolean closed = false; private volatile boolean endOfStreamSent = false; @@ -742,6 +744,7 @@ class Stream extends AbstractStream impl // Only flush if we have more data to write and the buffer // is full if (flush(true, coyoteResponse.getWriteListener() == null)) { +writeBuffer.add(chunk); break; } } @@ -751,7 +754,33 @@ class Stream extends AbstractStream impl } final synchronized boolean flush(boolean block) throws IOException { -return flush(false, block); +/* + * Need to ensure that there is exactly one call to flush even when + * there is no data to write. + * Too few calls (i.e. zero) and the end of stream message is not + * sent for a completed asynchronous write. + * Too many calls and the end of stream message is sent too soon and + * trailer headers are not sent. + */ +boolean dataLeft = buffer.position() > 0; +boolean flushed = false; + +if (dataLeft) { +dataLeft = flush(false, block); +flushed = true; +} + +if (!dataLeft) { +if (writeBuffer.isEmpty()) { +if (!flushed) { +dataLeft = flush(false, block); +} +} else { +dataLeft = writeBuffer.write(this, block); +} +} + +return dataLeft; } private final synchronized boolean flush(boolean writeInProgress, boolean block) @@ -827,6 +856,23 @@ class Stream extends AbstractStream impl public void flush() throws IOException { flush(true); } + +@Override +public boolean writeFromBuffer(ByteBuffer src, boolean blocking) throws IOException { +int chunkLimit = src.limit(); +int offset = 0; +while (src.remaining() > 0) { +int thisTime = Math.min(buffer.remaining(), src.remaining()); +src.limit(src.position() + thisTime); +buffer.put(src); +src.limit(chunkLimit); +written += offset; +if (flush(true, blocking)) { +return true; +} +} +return false; +} } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1838104&r1=1838103&r2=1838104&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Wed Aug 15 15:06:56 2018 @@ -48,7 +48,6 @@ import javax.net.ssl.SSLSession; import org.apache.juli.logging.Log; import org.apache.juli.log
Re: svn commit: r1838104 - in /tomcat/trunk: java/org/apache/coyote/http2/ java/org/apache/tomcat/util/net/ webapps/docs/
On 15/08/18 16:06, ma...@apache.org wrote: > Author: markt > Date: Wed Aug 15 15:06:56 2018 > New Revision: 1838104 > > URL: http://svn.apache.org/viewvc?rev=1838104&view=rev > Log: > Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62620 > Fix corruption of response bodies when writing large bodies using > asynchronous processing over HTTP/2. There looks to be some opportunities to refactor / clean-up the code further than this patch does but I wanted to get the actual fix committed. Clean-up to follow. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1838105 - in /tomcat/tc8.5.x/trunk: ./ java/org/apache/coyote/http2/ java/org/apache/tomcat/util/net/ webapps/docs/
Author: markt Date: Wed Aug 15 15:09:22 2018 New Revision: 1838105 URL: http://svn.apache.org/viewvc?rev=1838105&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62620 Fix corruption of response bodies when writing large bodies using asynchronous processing over HTTP/2. Added: tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java - copied unchanged from r1838104, tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Modified: tomcat/tc8.5.x/trunk/ (props changed) tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/Stream.java tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java tomcat/tc8.5.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.5.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 15 15:09:22 2018 @@ -1,2 +1,2 @@ /tomcat/tc8.0.x/trunk:1809644 -/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737903,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739492,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409 ,1741501,1741677,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743698,1743700-1743701,1744058,1744064-1744065,1744125,1744149,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744713,1744760,1744786,1745083,1745142-1745143,1745145,1745177,1745179-1745180,1745227,1745248,1745254,1745337,1745467,1745473,1745535,1745576,1745735,1745744,1746304,1746306-1746307,1746319,1746327,1746338,1746340-1746341,1746344,1746427,1746441,1746473,1746490,1746492,1746495-1746496,1746499-1746501,1746503-1746507,1746509,1746549,1746551,1746554,1746556,1746558,1746584,1746620,1746649,1746724,1746939,1746989,1747014,1747028,1747035,1747210,1747225,1747234,1747253,1747 404,1747506,1747536,1747924,1747980,1747993,1748001,1748253,1748452,1748547,1748629,1748676,1748715,1749287,1749296,1749328,1749373,1749465,1749506,1749508,1749665-1749666,1749763,1749865-1749866,1749898,1749978,1749980,1750011,1750015,1750056,1750480,1750617,1750634,1750692,1750697,1750700,1750703,1750707,1750714,1750718,1750723,1750774,1750899,1750975,1750995,1751061,1751097,1751173,1751438,1751447,1751463,1751702,1752212,1752737,1752745,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755005,1755007,1755009,1755132,1755180-1755181,1755185,1755190,1755204-1755206,1755208,1755214,1755224,1755227,1755230,1755629,1755646-1755647,1755650,1755653,1755675,1755680,1755683,1755693,1755717,1755731-1755737,1755812,1755828,1755884,1755890,1755918-1755919,1755942,1755958,1755960,1755970,1755993,1756013,1756019,1756039,1756056,1756083-1756114,1756175,1756288-1 756289,1756408-1756410,1756778,1756798,1756878,1756898,1756939,1757123-1757124,1757126,1757128,1757132-1757133,1757136,1757145,1757167-1757168,1757175,1757180,1757182,1757195,1757271,1757278,1757347,1757353-1757354,1757363,1757374,1757399,1757406,1757408,1757485,1757495,1757499,1757527,1757578,1757684,1757722,1757727,1757790,1757799,1757813,1757853,1757883,1757903,1757976,1757997,1758000,1758058,1758072-1758075,1758078-1758079,1758223,1758257,1758261,1758276,1758292,1758369,1758378-1758383,1758421,1758423,1758425-1758427,1758430,1758443,1758448,1758459,1758483,1758486-1758487,1758499,1758525,1758556,1758580,1758582,1758584,1758588,1758842,1759019,1759212,1759224,1759227,1759252,1759274,1759513-1759516,1759611,1759757,1759785-1759790,1760005,1760022,1760109-1760110,1760135,1760200-1760201,1760227,1760300,1760397,1760446,1760454,1760640,1760648,1761057,1761422,1761491,1761498,1761500-1761501,1761550,1761553,1761572,1761574,1761625-1761626,1761628,17616
[Bug 62620] Async servlet over HTTP/2 large write data corrupted
https://bz.apache.org/bugzilla/show_bug.cgi?id=62620 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Mark Thomas --- Fixed in: - trunk for 9.0.12 onwards - 8.5.x for 8.5.34 onwards -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1838106 - in /tomcat/trunk/java/org/apache/tomcat/util/net: Nio2Endpoint.java WriteBuffer.java
Author: markt Date: Wed Aug 15 15:21:12 2018 New Revision: 1838106 URL: http://svn.apache.org/viewvc?rev=1838106&view=rev Log: Reduce code duplication Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1838106&r1=1838105&r2=1838106&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Wed Aug 15 15:21:12 2018 @@ -32,8 +32,6 @@ import java.nio.channels.CompletionHandl import java.nio.channels.FileChannel; import java.nio.channels.NetworkChannel; import java.nio.file.StandardOpenOption; -import java.util.ArrayList; -import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; @@ -577,11 +575,7 @@ public class Nio2Endpoint extends Abstra } else if (!writeBuffer.isEmpty()) { nestedWriteCompletionCount.get().incrementAndGet(); // Continue writing data using a gathering write -List arrayList = new ArrayList<>(); -if (attachment.hasRemaining()) { -arrayList.add(attachment); -} -ByteBuffer[] array = writeBuffer.transferToListAsArray(arrayList); +ByteBuffer[] array = writeBuffer.toArray(attachment); getSocket().write(array, 0, array.length, toNio2Timeout(getWriteTimeout()), TimeUnit.MILLISECONDS, array, gatheringWriteCompletionHandler); @@ -628,15 +622,9 @@ public class Nio2Endpoint extends Abstra if (nBytes.longValue() < 0) { failed(new EOFException(sm.getString("iob.failedwrite")), attachment); } else if (!writeBuffer.isEmpty() || arrayHasData(attachment)) { -// Continue writing data +// Continue writing data using a gathering write nestedWriteCompletionCount.get().incrementAndGet(); -List arrayList = new ArrayList<>(); -for (ByteBuffer buffer : attachment) { -if (buffer.hasRemaining()) { -arrayList.add(buffer); -} -} -ByteBuffer[] array = writeBuffer.transferToListAsArray(arrayList); +ByteBuffer[] array = writeBuffer.toArray(attachment); getSocket().write(array, 0, array.length, toNio2Timeout(getWriteTimeout()), TimeUnit.MILLISECONDS, array, gatheringWriteCompletionHandler); @@ -1287,12 +1275,7 @@ public class Nio2Endpoint extends Abstra if (hasPermit || writePending.tryAcquire()) { socketBufferHandler.configureWriteBufferForRead(); if (!writeBuffer.isEmpty()) { -// Gathering write of the main buffer plus all leftovers -List arrayList = new ArrayList<>(); -if (socketBufferHandler.getWriteBuffer().hasRemaining()) { - arrayList.add(socketBufferHandler.getWriteBuffer()); -} -ByteBuffer[] array = writeBuffer.transferToListAsArray(arrayList); +ByteBuffer[] array = writeBuffer.toArray(socketBufferHandler.getWriteBuffer()); Nio2Endpoint.startInline(); getSocket().write(array, 0, array.length, toNio2Timeout(getWriteTimeout()), TimeUnit.MILLISECONDS, array, gatheringWriteCompletionHandler); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java?rev=1838106&r1=1838105&r2=1838106&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Wed Aug 15 15:21:12 2018 @@ -18,6 +18,7 @@ package org.apache.tomcat.util.net; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.Iterator; i
svn commit: r1838107 - /tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java
Author: markt Date: Wed Aug 15 15:25:17 2018 New Revision: 1838107 URL: http://svn.apache.org/viewvc?rev=1838107&view=rev Log: Add missing check Modified: tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java?rev=1838107&r1=1838106&r2=1838107&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Wed Aug 15 15:25:17 2018 @@ -85,7 +85,9 @@ public class WriteBuffer { ByteBuffer[] toArray(ByteBuffer... prefixes) { List result = new ArrayList<>(); for (ByteBuffer prefix : prefixes) { -result.add(prefix); +if (prefix.hasRemaining()) { +result.add(prefix); +} } for (ByteBufferHolder buffer : buffers) { buffer.flip(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1838108 - in /tomcat/tc8.5.x/trunk: ./ java/org/apache/tomcat/util/net/Nio2Endpoint.java java/org/apache/tomcat/util/net/WriteBuffer.java
Author: markt Date: Wed Aug 15 15:26:24 2018 New Revision: 1838108 URL: http://svn.apache.org/viewvc?rev=1838108&view=rev Log: Reduce code duplication Modified: tomcat/tc8.5.x/trunk/ (props changed) tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/net/WriteBuffer.java Propchange: tomcat/tc8.5.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 15 15:26:24 2018 @@ -1,2 +1,2 @@ /tomcat/tc8.0.x/trunk:1809644 -/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737903,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739492,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409 ,1741501,1741677,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743698,1743700-1743701,1744058,1744064-1744065,1744125,1744149,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744713,1744760,1744786,1745083,1745142-1745143,1745145,1745177,1745179-1745180,1745227,1745248,1745254,1745337,1745467,1745473,1745535,1745576,1745735,1745744,1746304,1746306-1746307,1746319,1746327,1746338,1746340-1746341,1746344,1746427,1746441,1746473,1746490,1746492,1746495-1746496,1746499-1746501,1746503-1746507,1746509,1746549,1746551,1746554,1746556,1746558,1746584,1746620,1746649,1746724,1746939,1746989,1747014,1747028,1747035,1747210,1747225,1747234,1747253,1747 404,1747506,1747536,1747924,1747980,1747993,1748001,1748253,1748452,1748547,1748629,1748676,1748715,1749287,1749296,1749328,1749373,1749465,1749506,1749508,1749665-1749666,1749763,1749865-1749866,1749898,1749978,1749980,1750011,1750015,1750056,1750480,1750617,1750634,1750692,1750697,1750700,1750703,1750707,1750714,1750718,1750723,1750774,1750899,1750975,1750995,1751061,1751097,1751173,1751438,1751447,1751463,1751702,1752212,1752737,1752745,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755005,1755007,1755009,1755132,1755180-1755181,1755185,1755190,1755204-1755206,1755208,1755214,1755224,1755227,1755230,1755629,1755646-1755647,1755650,1755653,1755675,1755680,1755683,1755693,1755717,1755731-1755737,1755812,1755828,1755884,1755890,1755918-1755919,1755942,1755958,1755960,1755970,1755993,1756013,1756019,1756039,1756056,1756083-1756114,1756175,1756288-1 756289,1756408-1756410,1756778,1756798,1756878,1756898,1756939,1757123-1757124,1757126,1757128,1757132-1757133,1757136,1757145,1757167-1757168,1757175,1757180,1757182,1757195,1757271,1757278,1757347,1757353-1757354,1757363,1757374,1757399,1757406,1757408,1757485,1757495,1757499,1757527,1757578,1757684,1757722,1757727,1757790,1757799,1757813,1757853,1757883,1757903,1757976,1757997,1758000,1758058,1758072-1758075,1758078-1758079,1758223,1758257,1758261,1758276,1758292,1758369,1758378-1758383,1758421,1758423,1758425-1758427,1758430,1758443,1758448,1758459,1758483,1758486-1758487,1758499,1758525,1758556,1758580,1758582,1758584,1758588,1758842,1759019,1759212,1759224,1759227,1759252,1759274,1759513-1759516,1759611,1759757,1759785-1759790,1760005,1760022,1760109-1760110,1760135,1760200-1760201,1760227,1760300,1760397,1760446,1760454,1760640,1760648,1761057,1761422,1761491,1761498,1761500-1761501,1761550,1761553,1761572,1761574,1761625-1761626,1761628,1761682,1761740,1761752,1762051-176205 3,1762123,1762168,1762172,1762182,1762201-1762202,1762204,1762208,1762288,1762296,1762324,1762348,1762353,1762362,1762374,1762492,1762503,1762505,1762541,1762608,1762710,1762753,1762766,1762769,1762944,1762947,1762953,1763167,1763179,1763232,1763259,1763271-1763272,1763276-1763277,1763319-1763320,1763370,1763372,1763375,1763377,1763393,1763412,1763430,1763450,1763462,1763505,1763511-1763512,1763516,1763518
Re: [VOTE] Release Apache Tomcat 9.0.11
Am 11. August 2018 21:32:01 GMT+01:00 schrieb Mark Thomas : >The proposed Apache Tomcat 9.0.11 release is now available for voting. > >The major changes compared to the 9.0.10 release are: > >- Fix issues with Servlet asynchronous listeners when using the > asynchronous Servlet API in conjunction with HTTP/2. > >- Add a default location for the native library: ${catalina.home}/bin > >- Make the Jasper (JSP Engine) Java file generation process > multi-threaded. By default, one thread will be used per core. > Based on a patch by Dan Fabulich. > > >Along with lots of other bug fixes and improvements. > >For full details, see the changelog: >http://svn.apache.org/repos/asf/tomcat/trunk/webapps/docs/changelog.xml > >It can be obtained from: >https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.11/ >The Maven staging repo is: >https://repository.apache.org/content/repositories/orgapachetomcat-1191/ >The svn tag is: >http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_9_0_11/ > >The proposed 9.0.11 release is: >[ ] Broken - do not release >[x] Stable - go ahead and release as 9.0.11 Regards, Felix > >- >To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 8.5.33
Am 12. August 2018 09:43:37 GMT+01:00 schrieb Mark Thomas : >The proposed Apache Tomcat 8.5.33 release is now available for voting. > >The major changes compared to the 8.5.32 release are: > >- Fix issues with Servlet asynchronous listeners when using the > asynchronous Servlet API in conjunction with HTTP/2. > >- When pre-compiling with JspC, report all compilation errors rather > than stopping after the first error. A new option -failFast can be > used to restore the previous behaviour of stopping after the first > error. > Based on a patch provided by Marc Pompl. > >- Make the Jasper (JSP Engine) Java file generation process > multi-threaded. By default, one thread will be used per core. > Based on a patch by Dan Fabulich. > >Along with lots of other bug fixes and improvements. > >It can be obtained from: >https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.5.33/ >The Maven staging repo is: >https://repository.apache.org/content/repositories/orgapachetomcat-1192/ >The svn tag is: >http://svn.apache.org/repos/asf/tomcat/tc8.5.x/tags/TOMCAT_8_5_33/ > >The proposed 8.5.33 release is: >[ ] Broken - do not release >[x] Stable - go ahead and release as 8.5.33 Regards, Felix > >- >To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62628] New: Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE
https://bz.apache.org/bugzilla/show_bug.cgi?id=62628 Bug ID: 62628 Summary: Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE Product: Tomcat 9 Version: 9.0.10 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P2 Component: Servlet Assignee: dev@tomcat.apache.org Reporter: zdap...@google.com Target Milestone: - Same test cases as in https://bz.apache.org/bugzilla/show_bug.cgi?id=62620 Run nghttp client with commands $ nghttp "http://localhost:8080/largeasyncwrite"; -v --window-bits=17 $ nghttp "http://localhost:8080/largeasyncwrite2"; -v --window-bits=17 Note: Test case 2. had a bug at line 55: "while (ready = output.isReady() && i.get() <= 3) {" should be "while ((ready = output.isReady()) && i.get() <= 3) {" -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62628] Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE
https://bz.apache.org/bugzilla/show_bug.cgi?id=62628 --- Comment #1 from Mark Thomas --- Please retest with latest 9.0.x built from svn. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62628] Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE
https://bz.apache.org/bugzilla/show_bug.cgi?id=62628 --- Comment #2 from Dapeng Zhang --- Mark, my test is based on commit 36eba2e863abc943a8a79898ff2ae553fc49139b (HEAD -> trunk, origin/trunk, origin/HEAD) Author: Mark Thomas Date: Wed Aug 15 15:25:17 2018 + Add missing check git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1838107 13f79535-47bb-0310-9956-ffa450edef68 -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 62628] Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE
https://bz.apache.org/bugzilla/show_bug.cgi?id=62628 Mark Thomas changed: What|Removed |Added Version|9.0.10 |9.0.x --- Comment #3 from Mark Thomas --- Thanks. I've added a 9.0.x version to Bugzilla and set it for this issue. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org