[
https://issues.jboss.org/browse/WFLY-5682?page=com.atlassian.jira.plugin....
]
Brian Stansberry commented on WFLY-5682:
----------------------------------------
Yes, it's confusing. Using a default value for 'relative-to' was a mistake;
better would have been to leave the attribute with no default and just include
object-store-relative-to="jboss.server.data.dir" in our standard config files.
But we didn't do that and needed to preserve compatibility so we created the AS7-2078
standard for handling such cases. I don't want to have a separate variant beyond the
two approaches described there.
It is tempting to do something very much like what you did though, Amos, and switch this
to the version of the standard handling where there is no default for relative-to, and
whether that is defined or not controls whether 'path' is regarded as being
absolute. To do that though:
1) The standard config files will need to be updated to explicitly declare
object-store-relative-to="jboss.server.data.dir" and
object-store-path="tx-object-store". This will make the OOTB behavior consistent
with past releases.
2) The parsers for old xsd versions should probably be updated to set
object-store-relative-to to jboss.server.data.dir if the xml attribute is not defined, so
the parsing of an old config produces the same result as it did before.
3) TransactionSubsystemAdd can have logic similar to what you have in your PR where it
checks for object-store-relative-to being undefined and object-store-path being undefined
or with a value of 'tx-object-store' and if found it uses the
'jboss.server.data.dir' as the object-store-relative-to value. It should do this
in populateModel though, so the 'jboss.server.data.dir' value is stored in the
model and persisted to xml. That allows old CLI scripts to work unchanged. If it does
this though it should log a WARN. All of this paragraph is really just a bit of migration
assistance.
I don't see any reason to drop the default value of 'tx-object-store' for
'object-store-path'. If we did, we would have to require that the attribute not be
null, and that might break users who assumed it didn't have to be set.
Any of these changes (my branch, your PR or the suggestion above) all mean the management
API for this subsystem has changed though, and we need to bump the API version. It's
too late to do that for WF 10.0.0.Final, so this will need to be deferred to the next
WildFly release. JBEAP-1913 then would not be resolved until after WildFly 10 is done.
Can't define absolute path for object store location
----------------------------------------------------
Key: WFLY-5682
URL:
https://issues.jboss.org/browse/WFLY-5682
Project: WildFly
Issue Type: Bug
Components: Transactions
Affects Versions: 10.0.0.CR4
Reporter: Ondřej Chaloupka
Assignee: Amos Feng
Fix For: 10.0.0.CR5
As trying to set absolute path for location of transaction log store I've got to
suspicion that's not possible.
If I try to set `object-store-relative-to` to some absolute path or set
`object-store-relative-to` to empty string and then `object-store-path` to some absolute
path the server starts with exceptions [1][2].
[1]
{code}
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start
service jboss.txn.ArjunaObjectStoreEnvironment: org.jboss.msc.service.StartException in
service jboss.txn.ArjunaObjectStoreEnvironment: Failed to start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) 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)Caused by: java.lang.IllegalArgumentException:
WFLYCTL0256: Could not find a path called '/home/ochaloup/tmp/'
at
org.jboss.as.controller.services.path.PathManagerService.resolveRelativePathEntry(PathManagerService.java:87) at
org.jboss.as.txn.service.ArjunaObjectStoreEnvironmentService.start(ArjunaObjectStoreEnvironmentService.java:76)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
...
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread)
WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" =>
"transactions")]) - failure description: {"WFLYCTL0080: Failed
services" => {"jboss.txn.ArjunaObjectStoreEnvironment" =>
"org.jboss.msc.service.StartException in service
jboss.txn.ArjunaObjectStoreEnvironment: Failed to start service
Caused by: java.lang.IllegalArgumentException: WFLYCTL0256: Could not find a path
called '/home/ochaloup/tmp/'"}}
INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status
reportWFLYCTL0186: Services which failed to start: service
jboss.txn.ArjunaObjectStoreEnvironment: org.jboss.msc.service.StartException in service
jboss.txn.ArjunaObjectStoreEnvironment: Failed to start service
{code}
[2]
{code}
ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during
boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085:
Failed to parse configuration
at
org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:131)
at org.jboss.as.server.ServerService.boot(ServerService.java:356) at
org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:299)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[348,13]
Message: "WFLYCTL0113: '' is an invalid value for parameter relative-to.
Values must have a minimum length of 1 characters"
at
org.jboss.as.controller.SimpleAttributeDefinition.parse(SimpleAttributeDefinition.java:161) at
org.jboss.as.controller.SimpleAttributeDefinition.parseAndSetParameter(SimpleAttributeDefinition.java:186)
at
org.jboss.as.txn.subsystem.TransactionSubsystem14Parser.parseObjectStoreEnvironmentElementAndEnrichOperation(TransactionSubsystem14Parser.java:205)
at
org.jboss.as.txn.subsystem.TransactionSubsystem30Parser.readElement(TransactionSubsystem30Parser.java:67) at
org.jboss.as.txn.subsystem.TransactionSubsystem14Parser.readElement(TransactionSubsystem14Parser.java:111)
at
org.jboss.as.txn.subsystem.TransactionSubsystem14Parser.readElement(TransactionSubsystem14Parser.java:54) at
org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110)
at
org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) at
org.jboss.as.server.parsing.StandaloneXml_4.parseServerProfile(StandaloneXml_4.java:547)
at
org.jboss.as.server.parsing.StandaloneXml_4.readServerElement(StandaloneXml_4.java:244) at
org.jboss.as.server.parsing.StandaloneXml_4.readElement(StandaloneXml_4.java:143)
at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:69) at
org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:47) at
org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110)
at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) at
org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123)
... 3 more
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)