[JBoss JIRA] (JBJCA-1276) Prefill race condition
by Takayoshi Kimura (JIRA)
Takayoshi Kimura created JBJCA-1276:
---------------------------------------
Summary: Prefill race condition
Key: JBJCA-1276
URL: https://issues.jboss.org/browse/JBJCA-1276
Project: IronJacamar
Issue Type: Bug
Affects Versions: 1.1.9.Final, 1.0.31.Final
Reporter: Takayoshi Kimura
Assignee: Jesper Pedersen
There is a race condition between AbstractPool and SemaphoreArrayListManagedConnectionPool.
https://github.com/ironjacamar/ironjacamar/blob/ironjacamar-1.0.31.Final/...
https://github.com/ironjacamar/ironjacamar/blob/ironjacamar-1.0.31.Final/...
AbstractPool flushes the mcp, mcp invokes PoolFiller which works in a separate thread. However AbstractPool is going to unregister the empty mcp and this mcp is no longer used. Then the dead mcp is prefilled in a separate thread by PoolFiller.
At next getConnection(), the mcp is re-initialized and prefilled.
I've attached logs, prefill enabled and min-size is 10. Boot server, invoke flush-all-connection-in-pool, getConnection() then killed. The prefill is done 3 times where it should be twice.
{noformat}
16:26:04,254 DEBUG [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (management-handler-thread - 1) ExampleDS: flush(true)
16:26:04,255 TRACE [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (management-handler-thread - 1) Destroying flushed connection org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@1d298ed8[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@4ae26a1b connection handles=0 lastUse=1434353148384 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@56a43905 pool internal context=SemaphoreArrayListManagedConnectionPool@5cbd770e[pool=ExampleDS] xaResource=LocalXAResourceImpl@379ba3b3[connectionListener=1d298ed8 connectionManager=4b18594a warned=false currentXid=null productName=H2 productVersion=@PROJECT_VERSION@ (2012-07-13) jndiName=java:jboss/datasources/ExampleDS] txSync=null]
(repeat 10 times)
16:02:20,666 TRACE [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (management-handler-thread - 7) Shutdown - Pool: ExampleDS MCP: 2f5a2102
16:02:20,666 TRACE [org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory] (JCA PoolFiller) Using properties: {user=sa, password=--hidden--}
16:02:20,666 DEBUG [org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover] (management-handler-thread - 7) Unregister pool: SemaphoreArrayListManagedConnectionPool@2f5a2102[pool=ExampleDS]
16:26:04,259 TRACE [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (JCA PoolFiller) Filling pool cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@34f0bb27[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@288f1898 connection handles=0 lastUse=1434353164259 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@56a43905 pool internal context=SemaphoreArrayListManagedConnectionPool@5cbd770e[pool=ExampleDS] xaResource=LocalXAResourceImpl@4a97b7f5[connectionListener=34f0bb27 connectionManager=4b18594a warned=false currentXid=null productName=H2 productVersion=@PROJECT_VERSION@ (2012-07-13) jndiName=java:jboss/datasources/ExampleDS] txSync=null]
(repeat 10 times)
16:26:11,342 TRACE [org.jboss.jca.core.connectionmanager.TxConnectionManager] (http-/127.0.0.1:8080-1) getManagedConnection interleaving=false , tx=null
16:26:11,343 DEBUG [org.jboss.jca.core.connectionmanager.pool.idle.IdleRemover] (http-/127.0.0.1:8080-1) Register pool: SemaphoreArrayListManagedConnectionPool@1d4ae61f[pool=ExampleDS] (interval=1800000)
16:26:11,344 TRACE [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (JCA PoolFiller) Filling pool cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@1c706b4d[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@18949ad1 connection handles=0 lastUse=1434353171343 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@56a43905 pool internal context=SemaphoreArrayListManagedConnectionPool@1d4ae61f[pool=ExampleDS] xaResource=LocalXAResourceImpl@44401bf2[connectionListener=1c706b4d connectionManager=4b18594a warned=false currentXid=null productName=H2 productVersion=@PROJECT_VERSION@ (2012-07-13) jndiName=java:jboss/datasources/ExampleDS] txSync=null]
(repeat 10 times)
{noformat}
In 1.0.31.Final:
> if (mcp.isEmpty())
> clearMcpPools.add(mcp);
In 1.2 branch it looks like already fixed within commit 956af09c8494d4187db24a253e7e37b5ba5d9779 for JBJCA-1135:
> if (mcp.isEmpty() && !isPrefill() && size > 1)
> clearMcpPools.add(mcp);
We probably need to backport "!isPrefill()" to the 1.0/1.1 branch.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
11 years, 1 month
[JBoss JIRA] (WFLY-4757) ConfigurationPersistenceException when persisting mod_cluster subsystem's "proxies" attribute
by Radoslav Husar (JIRA)
[ https://issues.jboss.org/browse/WFLY-4757?page=com.atlassian.jira.plugin.... ]
Radoslav Husar updated WFLY-4757:
---------------------------------
Fix Version/s: 9.0.0.CR2
(was: 9.0.0.Final)
> ConfigurationPersistenceException when persisting mod_cluster subsystem's "proxies" attribute
> ---------------------------------------------------------------------------------------------
>
> Key: WFLY-4757
> URL: https://issues.jboss.org/browse/WFLY-4757
> Project: WildFly
> Issue Type: Bug
> Affects Versions: 9.0.0.CR1, 10.0.0.Alpha2
> Reporter: Michal Babacek
> Assignee: Radoslav Husar
> Priority: Blocker
> Labels: mod_cluster
> Fix For: 9.0.0.CR2, 10.0.0.Alpha4
>
>
> If one takes a vanilla EAP 7 DR build and starts it with {{./standalone.sh -c standalone.ha}}, i.e. with mod_cluster subsystem loaded, but without any static proxies configuration directives, the server registers with mod_cluster load balancers and accepts hot deployments without any error.
> If one sets a static proxy configuration, e.g.:
> {code:xml}
> +++
> <mod-cluster-config advertise-socket="modcluster" connector="ajp" proxies="my-proxy-one">
> +++
> <outbound-socket-binding name="my-proxy-one">
> <remote-destination host="10.40.4.50" port="6666"/>
> </outbound-socket-binding>
> +++
> {code}
> then the server processes hot deployments only as long as it's not registered with any mod_cluster load balancer. As soon as it registers with a load balancer, any hot deployment causes the following exception:
> {noformat}
> 14:39:13,475 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) WFLYDS0004: Found simplecontext.war in deployment directory. To trigger deployment create a file called simplecontext.war.dodeploy
> 14:39:13,520 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0027: Starting deployment of "simplecontext.war" (runtime-name: "simplecontext.war")
> 14:39:14,028 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0021: Registered web context: /simplecontext
> 14:39:14,080 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0008: Failed to persist configuration change: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0084: Failed to marshal configuration
> at org.jboss.as.controller.persistence.AbstractFilePersistenceResource.<init>(AbstractFilePersistenceResource.java:49)
> at org.jboss.as.controller.persistence.ConfigurationFilePersistenceResource.<init>(ConfigurationFilePersistenceResource.java:45)
> at org.jboss.as.controller.persistence.BackupXmlConfigurationPersister.store(BackupXmlConfigurationPersister.java:109)
> at org.jboss.as.controller.ModelControllerImpl.writeModel(ModelControllerImpl.java:738)
> at org.jboss.as.controller.OperationContextImpl.createPersistenceResource(OperationContextImpl.java:403)
> at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:643)
> at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:354)
> at org.jboss.as.controller.AbstractOperationContext.finishStep(AbstractOperationContext.java:918)
> at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:885)
> at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:601)
> at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:354)
> at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:330)
> at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1170)
> at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:363)
> at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:219)
> at org.jboss.as.controller.ModelControllerImpl$3$1$1.run(ModelControllerImpl.java:716)
> at org.jboss.as.controller.ModelControllerImpl$3$1$1.run(ModelControllerImpl.java:710)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.jboss.as.controller.ModelControllerImpl$3$1.run(ModelControllerImpl.java:710)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0089: Failed to write configuration
> at org.jboss.as.controller.persistence.AbstractConfigurationPersister.marshallAsXml(AbstractConfigurationPersister.java:100)
> at org.jboss.as.controller.persistence.AbstractFilePersistenceResource.<init>(AbstractFilePersistenceResource.java:42)
> ... 26 more
> Caused by: java.lang.reflect.UndeclaredThrowableException
> at org.jboss.staxmapper.FormattingXMLStreamWriter$4.run(FormattingXMLStreamWriter.java:249)
> at org.jboss.staxmapper.FormattingXMLStreamWriter.runAttrQueue(FormattingXMLStreamWriter.java:221)
> at org.jboss.staxmapper.FormattingXMLStreamWriter.writeStartElement(FormattingXMLStreamWriter.java:96)
> at org.wildfly.extension.mod_cluster.ModClusterSubsystemXMLWriter.writeDynamicLoadProvider(ModClusterSubsystemXMLWriter.java:104)
> at org.wildfly.extension.mod_cluster.ModClusterSubsystemXMLWriter.writeModClusterConfig(ModClusterSubsystemXMLWriter.java:69)
> at org.wildfly.extension.mod_cluster.ModClusterSubsystemXMLWriter.writeContent(ModClusterSubsystemXMLWriter.java:51)
> at org.wildfly.extension.mod_cluster.ModClusterSubsystemXMLWriter.writeContent(ModClusterSubsystemXMLWriter.java:42)
> at org.jboss.as.server.parsing.StandaloneXml_4.writeServerProfile(StandaloneXml_4.java:695)
> at org.jboss.as.server.parsing.StandaloneXml_4.writeContent(StandaloneXml_4.java:613)
> at org.jboss.as.server.parsing.StandaloneXml.writeContent(StandaloneXml.java:77)
> at org.jboss.as.server.parsing.StandaloneXml.writeContent(StandaloneXml.java:47)
> at org.jboss.staxmapper.XMLMapperImpl.doDeparse(XMLMapperImpl.java:88)
> at org.jboss.staxmapper.XMLMapperImpl.deparseDocument(XMLMapperImpl.java:83)
> at org.jboss.as.controller.persistence.AbstractConfigurationPersister.marshallAsXml(AbstractConfigurationPersister.java:94)
> ... 27 more
> Caused by: javax.xml.stream.XMLStreamException: Trying to write an attribute when there is no open start element.
> at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1537)
> at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1566)
> at com.ctc.wstx.sw.BaseNsStreamWriter.writeAttribute(BaseNsStreamWriter.java:226)
> at org.jboss.staxmapper.FormattingXMLStreamWriter$4.run(FormattingXMLStreamWriter.java:247)
> ... 40 more
> 14:39:14,085 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0021: Deploy of deployment "simplecontext.war" was rolled back with the following failure message: "WFLYCTL0086: Failed to persist configuration change: WFLYCTL0084: Failed to marshal configuration"
> 14:39:14,095 INFO [org.jboss.modcluster] (MSC service thread 1-3) MODCLUSTER000021: All pending requests drained from default-host:/simplecontext in 0.0 seconds
> 14:39:14,098 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) WFLYUT0022: Unregistered web context: /simplecontext
> 14:39:14,142 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-8) HV000001: Hibernate Validator 5.1.3.Final
> 14:39:14,177 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment simplecontext.war (runtime-name: simplecontext.war) in 92ms
> {noformat}
> The problem is IMHO related to the new configuration attribute WFLY-457.
>
> Note that this issue affects *hot deployments only*. If the server starts with deployments already present, no exception is thrown and everything works as expected. I find this issue being of {color:red}critical{color} severity, because it breaks core functionality of the application server -- hot deployments.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
11 years, 1 month
[JBoss JIRA] (DROOLS-465) Cannot find KieModule with LATEST
by Getano Piazzolla (JIRA)
[ https://issues.jboss.org/browse/DROOLS-465?page=com.atlassian.jira.plugin... ]
Getano Piazzolla commented on DROOLS-465:
-----------------------------------------
I'm facing the same issue.
I want to point out that the same think happens when using RELEASE.
Is there another way other than NOT using local repository to fix this?
Tnx.
> Cannot find KieModule with LATEST
> ---------------------------------
>
> Key: DROOLS-465
> URL: https://issues.jboss.org/browse/DROOLS-465
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.1.0.Beta1
> Reporter: Takami Hirata
> Assignee: Mark Proctor
> Attachments: reproducer.zip
>
>
> I install a kmodule into local repository with command {{mvn clean install}}.
> Loading this kmodule with 'LATEST' works on the day, but will fail on next day.
> Maven will find update on next day because of default updatePolicy 'daily', then maven check local repository ({{org.kie.scanner.Aether}} treats as a remote repository) but local artifact cache does not have 'maven-metadata.xml' which remote artifact should have, so finding update fails and {{org.sonatype.aether.connector.file.FileRepositoryWorker}} removes {{maven-metadata-local.xml}} for cleanup.
> {{org.kie.scanner.Aether}} adds local repository to remote repositories, but this may be incorrect usage.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
11 years, 1 month