I changed the logging configuration from INFO to DEBUG and found this error
when Jetty tries to serve the request:
Sending HeadersFrame@676f5d6c#1{end=false}
Appended HeadersFrame@676f5d6c#1{end=false}, entries=1
Flushing HTTP2ServerSession@74a58163{l:/0:0:0:0:0:0:0:1:8443 <->
r:/0:0:0:0:0:0:0:1:53320,sendWindow=15728640,recvWindow=1048576,streams=1,NOT_CLOSED,null}
Processing HeadersFrame@676f5d6c#1{end=false}
CtxTbl[3319f232] encoding
encode IdxFieldS1:':status: 200' to '88'
Failure generating HeadersFrame@676f5d6c#1{end=false}
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at
org.eclipse.jetty.http.PreEncodedHttpField.putTo(PreEncodedHttpField.java:118)
at org.eclipse.jetty.http2.hpack.HpackEncoder.encode(HpackEncoder.java:316)
at org.eclipse.jetty.http2.hpack.HpackEncoder.encode(HpackEncoder.java:204)
at
org.eclipse.jetty.http2.generator.HeadersGenerator.generateHeaders(HeadersGenerator.java:72)
at
org.eclipse.jetty.http2.generator.HeadersGenerator.generate(HeadersGenerator.java:56)
at org.eclipse.jetty.http2.generator.Generator.control(Generator.java:80)
at
org.eclipse.jetty.http2.HTTP2Session$ControlEntry.generate(HTTP2Session.java:1250)
at org.eclipse.jetty.http2.HTTP2Flusher.process(HTTP2Flusher.java:187)
at
org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at
org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.http2.HTTP2Session.frame(HTTP2Session.java:757)
at org.eclipse.jetty.http2.HTTP2Session.frames(HTTP2Session.java:727)
at org.eclipse.jetty.http2.HTTP2Stream.headers(HTTP2Stream.java:112)
at
org.eclipse.jetty.http2.server.HttpTransportOverHTTP2.sendHeadersFrame(HttpTransportOverHTTP2.java:270)
at
org.eclipse.jetty.http2.server.HttpTransportOverHTTP2.send(HttpTransportOverHTTP2.java:142)
at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:852)
at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:929)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:250)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:226)
at org.eclipse.jetty.server.HttpOutput.close(HttpOutput.java:308)
at org.eclipse.jetty.server.HttpWriter.close(HttpWriter.java:47)
at org.eclipse.jetty.server.ResponseWriter.close(ResponseWriter.java:161)
at org.eclipse.jetty.server.Response.closeOutput(Response.java:844)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:517)
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:314)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170)
at
org.eclipse.jetty.http2.server.HTTP2ServerConnection.onOpen(HTTP2ServerConnection.java:150)
at org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:442)
at
org.eclipse.jetty.server.NegotiatingServerConnection.onFillable(NegotiatingServerConnection.java:130)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at
org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320)
at
org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
at java.base/java.lang.Thread.run(Thread.java:834)
Failing, entries processed/pending/queued=0/1/0
I re-posted this version here:
https://github.com/GlenKPeterson/classVsJar
On Wed, Oct 2, 2019 at 5:40 PM Glen Peterson <[email protected]>
wrote:
> Yes Joakim. I just made one and posted it here:
> https://github.com/GlenKPeterson/classVsJar
>
> On Wed, Oct 2, 2019 at 2:43 PM Joakim Erdfelt <[email protected]> wrote:
>
>> Do you have a project that you can share that replicates this?
>>
>> Joakim Erdfelt / [email protected]
>>
>>
>> On Wed, Oct 2, 2019 at 1:16 PM Glen Peterson <[email protected]>
>> wrote:
>>
>>> P.S. I was able to get some interesting output from wget2 (successor to
>>> wget). It works fine running with the classes. With the jar file, I get
>>> the following which seems jetty-related:
>>>
>>> $ wget2 -d --no-check-certificate
>>> https://dev.memoryjoggerlibrary.com:8443/
>>> 02.140606.876 name=check-certificate value=
>>> https://dev.memoryjoggerlibrary.com:8443/ invert=1
>>> 02.140606.876 name=check-certificate value=
>>> https://dev.memoryjoggerlibrary.com:8443/ invert=1
>>> 02.140606.876 Local URI encoding = 'UTF-8'
>>> 02.140606.876 Input URI encoding = 'UTF-8'
>>> 02.140606.876 Fetched HSTS data from '/home/gpeterso/.wget-hsts'
>>> 02.140606.876 Fetched HPKP data from '/home/gpeterso/.wget-hpkp'
>>> 02.140606.877 add TLS session data for dev.memoryjoggerlibrary.com
>>> (maxage=64800, size=1260)
>>> 02.140606.877 Fetched TLS session data from
>>> '/home/gpeterso/.wget-session'
>>> 02.140606.877 Fetched OCSP hosts from '/home/gpeterso/.wget-ocsp_hosts'
>>> 02.140606.877 Fetched OCSP fingerprints from '/home/gpeterso/.wget-ocsp'
>>> 02.140606.877 *url = https://dev.memoryjoggerlibrary.com:8443/
>>> 02.140606.877 *3 https://dev.memoryjoggerlibrary.com:8443/
>>> 02.140606.877 local filename = 'index.html'
>>> 02.140606.877 host_add_job: job fname index.html
>>> 02.140606.877 host_add_job: 0x55b15a6bfb60
>>> https://dev.memoryjoggerlibrary.com:8443/
>>> 02.140606.877 host_add_job: qsize 1 host-qsize=1
>>> 02.140606.877 queue_size: qsize=1
>>> 02.140606.877 queue_size: qsize=1
>>> 02.140606.877 queue_size: qsize=1
>>> 02.140606.877 [0] action=1 pending=0 host=0x0
>>> 02.140606.877 qsize=1 blocked=0
>>> 02.140606.877 pause=-1570039566877
>>> 02.140606.877 dequeue job https://dev.memoryjoggerlibrary.com:8443/
>>> 02.140606.877 resolving dev.memoryjoggerlibrary.com:8443...
>>> 02.140606.877 has 127.0.0.1:8443
>>> 02.140606.877 Add dns cache entry dev.memoryjoggerlibrary.com
>>> 02.140606.877 trying 127.0.0.1:8443...
>>> 02.140606.877 GnuTLS init
>>> 02.140606.877 Certificates loaded: -1
>>> 02.140606.877 GnuTLS init done
>>> 02.140606.877 TLS False Start requested
>>> 02.140606.877 ALPN offering h2
>>> 02.140606.877 ALPN offering http/1.1
>>> 02.140606.877 found cached session data for dev.memoryjoggerlibrary.com
>>> WARNING: The certificate is NOT trusted. The certificate issuer is
>>> unknown.
>>> 02.140606.885 TLS False Start: on
>>> 02.140606.885 ALPN: Server accepted protocol 'h2'
>>> 02.140606.885 Handshake completed
>>> 02.140606.885 established connection dev.memoryjoggerlibrary.com
>>> 02.140606.885 cookie_create_request_header for host=
>>> dev.memoryjoggerlibrary.com path=
>>> 02.140606.885 HTTP2 stream id 1
>>> 02.140606.885 [0] action=1 pending=1 host=0x55b15a6bf9c0
>>> 02.140606.885 qsize=1 blocked=0
>>> 02.140606.885 pause=-1570039566885
>>> 02.140606.885 [0] action=2 pending=1 host=0x55b15a6bf9c0
>>> 02.140606.885 ## pending_requests = 1
>>> 02.140606.885 ## loop responses=0
>>> 02.140606.885 [FRAME 0] > SETTINGS
>>> 02.140606.885 [FRAME 1] > HEADERS
>>> 02.140606.885 [FRAME 1] > :method: GET
>>> 02.140606.885 [FRAME 1] > :path: /
>>> 02.140606.885 [FRAME 1] > :scheme: https
>>> 02.140606.885 [FRAME 1] > :authority: dev.memoryjoggerlibrary.com
>>> 02.140606.885 [FRAME 1] > accept-encoding: gzip, deflate, bzip2, xz, lzma
>>> 02.140606.885 [FRAME 1] > accept:
>>> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>>> 02.140606.885 [FRAME 1] > user-agent: wget2/1.0.0
>>> 02.140606.885 ## loop responses=0
>>> 02.140606.886 Got delayed session data
>>> 02.140606.886 found TLS session data for dev.memoryjoggerlibrary.com
>>> 02.140606.886 removed TLS session data for dev.memoryjoggerlibrary.com
>>> 02.140606.886 add TLS session data for dev.memoryjoggerlibrary.com
>>> (maxage=64800, size=1260)
>>> 02.140606.886 ## loop responses=0
>>> 02.140606.886 [FRAME 0] < SETTINGS
>>> 02.140606.886 [FRAME 0] < WINDOW_UPDATE
>>> 02.140606.886 ## loop responses=0
>>> 02.140606.886 [FRAME 0] > SETTINGS
>>> 02.140606.886 ## loop responses=0
>>> 02.140606.886 [FRAME 0] < SETTINGS
>>> 02.140606.886 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>> 02.140608.260 ## loop responses=0
>>>
>>> That scrolled really fast in a loop until I hit CTRL-C
>>>
>>> 02.140608.260 host_increase_failure: dev.memoryjoggerlibrary.com
>>> failures=1
>>> 02.140608.260 closing connection
>>>
>>> It just sat there doing nothing, so I hit CTRL-C again to exit
>>>
>>>
>>> On Wed, Oct 2, 2019 at 1:43 PM Glen Peterson <[email protected]>
>>> wrote:
>>>
>>>> Thank you for jetty. I've been using it for a few years now and love
>>>> it. Especially that I can configure it programmatically (with Kotlin code)
>>>> and that you have updated the SSL/TLS protocol defaults over time. Such an
>>>> improvement over Tomcat!
>>>>
>>>> *Problem*
>>>> My problem may be jar-file/classpath related and not jetty related, but
>>>> then why does jetty actually call my code, service the request, but not
>>>> return the response?
>>>>
>>>> I recently enabled HTTP/2 (Google wants that for a Progressive Web
>>>> App). Now if I run my app the way IntelliJ does, giving the compiled
>>>> classes directory, then adding all the jar dependencies it works. `java
>>>> -classpath classes/:bunch-of-jar-files... MainClassName` it works. But if
>>>> I run from the fat-jar file it doesn't work.
>>>>
>>>> *curl*
>>>>
>>>> *Jar File Failure:*
>>>> $ curl --insecure https://dev.memoryjoggerlibrary.com:8443 -D
>>>> headers.txt
>>>> curl: (56) Unexpected EOF
>>>> $ ls -s
>>>> total 0
>>>> 0 headers.txt
>>>>
>>>> *Class Files Success:*
>>>> That same curl command returns the HTML file I was expecting when
>>>> running with the massive classpath (no fat-jar), plus the following
>>>> headers.txt:
>>>> HTTP/2 200
>>>> server: Jetty(9.4.20.v20190813)
>>>> content-type: text/html;charset=utf-8
>>>>
>>>> I have determined that the jar files included by maven exactly match
>>>> the jar files specified on the command line.
>>>>
>>>> *Chrome*
>>>> With chrome, the class files work great, but the Jar file produces,
>>>> "This site can’t be reached... unexpectedly closed the connection...
>>>> ERR_CONNECTION_CLOSED"
>>>>
>>>> *Unaffected*
>>>> *Log Files:*
>>>> I can see in the log files in both cases that the request is being
>>>> processed, but there is no exception thrown and no response apparently
>>>> written.
>>>>
>>>> *Nmap Cipher Test:*
>>>> Whether it yields HTML or not, the server gives the same response to my
>>>> cipher test:
>>>> $ nmap --script ssl-cert,ssl-enum-ciphers -p 8443
>>>> dev.memoryjoggerlibrary.com
>>>>
>>>> Starting Nmap 7.60 ( https://nmap.org ) at 2019-10-02 13:32 EDT
>>>> Nmap scan report for dev.memoryjoggerlibrary.com (127.0.0.1)
>>>> Host is up (0.000053s latency).
>>>> rDNS record for 127.0.0.1: localhost
>>>>
>>>> PORT STATE SERVICE
>>>> 8443/tcp open https-alt
>>>> | ssl-cert: Subject: commonName=
>>>> dev.memoryjoggerlibrary.com/organizationName=PlanBase
>>>> Inc./stateOrProvinceName=Massachusetts/countryName=US
>>>> | Issuer: commonName=
>>>> dev.memoryjoggerlibrary.com/organizationName=PlanBase
>>>> Inc./stateOrProvinceName=Massachusetts/countryName=US
>>>> | Public Key type: rsa
>>>> | Public Key bits: 2048
>>>> | Signature Algorithm: sha256WithRSAEncryption
>>>> | Not valid before: 2019-09-25T20:57:00
>>>> | Not valid after: 2022-09-25T20:57:00
>>>> | MD5: 483e 988f 709f 7300 3f3d 1d51 4f95 81cb
>>>> |_SHA-1: abe8 c872 c7d7 dfb1 4152 8bf3 2fee 5617 7613 94cd
>>>> | ssl-enum-ciphers:
>>>> | TLSv1.2:
>>>> | ciphers:
>>>> | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
>>>> | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
>>>> | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (rsa 2048) - A
>>>> | compressors:
>>>> | NULL
>>>> | cipher preference: server
>>>> |_ least strength: A
>>>>
>>>> Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
>>>>
>>>> *Details:*
>>>> I'm using a self-signed certificate.
>>>>
>>>> Currently using (from maven .pom):
>>>> <jetty.version>9.4.20.v20190813
>>>> jetty-server
>>>> jetty-alpn-conscrypt-server
>>>> http2-common
>>>> http2-hpack
>>>> http2-server
>>>>
>>>> Not currently using: conscrypt-openjdk (seems to be overridden by the
>>>> conscrypt-openjdk-uber included in jetty-alpn-conscrypt-server - same
>>>> issues with or without this dependency)
>>>>
>>>>
>>>> --
>>>> Glen K. Peterson
>>>> (828) 393-0081
>>>>
>>>
>>>
>>> --
>>> Glen K. Peterson
>>> (828) 393-0081
>>> _______________________________________________
>>> jetty-users mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://www.eclipse.org/mailman/listinfo/jetty-users
>
>
>
> --
> Glen K. Peterson
> (828) 393-0081
>
--
Glen K. Peterson
(828) 393-0081
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-users