[Pkg-puppet-devel] Bug#994843: puppetdb: Frequent command submissions failures with jetty 9.4.16-0+deb10u1
Kienan Stewart
kienan.stewart at burntworld.ca
Tue Sep 21 20:31:31 BST 2021
Package: puppetdb
Version: 6.2.0-3
Severity: important
X-Debbugs-Cc: kienan at koumbit.org
Dear Maintainer,
I'm not sure whether this bug applies more to puppetdb or libjetty9-java, but I will start the report here.
After libjetty9-java upgraded from 9.4.15-1 to 9.4.16-0+deb10u1 frequent puppet agent run errors started happening, with a vague error:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed to execute '/pdb/cmd/v1?checksum=9c18923b33f99552a5e49974ae5ff05be74fb672&version=9&certname=xxx.example.com&command=replace_catalog&producer-timestamp=2021-09-20T20:13:16.121Z' on at least 1 of the following 'server_urls': https://puppet:8081
The error didn't happen regularly for all nodes, but seemed to affect nodes with larger catalogs more frequently.
While testing, I enabled to the debug logging in the puppetdb logback.xml. During the runs that failed, I found a backtrace with the error:
2021-09-20T18:33:07.796-04:00 DEBUG [o.e.j.i.WriteFlusher] ignored: WriteFlusher at 23e9cdf8{IDLE}->null
javax.net.ssl.SSLHandshakeException: Encrypted buffer max length exceeded
A more complete version is towards the end of this report. There is a jetty release that covered a possibly related issue: https://github.com/eclipse/jetty.project/issues/6121
Verifying against our monitoring history, which contains information on the puppet run failures, I noticed that the date corresponded with when the jetty version changed. By downgrading, I was able to confirm that it fixed the situation. As I said at the beginning I'm not sure if the fault here is in puppetdb, or in libjetty9-java.
Please let me know if you need more information.
Debian release: buster
# apt policy
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://deb.debian.org/debian buster/contrib amd64 Packages
release v=10.10,o=Debian,a=oldstable,n=buster,l=Debian,c=contrib,b=amd64
origin deb.debian.org
500 http://deb.debian.org/debian buster/main amd64 Packages
release v=10.10,o=Debian,a=oldstable,n=buster,l=Debian,c=main,b=amd64
origin deb.debian.org
500 http://deb.debian.org/debian buster-updates/main amd64 Packages
release o=Debian,a=oldstable-updates,n=buster-updates,l=Debian,c=main,b=amd64
origin deb.debian.org
500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
release v=10,o=Debian,a=oldstable,n=buster,l=Debian-Security,c=main,b=amd64
origin security.debian.org
2021-09-20T18:33:07.796-04:00 DEBUG [o.e.j.i.WriteFlusher] ignored: WriteFlusher at 23e9cdf8{IDLE}->null
javax.net.ssl.SSLHandshakeException: Encrypted buffer max length exceeded
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:613)
at org.eclipse.jetty.server.HttpConnection.fillRequestBuffer(HttpConnection.java:340)
at org.eclipse.jetty.server.HttpConnection.fillAndParseForContent(HttpConnection.java:313)
at org.eclipse.jetty.server.HttpInputOverHTTP.produceContent(HttpInputOverHTTP.java:33)
at org.eclipse.jetty.server.HttpInput.nextContent(HttpInput.java:369)
at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:301)
at java.base/java.io.InputStream.transferTo(InputStream.java:704)
at java.base/java.nio.file.Files.copy(Files.java:3078)
at puppetlabs.stockpile.queue$write_stream.invokeStatic(queue.clj:102)
at puppetlabs.stockpile.queue$write_stream.invoke(queue.clj:100)
at puppetlabs.stockpile.queue$store$fn__6587.invoke(queue.clj:282)
at puppetlabs.stockpile.queue$store.invokeStatic(queue.clj:281)
at puppetlabs.stockpile.queue$store.invoke(queue.clj:228)
at puppetlabs.puppetdb.queue$eval21400$store_in_stockpile__21405$fn__21406.invoke(queue.clj:288)
at puppetlabs.puppetdb.queue$eval21400$store_in_stockpile__21405.invoke(queue.clj:283)
at puppetlabs.puppetdb.queue$eval21432$store_command__21437$fn__21438.invoke(queue.clj:321)
at puppetlabs.puppetdb.queue$eval21432$store_command__21437.invoke(queue.clj:317)
at puppetlabs.puppetdb.command$eval37528$do_enqueue_command__37533$fn__37537$fn__37539.invoke(command.clj:253)
at puppetlabs.puppetdb.command.proxy$java.lang.Object$Callable$7da976d4.call(Unknown Source)
at com.codahale.metrics.Timer.time(Timer.java:101)
at puppetlabs.puppetdb.command$eval37528$do_enqueue_command__37533$fn__37537.invoke(command.clj:252)
at puppetlabs.puppetdb.command$eval37528$do_enqueue_command__37533.invoke(command.clj:244)
at puppetlabs.puppetdb.command$reify__37765$service_fnk__23931__auto___positional$reify__37775.enqueue_command(command.clj:728)
at puppetlabs.puppetdb.command$eval37650$fn__37651$G__37638__37667.invoke(command.clj:420)
at puppetlabs.puppetdb.command$eval37650$fn__37651$G__37637__37684.invoke(command.clj:420)
at clojure.lang.AFn.applyToHelper(AFn.java:195)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:673)
at clojure.core$partial$fn__5824.doInvoke(core.clj:2622)
at clojure.lang.RestFn.invoke(RestFn.java:573)
at puppetlabs.puppetdb.http.command$enqueue_command_handler$fn__48413$do_submit__48417.invoke(command.clj:225)
at puppetlabs.puppetdb.http.command$enqueue_command_handler$fn__48413.invoke(command.clj:239)
at compojure.response$eval1557$fn__1558.invoke(response.clj:47)
at compojure.response$eval1479$fn__1480$G__1470__1487.invoke(response.clj:7)
at puppetlabs.puppetdb.http.command$routes$fn__48426.invoke(command.clj:252)
at bidi.ring$eval37244$fn__37245.invoke(ring.cljc:25)
at bidi.ring$eval37223$fn__37224$G__37214__37233.invoke(ring.cljc:16)
at puppetlabs.puppetdb.middleware$eval37961$make_pdb_handler__37970$fn__37973$fn__37975.invoke(middleware.clj:336)
at puppetlabs.puppetdb.http.command$validate_command_version$fn__48312.invoke(command.clj:51)
at puppetlabs.puppetdb.http.command$wrap_with_request_normalization$fn__48407.invoke(command.clj:173)
at puppetlabs.puppetdb.http.command$add_received_param$fn__48423.invoke(command.clj:248)
at puppetlabs.puppetdb.middleware$validate_query_params$fn__37878.invoke(middleware.clj:171)
at puppetlabs.puppetdb.middleware$verify_accepts_content_type$fn__37860.invoke(middleware.clj:114)
at puppetlabs.puppetdb.middleware$verify_content_type$fn__37872.invoke(middleware.clj:144)
at puppetlabs.puppetdb.middleware$verify_content_encoding$fn__37865.invoke(middleware.clj:128)
at puppetlabs.puppetdb.middleware$fail_when_payload_too_large$fn__37910.invoke(middleware.clj:289)
at puppetlabs.puppetdb.middleware$wrap_with_metrics$fn__37888$fn__37897.invoke(middleware.clj:239)
at puppetlabs.puppetdb.utils.metrics$multitime_BANG__STAR_$fn__36085$fn__36086$fn__36087.invoke(metrics.clj:14)
at puppetlabs.puppetdb.utils.metrics.proxy$java.lang.Object$Callable$7da976d4.call(Unknown Source)
at com.codahale.metrics.Timer.time(Timer.java:101)
More information about the Pkg-puppet-devel
mailing list