qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Wall (JIRA)" <j...@apache.org>
Subject [jira] [Created] (QPID-5791) JsonStore implementation does not synchronise update allowing for race with create/delete
Date Thu, 29 May 2014 09:26:01 GMT
Keith Wall created QPID-5791:
--------------------------------

             Summary: JsonStore implementation does not synchronise update allowing for race
with create/delete
                 Key: QPID-5791
                 URL: https://issues.apache.org/jira/browse/QPID-5791
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.26, 0.28, 0.29
            Reporter: Keith Wall
            Assignee: Keith Wall
            Priority: Minor


The JsonStore currently does not synchronise its update method, meaning that it is possible
for an #create (or #detele) to race with an #update and end with the following stack trace.

This problem can only affect users of split configuration/message store where the configuration
store is of type JSON.  This has only become default for 0.30.  

{noformat}
2014-05-28 11:20:57,339 ERROR [IoReceiver - /169.124.113.161:33934] (v0_8.AMQProtocolEngine)
- Unexpected exception while processing frame.  Closing connection.
org.apache.qpid.server.store.StoreException: Cannot rename file /home/keith/Qpid-Perftests-TestExecution-StartBroker/qpid-broker/0.29-SNAPSHOT/work/json/default/default.json
to /ho
me/keith/Qpid-Perftests-TestExecution-StartBroker/qpid-broker/0.29-SNAPSHOT/work/json/default/default.bak
        at org.apache.qpid.server.store.JsonFileConfigStore.renameFile(JsonFileConfigStore.java:183)
        at org.apache.qpid.server.store.JsonFileConfigStore.save(JsonFileConfigStore.java:409)
        at org.apache.qpid.server.store.JsonFileConfigStore.create(JsonFileConfigStore.java:372)
        at org.apache.qpid.server.queue.AbstractQueue.onCreate(AbstractQueue.java:247)
        at org.apache.qpid.server.model.AbstractConfiguredObject.doCreation(AbstractConfiguredObject.java:553)
        at org.apache.qpid.server.model.AbstractConfiguredObject.create(AbstractConfiguredObject.java:468)
        at org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory.create(AbstractConfiguredObjectTypeFactory.java:58)
        at org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory.create(AbstractConfiguredObjectTypeFactory.java:31)
        at org.apache.qpid.server.queue.QueueFactory.create(QueueFactory.java:48)
        at org.apache.qpid.server.queue.QueueFactory.create(QueueFactory.java:34)
        at org.apache.qpid.server.model.ConfiguredObjectFactoryImpl.create(ConfiguredObjectFactoryImpl.java:112)
        at org.apache.qpid.server.virtualhost.AbstractVirtualHost.addQueueWithoutDLQ(AbstractVirtualHost.java:605)
        at org.apache.qpid.server.virtualhost.AbstractVirtualHost.addQueue(AbstractVirtualHost.java:598)
        at org.apache.qpid.server.virtualhost.AbstractVirtualHost.createQueue(AbstractVirtualHost.java:582)
        at org.apache.qpid.server.protocol.v0_8.handler.QueueDeclareHandler.createQueue(QueueDeclareHandler.java:217)
        at org.apache.qpid.server.protocol.v0_8.handler.QueueDeclareHandler.methodReceived(QueueDeclareHandler.java:115)
        at org.apache.qpid.server.protocol.v0_8.handler.ServerMethodDispatcherImpl.dispatchQueueDeclare(ServerMethodDispatcherImpl.java:512)
        at org.apache.qpid.framing.amqp_0_9.QueueDeclareBodyImpl.execute(QueueDeclareBodyImpl.java:174)
        at org.apache.qpid.server.protocol.v0_8.state.AMQStateManager$1.run(AMQStateManager.java:121)
        at org.apache.qpid.server.protocol.v0_8.state.AMQStateManager$1.run(AMQStateManager.java:117)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.qpid.server.protocol.v0_8.state.AMQStateManager.methodReceived(AMQStateManager.java:116)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.methodFrameReceived(AMQProtocolEngine.java:591)
        at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:97)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.frameReceived(AMQProtocolEngine.java:453)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.dataBlockReceived(AMQProtocolEngine.java:388)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.access$700(AMQProtocolEngine.java:88)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine$2.run(AMQProtocolEngine.java:292)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine$2.run(AMQProtocolEngine.java:275)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:356)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.received(AMQProtocolEngine.java:274)
        at org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine.received(AMQProtocolEngine.java:88)
        at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:133)
        at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:49)
        at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
        at java.lang.Thread.run(Thread.java:744)
{noformat}





--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message