[JBoss JIRA] (ELY-1699) Intermittently failing AcmeClientSpiTest
by Farah Juma (Jira)
[ https://issues.jboss.org/browse/ELY-1699?page=com.atlassian.jira.plugin.s... ]
Farah Juma updated ELY-1699:
----------------------------
Fix Version/s: 1.6.2.Final
> Intermittently failing AcmeClientSpiTest
> ----------------------------------------
>
> Key: ELY-1699
> URL: https://issues.jboss.org/browse/ELY-1699
> Project: WildFly Elytron
> Issue Type: Bug
> Components: Testsuite
> Affects Versions: 1.7.0.CR2
> Reporter: Martin Choma
> Assignee: Farah Juma
> Priority: Minor
> Fix For: 1.6.2.Final, 1.8.0.CR1
>
>
> We see this failing with ratio 1:100 with error "ELY10038: Unexpected HTTP status code in response from ACME server "404": "Not Found""
> {noformat}
> org.wildfly.security.x500.cert.acme.AcmeException: ELY10038: Unexpected HTTP status code in response from ACME server "404": "Not Found"
> at org.wildfly.security.x500.cert.acme.AcmeClientSpi.handleAcmeErrorResponse(AcmeClientSpi.java:907)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpi.sendGetRequest(AcmeClientSpi.java:728)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpi.getResourceUrls(AcmeClientSpi.java:183)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpi.getResourceUrl(AcmeClientSpi.java:711)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpi.revokeCertificate(AcmeClientSpi.java:639)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpiTest.revokeCertificate(AcmeClientSpiTest.java:334)
> at org.wildfly.security.x500.cert.acme.AcmeClientSpiTest.testRevokeCertificateWithReason(AcmeClientSpiTest.java:324)
> {noformat}
> {noformat}
> 00:27:53,593 INFO (nioEventLoopGroup-3-2) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> returning response:
> {
> "statusCode" : 200,
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Replay-Nonce" : [ "NT_I4byOA1qs22GwXEcNp9RNyoq4hO6JTBMh1iUK3yI" ],
> "Content-Type" : [ "application/json" ],
> "Link" : [ "<https://boulder:4431/terms/v7>;rel=\"terms-of-service\"" ],
> "connection" : [ "keep-alive" ]
> },
> "body" : "{\n \"id\": 384,\n \"key\": {\n \"kty\": \"RSA\",\n \"n\": \"puL-WcMYUJ2Ajdy1UsUgNzjn6ecDxiWd7NGUGq267SOLwhKjSWWMwkopfcg5VMjPJWEE38IIXyjW5nFKCqFAIf3Zlih_1SLcjgVFbibn-oMGFLZs9ggr2bjRGJsbsJQIOKmgVs2y3l5RcIyF2M-UOx4GtAUQJsYittchBLxqjs0SBjWdtpWzaX4fwTCzx48RXuZhky_mKAyKbhAYnIGdDhcVIZsff6zzEM1bpJED6OBZh6pyP-N0kOxcGmPPCHMf0MzwjnK8VrFPEaIIfQAbUC1rTauiqZX7glEnN2kYqOwl8g3nf5fbX6sUuDU15fV0cmdUthy8_GHyE2qdzjPRLw\",\n \"e\": \"AQAB\"\n },\n \"contact\": [\n \"mailto:certificates@example.com\",\n \"mailto:admin@example.com\"\n ],\n \"initialIp\": \"127.0.0.1\",\n \"createdAt\": \"2018-04-23T11:10:28-04:00\",\n \"status\": \"valid\"\n}\n"
> }
> for request:
> {
> "method" : "POST",
> "path" : "/acme/acct/384",
> "body" : "{\"protected\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDAwMS9hY21lL2FjY3QvMzg0Iiwibm9uY2UiOiJma0Q4QkRreW5mSEUxVUVTcFV2SHRDTGE0UzJXa0NJd3BYZE80N1EzdnpBIiwidXJsIjoiaHR0cDovL2xvY2FsaG9zdDo0MDAxL2FjbWUvYWNjdC8zODQifQ\",\"payload\":\"e30\",\"signature\":\"cyg9Mgmgw4KcTGB96Uz1XPflyZCXgBYWRTiuppLLBMVYBG-eZvrCvzkjqlBTXfmixpBaCPoYU9PnNg3FEYgYzut8zgOsrvcgyu7byYdxnO9LxtxFCnLYPp8xGyoRD9W3owAxcbKnwTf3rmxhSKBRCDZnGs-JuZqJc25kbK4tLNZLaPfdyBS3oaE7xzxKrz6waLCIt9_CoRlSjqc9ZY9P8syUVdkdmdMtlyZJPJNt-keteulOA2_4xZzUV0RdxswlivT3v5Zz9bDuj5JPtHx-1NHSjRhLcM2pl2wk9pvm35q4_au4DjiP5enP-x_-qn6fXJuNUsuUdv_DHjmWLYL7Vw\"}",
> "headers" : {
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ],
> "Content-Length" : [ "599" ],
> "Content-Type" : [ "application/jose+json" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> for response action:
> {
> "statusCode" : 200,
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Replay-Nonce" : [ "NT_I4byOA1qs22GwXEcNp9RNyoq4hO6JTBMh1iUK3yI" ],
> "Content-Type" : [ "application/json" ],
> "Link" : [ "<https://boulder:4431/terms/v7>;rel=\"terms-of-service\"" ]
> },
> "body" : "{\n \"id\": 384,\n \"key\": {\n \"kty\": \"RSA\",\n \"n\": \"puL-WcMYUJ2Ajdy1UsUgNzjn6ecDxiWd7NGUGq267SOLwhKjSWWMwkopfcg5VMjPJWEE38IIXyjW5nFKCqFAIf3Zlih_1SLcjgVFbibn-oMGFLZs9ggr2bjRGJsbsJQIOKmgVs2y3l5RcIyF2M-UOx4GtAUQJsYittchBLxqjs0SBjWdtpWzaX4fwTCzx48RXuZhky_mKAyKbhAYnIGdDhcVIZsff6zzEM1bpJED6OBZh6pyP-N0kOxcGmPPCHMf0MzwjnK8VrFPEaIIfQAbUC1rTauiqZX7glEnN2kYqOwl8g3nf5fbX6sUuDU15fV0cmdUthy8_GHyE2qdzjPRLw\",\n \"e\": \"AQAB\"\n },\n \"contact\": [\n \"mailto:certificates@example.com\",\n \"mailto:admin@example.com\"\n ],\n \"initialIp\": \"127.0.0.1\",\n \"createdAt\": \"2018-04-23T11:10:28-04:00\",\n \"status\": \"valid\"\n}\n"
> }
> 00:27:53,601 INFO (nioEventLoopGroup-3-3) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> resetting all expectations and request logs
> 00:27:53,618 INFO (nioEventLoopGroup-3-4) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> creating expectation:
> {
> "httpRequest" : {
> "method" : "GET",
> "path" : "/directory"
> },
> "times" : {
> "remainingTimes" : 1,
> "unlimited" : false
> },
> "timeToLive" : {
> "unlimited" : true
> },
> "httpResponse" : {
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Content-Type" : [ "application/json" ]
> },
> "body" : "{\n \"FpVd7yM-nVU\": \"https://community.letsencrypt.org/t/adding-random-entries-to-the-director...",\n \"keyChange\": \"http://localhost:4001/acme/key-change\",\n \"meta\": {\n \"caaIdentities\": [\n \"happy-hacker-ca.invalid\"\n ],\n \"termsOfService\": \"https://boulder:4431/terms/v7\",\n \"website\": \"https://github.com/letsencrypt/boulder\"\n },\n \"newAccount\": \"http://localhost:4001/acme/new-acct\",\n \"newNonce\": \"http://localhost:4001/acme/new-nonce\",\n \"newOrder\": \"http://localhost:4001/acme/new-order\",\n \"revokeCert\": \"http://localhost:4001/acme/revoke-cert\"\n}\n"
> }
> }
> 00:27:53,634 INFO (nioEventLoopGroup-3-1) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> creating expectation:
> {
> "httpRequest" : {
> "method" : "HEAD",
> "path" : "/acme/new-nonce"
> },
> "times" : {
> "remainingTimes" : 1,
> "unlimited" : false
> },
> "timeToLive" : {
> "unlimited" : true
> },
> "httpResponse" : {
> "statusCode" : 204,
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Replay-Nonce" : [ "-mlJhcox_6FFuDwNhcmL06FWD6uL7K7lam9Jel-MqqM" ]
> }
> }
> }
> 00:27:53,656 INFO (nioEventLoopGroup-3-2) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> creating expectation:
> {
> "httpRequest" : {
> "method" : "POST",
> "path" : "/acme/new-acct",
> "body" : "{\"protected\":\"eyJhbGciOiJSUzI1NiIsImp3ayI6eyJlIjoiQVFBQiIsImt0eSI6IlJTQSIsIm4iOiJwdUwtV2NNWVVKMkFqZHkxVXNVZ056am42ZWNEeGlXZDdOR1VHcTI2N1NPTHdoS2pTV1dNd2tvcGZjZzVWTWpQSldFRTM4SUlYeWpXNW5GS0NxRkFJZjNabGloXzFTTGNqZ1ZGYmlibi1vTUdGTFpzOWdncjJialJHSnNic0pRSU9LbWdWczJ5M2w1UmNJeUYyTS1VT3g0R3RBVVFKc1lpdHRjaEJMeHFqczBTQmpXZHRwV3phWDRmd1RDeng0OFJYdVpoa3lfbUtBeUtiaEFZbklHZERoY1ZJWnNmZjZ6ekVNMWJwSkVENk9CWmg2cHlQLU4wa094Y0dtUFBDSE1mME16d2puSzhWckZQRWFJSWZRQWJVQzFyVGF1aXFaWDdnbEVuTjJrWXFPd2w4ZzNuZjVmYlg2c1V1RFUxNWZWMGNtZFV0aHk4X0dIeUUycWR6alBSTHcifSwibm9uY2UiOiItbWxKaGNveF82RkZ1RHdOaGNtTDA2RldENnVMN0s3bGFtOUplbC1NcXFNIiwidXJsIjoiaHR0cDovL2xvY2FsaG9zdDo0MDAxL2FjbWUvbmV3LWFjY3QifQ\",\"payload\":\"eyJvbmx5UmV0dXJuRXhpc3RpbmciOnRydWV9\",\"signature\":\"lztzTXBmbrxXGMspfEetHDGKdZ2NrpQTioysqHIa9aaL5dy8bPmKZ_Vmz68-xnUJcjK-5FMCn5vtYEKAJlJ7W3wVYzthcVuYlv-b6FNw3IYsdSSHMr5RLm0rSt9EwYd-BI4bCoT7dioYpCMHzTrd-3X8QjDS4fx1o6D-po_Hwkt4PWx5Yoo9ExlykM5cHOQlCQENPk3Pn0M4_8XkfH1QTvVTIm4A4lbo_Eko1aU9PgvWbNsqkEhRzH7rBb5FUlxFgRoSHuTJwn6uJL-H0cfYQUn-J5JyD5C-P8su3M7NoAXCj0vy_84TziHMxe1C8fI-A64M6CtlL9qGm5MwPgv8Gg\"}"
> },
> "times" : {
> "remainingTimes" : 1,
> "unlimited" : false
> },
> "timeToLive" : {
> "unlimited" : true
> },
> "httpResponse" : {
> "statusCode" : 200,
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Replay-Nonce" : [ "zbQR7CL_GSx0oydZ0AVoNEh7omY_XONdWFpYOfeFVQc" ],
> "Link" : [ "<https://boulder:4431/terms/v7>;rel=\"terms-of-service\"" ],
> "Location" : [ "http://localhost:4001/acme/acct/384" ]
> }
> }
> }
> 00:27:53,700 INFO (nioEventLoopGroup-3-3) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> creating expectation:
> {
> "httpRequest" : {
> "method" : "POST",
> "path" : "/acme/revoke-cert",
> "body" : "{\"protected\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDAwMS9hY21lL2FjY3QvMzg0Iiwibm9uY2UiOiJ6YlFSN0NMX0dTeDBveWRaMEFWb05FaDdvbVlfWE9OZFdGcFlPZmVGVlFjIiwidXJsIjoiaHR0cDovL2xvY2FsaG9zdDo0MDAxL2FjbWUvcmV2b2tlLWNlcnQifQ\",\"payload\":\"eyJjZXJ0aWZpY2F0ZSI6Ik1JSUZaekNDQkUtZ0F3SUJBZ0lUQVBfNDBNVEh3LWw1M3lpOWVOMnptclFkX1RBTkJna3Foa2lHOXcwQkFRc0ZBREFmTVIwd0d3WURWUVFEREJSb01uQndlU0JvTW1OclpYSWdabUZyWlNCRFFUQWVGdzB4T0RBME16QXhPRFF4TURoYUZ3MHhPREEzTWpreE9EUXhNRGhhTUI0eEhEQWFCZ05WQkFNVEUyaHRlSFJ1ZFd0c2JHaDRlR3hpYUM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDWUpyX3BaQkNTeV9LZHdLd1c0TDdyNnhWYVB1R0dna1JKY3lnTE5EWUhNd2JObm9zM3FnckpEMk0tRW5HOWlrSmlIRzd5VUtfVHRGNWZrVFA3UEROUzNlallkVTl1RTFHeTM1VTcyVGVzbVpzSC1aNy11NHJsc1JxdzVXcURDUjBGeW1PR0xuUEpVa3hGN29PRlFHc1lwZ3h3T1JVV0g5TlBEUzZTT3RTWF9XbUJ0S015VGM5QW9GRjBlRHM3NlBmOWl5eXZONjh4ejF6Y3g5aENnbDB5ZVNXTFhUNHV1SUJibHIxNXZhdzdCVVFNMnBGdE9aNGFIcWRiTDUtQ05TOWVxNUk2WTRpMW1yQVBEWklkN2xMOHAxY2tQLXI0dlh0a0VVdmxEaXFNMzdiRlB3enZDMWVVeGtOanNTdnQ0OGh4TTBtMU82cHZhTVB2Qm1CWGxHOUZBZ01CQUFHamdnS2JNSUlDbHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01Bd0dBMVVkRXdFQl93UUNNQUF3SFFZRFZSME9CQllFRkl3VXBFcGpUbmhUTl9XN3JlckkwT3V2alVMck1COEdBMVVkSXdRWU1CYUFGUHQ0VHhMNVlCV0RMSjhYZnpRWnN5NDI2a0dKTUdRR0NDc0dBUVVGQndFQkJGZ3dWakFpQmdnckJnRUZCUWN3QVlZV2FIUjBjRG92THpFeU55NHdMakF1TVRvME1EQXlMekF3QmdnckJnRUZCUWN3QW9Za2FIUjBjRG92TDJKdmRXeGtaWEk2TkRRek1DOWhZMjFsTDJsemMzVmxjaTFqWlhKME1CNEdBMVVkRVFRWE1CV0NFMmh0ZUhSdWRXdHNiR2g0ZUd4aWFDNWpiMjB3SndZRFZSMGZCQ0F3SGpBY29CcWdHSVlXYUhSMGNEb3ZMMlY0WVcxd2JHVXVZMjl0TDJOeWJEQmhCZ05WSFNBRVdqQllNQWdHQm1lQkRBRUNBVEJNQmdNcUF3UXdSVEFpQmdnckJnRUZCUWNDQVJZV2FIUjBjRG92TDJWNFlXMXdiR1V1WTI5dEwyTndjekFmQmdnckJnRUZCUWNDQWpBVERCRkVieUJYYUdGMElGUm9iM1VnVjJsc2REQ0NBUVFHQ2lzR0FRUUIxbmtDQkFJRWdmVUVnZklBOEFCMUFOMlpOUHlsNXlTQXlWWm9mWUUwbVFoSnNrbjN0V25ZeDd5clAxekI4MjVrQUFBQll4Z1NzYVFBQUFRREFFWXdSQUlnTUFGb19yNFl0aWNfc1lpVmxpaE10ZGZSZDFnclNYSUl1U2pwQzNZT1NOZ0NJRzdMWTlkMGl2cVV2czJ3Y0Z1Q0tNZkFsdDFNWTNvcjR6cGJlelFsNWpvREFIY0FGdWhwd2RHVjZ0ZkQtSmNhNF9CMkFmZU00YmFkTWFoU0dMYURmekdvRlFnQUFBRmpHQkt4cFFBQUJBTUFTREJHQWlFQTRYSmZVd3JVbkxWUGxRbF9IVVFxakRUVkFRdDJIN29BdXNrWUhiT3EtYTRDSVFEcGZwa3pNbkxudlNxay02QU5ZRWRKb0p5Q0M3M1ZwdHo0WG1MVnJMNHNtekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBc1VEMUJ6M2NWQzA4NXF4a2VkYzJqd3FUSEk0UF9OaERrQVFmSGhrQ0VlaFoyVTVmRE1YWXFwZDh0UUluZUdoZU1ZTkQ4OWRFQXYyXzI5SXNGXzhKNC1uSURrLU1XQkFsQm43VUtES2xDbEdza0RDenJPajF6clJwOUtscTNLaElFSkUzT01nTGIyM3pNbERLeWRIcXA5OGtTc25hQmFoS1VlV3l1WXcxdmNwemZ3TjE0UG9xMW1jRnJWUFAxcWRBNG1NMTVFVHgyV0tZdTFWaWIySVVESmx2STNYbUg5SFR5ODZYRTRMNXFTd20xalJFbzZ5a3FDTmhSMHJMeHhHeXhDRldWVXVLNG9SaFR3YmF0VzEzR3JvSlhGdGNQeVVuRGJkSU9iRzIwLV9DME9ZMk9Rc1pWQTNWTC1IQ2c3ckt6QnZOSTNlaVkzVVNMYVBMM1I0dWhnIiwicmVhc29uIjoxMH0\",\"signature\":\"eP8PR2UEdU-HW7hM0XyeDWuPADRh_XKwmNM8QmowJzn4WLYkp-pHbnpGnID0aRTAjFQsvvPmkWIrNN9TMCgwfr5EqP7xoU1uGS3J6uNydZI4TyjGZaJ9v1I9sqb5Zw_Q5cht-vSMnxznmuEu3K_6jrDLq9x-U22sNFyA_aoqu5odPNJl_l2D2ZHaPbO19NjOfc2-mgBKR4y850oEzz8vKsFcPjtASFMoC3Ulyc2kDHuUeH9HL3W4DqvD0ygVhcbh5R9NRzwefj1h2YSD_8QJj20DprPSReJ_LxZTZzy3-oB3WWibLUaVS6xr0ZbMCPQSp_rTSRWpekWoM7vm_XwdCQ\"}"
> },
> "times" : {
> "remainingTimes" : 1,
> "unlimited" : false
> },
> "timeToLive" : {
> "unlimited" : true
> },
> "httpResponse" : {
> "statusCode" : 200,
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Replay-Nonce" : [ "q4qaFhcWgftkiRaaeEZskz_fp9ue2OJGRDW3mYBGCNk" ]
> }
> }
> }
> 00:27:53,712 INFO (nioEventLoopGroup-3-2) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> request:
> {
> "method" : "GET",
> "path" : "/directory",
> "headers" : {
> "content-length" : [ "0" ],
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> matched expectation:
> {
> "method" : "GET",
> "path" : "/directory"
> }
> 00:27:53,713 INFO (nioEventLoopGroup-3-2) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> returning response:
> {
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Content-Type" : [ "application/json" ],
> "connection" : [ "keep-alive" ]
> },
> "body" : "{\n \"FpVd7yM-nVU\": \"https://community.letsencrypt.org/t/adding-random-entries-to-the-director...",\n \"keyChange\": \"http://localhost:4001/acme/key-change\",\n \"meta\": {\n \"caaIdentities\": [\n \"happy-hacker-ca.invalid\"\n ],\n \"termsOfService\": \"https://boulder:4431/terms/v7\",\n \"website\": \"https://github.com/letsencrypt/boulder\"\n },\n \"newAccount\": \"http://localhost:4001/acme/new-acct\",\n \"newNonce\": \"http://localhost:4001/acme/new-nonce\",\n \"newOrder\": \"http://localhost:4001/acme/new-order\",\n \"revokeCert\": \"http://localhost:4001/acme/revoke-cert\"\n}\n"
> }
> for request:
> {
> "method" : "GET",
> "path" : "/directory",
> "headers" : {
> "content-length" : [ "0" ],
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> for response action:
> {
> "headers" : {
> "Cache-Control" : [ "public, max-age=0, no-cache" ],
> "Content-Type" : [ "application/json" ]
> },
> "body" : "{\n \"FpVd7yM-nVU\": \"https://community.letsencrypt.org/t/adding-random-entries-to-the-director...",\n \"keyChange\": \"http://localhost:4001/acme/key-change\",\n \"meta\": {\n \"caaIdentities\": [\n \"happy-hacker-ca.invalid\"\n ],\n \"termsOfService\": \"https://boulder:4431/terms/v7\",\n \"website\": \"https://github.com/letsencrypt/boulder\"\n },\n \"newAccount\": \"http://localhost:4001/acme/new-acct\",\n \"newNonce\": \"http://localhost:4001/acme/new-nonce\",\n \"newOrder\": \"http://localhost:4001/acme/new-order\",\n \"revokeCert\": \"http://localhost:4001/acme/revoke-cert\"\n}\n"
> }
> 00:27:53,714 INFO (nioEventLoopGroup-3-4) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> request:
> {
> "method" : "GET",
> "path" : "/directory",
> "headers" : {
> "content-length" : [ "0" ],
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> did not match expectation:
> {
> "method" : "HEAD",
> "path" : "/acme/new-nonce"
> }
> because:
> method matches = false
> path matches = false
> query string parameters match = true
> body matches = true
> headers match = true
> cookies match = true
> keep-alive matches = true
> ssl matches = true
> 00:27:53,715 INFO (nioEventLoopGroup-3-4) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> request:
> {
> "method" : "GET",
> "path" : "/directory",
> "headers" : {
> "content-length" : [ "0" ],
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> did not match expectation:
> {
> "method" : "POST",
> "path" : "/acme/new-acct",
> "body" : "{\"protected\":\"eyJhbGciOiJSUzI1NiIsImp3ayI6eyJlIjoiQVFBQiIsImt0eSI6IlJTQSIsIm4iOiJwdUwtV2NNWVVKMkFqZHkxVXNVZ056am42ZWNEeGlXZDdOR1VHcTI2N1NPTHdoS2pTV1dNd2tvcGZjZzVWTWpQSldFRTM4SUlYeWpXNW5GS0NxRkFJZjNabGloXzFTTGNqZ1ZGYmlibi1vTUdGTFpzOWdncjJialJHSnNic0pRSU9LbWdWczJ5M2w1UmNJeUYyTS1VT3g0R3RBVVFKc1lpdHRjaEJMeHFqczBTQmpXZHRwV3phWDRmd1RDeng0OFJYdVpoa3lfbUtBeUtiaEFZbklHZERoY1ZJWnNmZjZ6ekVNMWJwSkVENk9CWmg2cHlQLU4wa094Y0dtUFBDSE1mME16d2puSzhWckZQRWFJSWZRQWJVQzFyVGF1aXFaWDdnbEVuTjJrWXFPd2w4ZzNuZjVmYlg2c1V1RFUxNWZWMGNtZFV0aHk4X0dIeUUycWR6alBSTHcifSwibm9uY2UiOiItbWxKaGNveF82RkZ1RHdOaGNtTDA2RldENnVMN0s3bGFtOUplbC1NcXFNIiwidXJsIjoiaHR0cDovL2xvY2FsaG9zdDo0MDAxL2FjbWUvbmV3LWFjY3QifQ\",\"payload\":\"eyJvbmx5UmV0dXJuRXhpc3RpbmciOnRydWV9\",\"signature\":\"lztzTXBmbrxXGMspfEetHDGKdZ2NrpQTioysqHIa9aaL5dy8bPmKZ_Vmz68-xnUJcjK-5FMCn5vtYEKAJlJ7W3wVYzthcVuYlv-b6FNw3IYsdSSHMr5RLm0rSt9EwYd-BI4bCoT7dioYpCMHzTrd-3X8QjDS4fx1o6D-po_Hwkt4PWx5Yoo9ExlykM5cHOQlCQENPk3Pn0M4_8XkfH1QTvVTIm4A4lbo_Eko1aU9PgvWbNsqkEhRzH7rBb5FUlxFgRoSHuTJwn6uJL-H0cfYQUn-J5JyD5C-P8su3M7NoAXCj0vy_84TziHMxe1C8fI-A64M6CtlL9qGm5MwPgv8Gg\"}"
> }
> because:
> method matches = false
> path matches = false
> query string parameters match = true
> body matches = false
> headers match = true
> cookies match = true
> keep-alive matches = true
> ssl matches = true
> 00:27:53,716 INFO (nioEventLoopGroup-3-4) [org.mockserver.mock.HttpStateHandler] <LoggingFormatter.java:34> request:
> {
> "method" : "GET",
> "path" : "/directory",
> "headers" : {
> "content-length" : [ "0" ],
> "Accept" : [ "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" ],
> "User-Agent" : [ "Elytron ACME Client/1.7.0.CR2" ],
> "Connection" : [ "keep-alive" ],
> "Host" : [ "localhost:4001" ],
> "Accept-Language" : [ "en-US" ]
> },
> "keepAlive" : true,
> "secure" : false
> }
> did not match expectation:
> {
> "method" : "POST",
> "path" : "/acme/revoke-cert",
> "body" : "{\"protected\":\"eyJhbGciOiJSUzI1NiIsImtpZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NDAwMS9hY21lL2FjY3QvMzg0Iiwibm9uY2UiOiJ6YlFSN0NMX0dTeDBveWRaMEFWb05FaDdvbVlfWE9OZFdGcFlPZmVGVlFjIiwidXJsIjoiaHR0cDovL2xvY2FsaG9zdDo0MDAxL2FjbWUvcmV2b2tlLWNlcnQifQ\",\"payload\":\"eyJjZXJ0aWZpY2F0ZSI6Ik1JSUZaekNDQkUtZ0F3SUJBZ0lUQVBfNDBNVEh3LWw1M3lpOWVOMnptclFkX1RBTkJna3Foa2lHOXcwQkFRc0ZBREFmTVIwd0d3WURWUVFEREJSb01uQndlU0JvTW1OclpYSWdabUZyWlNCRFFUQWVGdzB4T0RBME16QXhPRFF4TURoYUZ3MHhPREEzTWpreE9EUXhNRGhhTUI0eEhEQWFCZ05WQkFNVEUyaHRlSFJ1ZFd0c2JHaDRlR3hpYUM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDWUpyX3BaQkNTeV9LZHdLd1c0TDdyNnhWYVB1R0dna1JKY3lnTE5EWUhNd2JObm9zM3FnckpEMk0tRW5HOWlrSmlIRzd5VUtfVHRGNWZrVFA3UEROUzNlallkVTl1RTFHeTM1VTcyVGVzbVpzSC1aNy11NHJsc1JxdzVXcURDUjBGeW1PR0xuUEpVa3hGN29PRlFHc1lwZ3h3T1JVV0g5TlBEUzZTT3RTWF9XbUJ0S015VGM5QW9GRjBlRHM3NlBmOWl5eXZONjh4ejF6Y3g5aENnbDB5ZVNXTFhUNHV1SUJibHIxNXZhdzdCVVFNMnBGdE9aNGFIcWRiTDUtQ05TOWVxNUk2WTRpMW1yQVBEWklkN2xMOHAxY2tQLXI0dlh0a0VVdmxEaXFNMzdiRlB3enZDMWVVeGtOanNTdnQ0OGh4TTBtMU82cHZhTVB2Qm1CWGxHOUZBZ01CQUFHamdnS2JNSUlDbHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01Bd0dBMVVkRXdFQl93UUNNQUF3SFFZRFZSME9CQllFRkl3VXBFcGpUbmhUTl9XN3JlckkwT3V2alVMck1COEdBMVVkSXdRWU1CYUFGUHQ0VHhMNVlCV0RMSjhYZnpRWnN5NDI2a0dKTUdRR0NDc0dBUVVGQndFQkJGZ3dWakFpQmdnckJnRUZCUWN3QVlZV2FIUjBjRG92THpFeU55NHdMakF1TVRvME1EQXlMekF3QmdnckJnRUZCUWN3QW9Za2FIUjBjRG92TDJKdmRXeGtaWEk2TkRRek1DOWhZMjFsTDJsemMzVmxjaTFqWlhKME1CNEdBMVVkRVFRWE1CV0NFMmh0ZUhSdWRXdHNiR2g0ZUd4aWFDNWpiMjB3SndZRFZSMGZCQ0F3SGpBY29CcWdHSVlXYUhSMGNEb3ZMMlY0WVcxd2JHVXVZMjl0TDJOeWJEQmhCZ05WSFNBRVdqQllNQWdHQm1lQkRBRUNBVEJNQmdNcUF3UXdSVEFpQmdnckJnRUZCUWNDQVJZV2FIUjBjRG92TDJWNFlXMXdiR1V1WTI5dEwyTndjekFmQmdnckJnRUZCUWNDQWpBVERCRkVieUJYYUdGMElGUm9iM1VnVjJsc2REQ0NBUVFHQ2lzR0FRUUIxbmtDQkFJRWdmVUVnZklBOEFCMUFOMlpOUHlsNXlTQXlWWm9mWUUwbVFoSnNrbjN0V25ZeDd5clAxekI4MjVrQUFBQll4Z1NzYVFBQUFRREFFWXdSQUlnTUFGb19yNFl0aWNfc1lpVmxpaE10ZGZSZDFnclNYSUl1U2pwQzNZT1NOZ0NJRzdMWTlkMGl2cVV2czJ3Y0Z1Q0tNZkFsdDFNWTNvcjR6cGJlelFsNWpvREFIY0FGdWhwd2RHVjZ0ZkQtSmNhNF9CMkFmZU00YmFkTWFoU0dMYURmekdvRlFnQUFBRmpHQkt4cFFBQUJBTUFTREJHQWlFQTRYSmZVd3JVbkxWUGxRbF9IVVFxakRUVkFRdDJIN29BdXNrWUhiT3EtYTRDSVFEcGZwa3pNbkxudlNxay02QU5ZRWRKb0p5Q0M3M1ZwdHo0WG1MVnJMNHNtekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBc1VEMUJ6M2NWQzA4NXF4a2VkYzJqd3FUSEk0UF9OaERrQVFmSGhrQ0VlaFoyVTVmRE1YWXFwZDh0UUluZUdoZU1ZTkQ4OWRFQXYyXzI5SXNGXzhKNC1uSURrLU1XQkFsQm43VUtES2xDbEdza0RDenJPajF6clJwOUtscTNLaElFSkUzT01nTGIyM3pNbERLeWRIcXA5OGtTc25hQmFoS1VlV3l1WXcxdmNwemZ3TjE0UG9xMW1jRnJWUFAxcWRBNG1NMTVFVHgyV0tZdTFWaWIySVVESmx2STNYbUg5SFR5ODZYRTRMNXFTd20xalJFbzZ5a3FDTmhSMHJMeHhHeXhDRldWVXVLNG9SaFR3YmF0VzEzR3JvSlhGdGNQeVVuRGJkSU9iRzIwLV9DME9ZMk9Rc1pWQTNWTC1IQ2c3ckt6QnZOSTNlaVkzVVNMYVBMM1I0dWhnIiwicmVhc29uIjoxMH0\",\"signature\":\"eP8PR2UEdU-HW7hM0XyeDWuPADRh_XKwmNM8QmowJzn4WLYkp-pHbnpGnID0aRTAjFQsvvPmkWIrNN9TMCgwfr5EqP7xoU1uGS3J6uNydZI4TyjGZaJ9v1I9sqb5Zw_Q5cht-vSMnxznmuEu3K_6jrDLq9x-U22sNFyA_aoqu5odPNJl_l2D2ZHaPbO19NjOfc2-mgBKR4y850oEzz8vKsFcPjtASFMoC3Ulyc2kDHuUeH9HL3W4DqvD0ygVhcbh5R9NRzwefj1h2YSD_8QJj20DprPSReJ_LxZTZzy3-oB3WWibLUaVS6xr0ZbMCPQSp_rTSRWpekWoM7vm_XwdCQ\"}"
> }
> because:
> method matches = false
> path matches = false
> query string parameters match = true
> body matches = false
> headers match = true
> cookies match = true
> keep-alive matches = true
> ssl matches = true
> {noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (WFCORE-4329) The launcher API may incorrectly assume the JVM is a non-modular JVM
by James Perkins (Jira)
James Perkins created WFCORE-4329:
-------------------------------------
Summary: The launcher API may incorrectly assume the JVM is a non-modular JVM
Key: WFCORE-4329
URL: https://issues.jboss.org/browse/WFCORE-4329
Project: WildFly Core
Issue Type: Bug
Components: Launcher
Reporter: James Perkins
Assignee: James Perkins
The launcher API checks the {{$JAVA_HOME/jmods}} directory and if missing assumes it's a non-modular JVM, e.g. Java 8 or lower. In some cases this directory does not exist. We need a better way to determine the JVM version.
It's done in the wildfly-maven-plugin like:
{code}
/**
* Checks to see if the {@code javaHome} is a modular JVM.
*
* @param javaHome the Java Home if {@code null} an attempt to discover the Java Home will be done
*
* @return {@code true} if this is a modular environment
*/
public static boolean isModularJvm(final Path javaHome) {
boolean result;
final List<String> cmd = new ArrayList<>();
cmd.add(getJavaCommand(javaHome));
cmd.add("--add-modules=java.se");
cmd.add("-version");
final ProcessBuilder builder = new ProcessBuilder(cmd);
Process process = null;
Path stdout = null;
try {
// Create a temporary file for stdout
stdout = Files.createTempFile("stdout", ".txt");
process = builder.redirectErrorStream(true)
.redirectOutput(stdout.toFile()).start();
if (process.waitFor(1, TimeUnit.SECONDS)) {
result = process.exitValue() == 0;
} else {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(getStdoutMessage("The process timed out waiting for the response.", stdout));
}
result = false;
}
} catch (IOException | InterruptedException e) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(getStdoutMessage("The process ended in error.", stdout), e);
}
result = false;
} finally {
if (process != null && process.isAlive()) {
process.destroyForcibly();
}
if (stdout != null) {
try {
Files.deleteIfExists(stdout);
} catch (IOException ignore) {
}
}
}
return result;
}
{code}
This works, however requires a new process to be created and launched which is not ideal.
It does look like there might be a {{$JAVA_HOME/release}} file which looks like a properties file with the {{JAVA_VERSION}} property. However we need to determine if all vendors include this file.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (WFLY-11706) Deadlock in cleanup following DatabaseCertLoginModuleTestCase
by Ondra Chaloupka (Jira)
[ https://issues.jboss.org/browse/WFLY-11706?page=com.atlassian.jira.plugin... ]
Ondra Chaloupka reassigned WFLY-11706:
--------------------------------------
Assignee: Ondra Chaloupka (was: Tom Jenkinson)
> Deadlock in cleanup following DatabaseCertLoginModuleTestCase
> -------------------------------------------------------------
>
> Key: WFLY-11706
> URL: https://issues.jboss.org/browse/WFLY-11706
> Project: WildFly
> Issue Type: Bug
> Components: Test Suite, Transactions
> Reporter: Brian Stansberry
> Assignee: Ondra Chaloupka
> Priority: Critical
> Attachments: hang.txt
>
>
> A test hung due to a server-side deadlock.
> https://ci.wildfly.org/viewLog.html?buildId=139407&buildTypeId=WFPR&tab=b...
> Build log output stopped at this point:
> [18:27:07][Step 2/3] [INFO] Running org.jboss.as.test.manualmode.security.OutboundLdapConnectionTestCase
> [18:27:42][Step 2/3] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 34.744 s - in org.jboss.as.test.manualmode.security.OutboundLdapConnectionTestCase
> [18:27:43][Step 2/3] [INFO] Running org.jboss.as.test.manualmode.web.ssl.DatabaseCertLoginModuleTestCase
> The 'main' thread of the test shows the test was shutting down the server:
> {code}
> "main" #1 prio=5 os_prio=0 tid=0xf6507c00 nid=0x205c in Object.wait() [0xf667d000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xc807a168> (a java.lang.UNIXProcess)
> at java.lang.Object.wait(Object.java:502)
> at java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)
> - locked <0xc807a168> (a java.lang.UNIXProcess)
> at org.wildfly.core.launcher.ProcessHelper.destroyProcess(ProcessHelper.java:60)
> at org.jboss.as.arquillian.container.managed.ManagedDeployableContainer.stopInternal(ManagedDeployableContainer.java:294)
> at org.jboss.as.arquillian.container.CommonDeployableContainer.stop(CommonDeployableContainer.java:135)
> at org.jboss.arquillian.container.impl.ContainerImpl.stop(ContainerImpl.java:217)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$9.perform(ContainerLifecycleController.java:178)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$9.perform(ContainerLifecycleController.java:172)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.stopContainer(ContainerLifecycleController.java:171)
> {code}
> The server-side thread dump shows the hang:
> {code}
> Found one Java-level deadlock:
> =============================
> "Periodic Recovery":
> waiting to lock monitor 0xbcc6dbc0 (object 0xc8f80918, a java.util.concurrent.atomic.AtomicInteger),
> which is held by "ServerService Thread Pool -- 8"
> "ServerService Thread Pool -- 8":
> waiting to lock monitor 0xc1a6ffc8 (object 0xc8f64470, a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule),
> which is held by "Periodic Recovery"
> Java stack information for the threads listed above:
> ===================================================
> "Periodic Recovery":
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.setScanState(XARecoveryModule.java:1088)
> - waiting to lock <0xc8f80918> (a java.util.concurrent.atomic.AtomicInteger)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:240)
> - locked <0xc8f64470> (a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:816)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:382)
> "ServerService Thread Pool -- 8":
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.removeXAResourceRecoveryHelper(XARecoveryModule.java:119)
> - waiting to lock <0xc8f64470> (a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule)
> - locked <0xc8f80918> (a java.util.concurrent.atomic.AtomicInteger)
> at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.removeXAResourceRecovery(RecoveryManagerService.java:129)
> at org.jboss.jca.core.tx.jbossts.XAResourceRecoveryRegistryImpl.removeXAResourceRecovery(XAResourceRecoveryRegistryImpl.java:63)
> at org.jboss.as.connector.subsystems.datasources.XaDataSourceService.stopService(XaDataSourceService.java:66)
> - locked <0xc8f95a38> (a org.jboss.as.connector.subsystems.datasources.XaDataSourceService)
> at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$1.run(AbstractDataSourceService.java:188)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Found 1 deadlock.
> {code}
> I'll attach the full thread dump.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (WFLY-11706) Deadlock in cleanup following DatabaseCertLoginModuleTestCase
by Ondra Chaloupka (Jira)
[ https://issues.jboss.org/browse/WFLY-11706?page=com.atlassian.jira.plugin... ]
Ondra Chaloupka commented on WFLY-11706:
----------------------------------------
[~tomjenkinson] sure, no problem. I hope to add to this at the end of the week if it's ok.
> Deadlock in cleanup following DatabaseCertLoginModuleTestCase
> -------------------------------------------------------------
>
> Key: WFLY-11706
> URL: https://issues.jboss.org/browse/WFLY-11706
> Project: WildFly
> Issue Type: Bug
> Components: Test Suite, Transactions
> Reporter: Brian Stansberry
> Assignee: Tom Jenkinson
> Priority: Critical
> Attachments: hang.txt
>
>
> A test hung due to a server-side deadlock.
> https://ci.wildfly.org/viewLog.html?buildId=139407&buildTypeId=WFPR&tab=b...
> Build log output stopped at this point:
> [18:27:07][Step 2/3] [INFO] Running org.jboss.as.test.manualmode.security.OutboundLdapConnectionTestCase
> [18:27:42][Step 2/3] [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 34.744 s - in org.jboss.as.test.manualmode.security.OutboundLdapConnectionTestCase
> [18:27:43][Step 2/3] [INFO] Running org.jboss.as.test.manualmode.web.ssl.DatabaseCertLoginModuleTestCase
> The 'main' thread of the test shows the test was shutting down the server:
> {code}
> "main" #1 prio=5 os_prio=0 tid=0xf6507c00 nid=0x205c in Object.wait() [0xf667d000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0xc807a168> (a java.lang.UNIXProcess)
> at java.lang.Object.wait(Object.java:502)
> at java.lang.UNIXProcess.waitFor(UNIXProcess.java:395)
> - locked <0xc807a168> (a java.lang.UNIXProcess)
> at org.wildfly.core.launcher.ProcessHelper.destroyProcess(ProcessHelper.java:60)
> at org.jboss.as.arquillian.container.managed.ManagedDeployableContainer.stopInternal(ManagedDeployableContainer.java:294)
> at org.jboss.as.arquillian.container.CommonDeployableContainer.stop(CommonDeployableContainer.java:135)
> at org.jboss.arquillian.container.impl.ContainerImpl.stop(ContainerImpl.java:217)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$9.perform(ContainerLifecycleController.java:178)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$9.perform(ContainerLifecycleController.java:172)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.stopContainer(ContainerLifecycleController.java:171)
> {code}
> The server-side thread dump shows the hang:
> {code}
> Found one Java-level deadlock:
> =============================
> "Periodic Recovery":
> waiting to lock monitor 0xbcc6dbc0 (object 0xc8f80918, a java.util.concurrent.atomic.AtomicInteger),
> which is held by "ServerService Thread Pool -- 8"
> "ServerService Thread Pool -- 8":
> waiting to lock monitor 0xc1a6ffc8 (object 0xc8f64470, a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule),
> which is held by "Periodic Recovery"
> Java stack information for the threads listed above:
> ===================================================
> "Periodic Recovery":
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.setScanState(XARecoveryModule.java:1088)
> - waiting to lock <0xc8f80918> (a java.util.concurrent.atomic.AtomicInteger)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:240)
> - locked <0xc8f64470> (a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:816)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:382)
> "ServerService Thread Pool -- 8":
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.removeXAResourceRecoveryHelper(XARecoveryModule.java:119)
> - waiting to lock <0xc8f64470> (a com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule)
> - locked <0xc8f80918> (a java.util.concurrent.atomic.AtomicInteger)
> at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.removeXAResourceRecovery(RecoveryManagerService.java:129)
> at org.jboss.jca.core.tx.jbossts.XAResourceRecoveryRegistryImpl.removeXAResourceRecovery(XAResourceRecoveryRegistryImpl.java:63)
> at org.jboss.as.connector.subsystems.datasources.XaDataSourceService.stopService(XaDataSourceService.java:66)
> - locked <0xc8f95a38> (a org.jboss.as.connector.subsystems.datasources.XaDataSourceService)
> at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$1.run(AbstractDataSourceService.java:188)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Found 1 deadlock.
> {code}
> I'll attach the full thread dump.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months
[JBoss JIRA] (WFLY-11678) ManagedExecutorService persists contextClassLoader reference to cause app classloader leaks
by Kabir Khan (Jira)
[ https://issues.jboss.org/browse/WFLY-11678?page=com.atlassian.jira.plugin... ]
Kabir Khan reopened WFLY-11678:
-------------------------------
> ManagedExecutorService persists contextClassLoader reference to cause app classloader leaks
> -------------------------------------------------------------------------------------------
>
> Key: WFLY-11678
> URL: https://issues.jboss.org/browse/WFLY-11678
> Project: WildFly
> Issue Type: Bug
> Components: Concurrency Utilities
> Environment: -- EAP 7.1.4
> Reporter: Lei Yu
> Assignee: James Perkins
> Priority: Critical
> Fix For: 16.0.0.Beta1
>
>
> managed executor:
> {code}
> <managed-executor-services>
> <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>
> </managed-executor-services>
> {code}
> With each undeploy, the application classloader is leaked and not released because contextClassLoader references persisted on the executor threads:
> {code}
> Class Name | Ref. Objects | Shallow Heap | Ref. Shallow Heap | Retained Heap
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> org.jboss.as.ee.concurrent.service.ElytronManagedThreadFactory$ElytronManagedThread @ 0xc3677570 EE-ManagedExecutorService-default-Thread-13 Thread| 1 | 160 | 88 | 1,344
> '- contextClassLoader org.jboss.modules.ModuleClassLoader @ 0xc32b9d98 | 1 | 88 | 88 | 366,800
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> {code}
> Tracing with byteman, what's strange is that it sets the app classloader on setup:
> {code}
> Thread.setContextClassLoader: Thread[EE-ManagedExecutorService-default-Thread-16,5,ServerService ThreadGroup] ModuleClassLoader for Module "deployment.services-1.0.4-rc1.war" from Service Module Loader
> java.lang.Thread.setContextClassLoader(Thread.java:1477)
> org.wildfly.security.manager.WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(WildFlySecurityManager.java:1272)
> org.jboss.as.ee.concurrent.handle.ClassLoaderContextHandleFactory$ClassLoaderSetupContextHandle.setup(ClassLoaderContextHandleFactory.java:83)
> org.jboss.as.ee.concurrent.ConcurrentContext$ChainedSetupContextHandle.setup(ConcurrentContext.java:166)
> org.jboss.as.ee.concurrent.DefaultContextSetupProviderImpl.setup(DefaultContextSetupProviderImpl.java:58)
> org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.setupContext(ManagedFutureTask.java:121)
> org.glassfish.enterprise.concurrent.internal.ManagedThreadPoolExecutor.beforeExecute(ManagedThreadPoolExecutor.java:109)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> java.lang.Thread.run(Thread.java:748)
> {code}
> And still sets that app classloader after task execution in the reset:
> {code}
> Thread.setContextClassLoader: Thread[EE-ManagedExecutorService-default-Thread-16,5,ServerService ThreadGroup] ModuleClassLoader for Module "deployment.services-1.0.4-rc1.war" from Service Module Loader
> java.lang.Thread.setContextClassLoader(Thread.java:1477)
> org.wildfly.security.manager.WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(WildFlySecurityManager.java:1272)
> org.jboss.as.ee.concurrent.handle.ClassLoaderContextHandleFactory$ClassLoaderResetContextHandle.reset(ClassLoaderContextHandleFactory.java:113)
> org.jboss.as.ee.concurrent.ConcurrentContext$ChainedResetContextHandle.reset(ConcurrentContext.java:284)
> org.jboss.as.ee.concurrent.DefaultContextSetupProviderImpl.reset(DefaultContextSetupProviderImpl.java:63)
> org.glassfish.enterprise.concurrent.internal.ManagedFutureTask.resetContext(ManagedFutureTask.java:134)
> org.glassfish.enterprise.concurrent.internal.ManagedThreadPoolExecutor.afterExecute(ManagedThreadPoolExecutor.java:90)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> java.lang.Thread.run(Thread.java:748)
> {code}
> So the thread is sitting in the pool with the app classloader. Is there some way we should be able to get the context loader cleared or unset from the app loader in the reset?
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 7 months