summaryrefslogtreecommitdiff
path: root/cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* NO-JIRA: HA documentation improvements.Alan Conway2014-08-151-1/+1
| | | | | | | | | | | The broker options link-maintenance-interval and link-heartbeat-interval were documented only in the HA section and not in the federation section which created confusion about whether they affected HA links only or user federation links as well. Added documentation to the federation section and an explicit mention in the HA section that it uses federation links. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1618160 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: HA Account for TX primary replication queues as HA user.Alan Conway2014-08-151-2/+7
| | | | | | Previously they were not accounted which caused ACL notice messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1618133 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5999: Update selector syntax documentation to reflect the implementationAndrew Stitcher2014-08-141-18/+20
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617999 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5985: fixed regression introduced by previous commit (r1617256), ↵Gordon Sim2014-08-142-0/+16
| | | | | | ensuring that call does not block indefinitely git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617924 13f79535-47bb-0310-9956-ffa450edef68
* [no jira]: fixing commit 1617841 that broke building (unreliable to be ↵Pavel Moravec2014-08-141-2/+1
| | | | | | initialized after nextId) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617897 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5995: Initialize messaging SenderContext delivery tagCharles E. Rolke2014-08-131-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617841 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Updated ISSUES fileKim van der Riet2014-08-121-2/+15
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617476 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Remove annoying '*' in cmake build type message.Alan Conway2014-08-111-2/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617302 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Clean up excessive "notice" level log messages, add ↵Alan Conway2014-08-116-18/+30
| | | | | | | | | | start-up/shut-down messages. - Demote excessive "notice" level log messages to "info" - Provide clear notice "start-up/shut-down" messages at start and end of broker log. - Log broker PID in start-up/shut-down messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617293 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5985: check for incoming messages - without waiting - even when timout is 0Gordon Sim2014-08-112-1/+26
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1617256 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5966: HA mixing tx enqueue and non-tx dequeue leaves extra messages on ↵Alan Conway2014-08-0817-86/+228
| | | | | | | | | | | | | | | | | | | | | backup. There were several problems: 1. Positions of transactionally enqueued messages not known to QueueReplicator, so not dequeued on backup if dequeued outside a TX on primary. 2. Race condition if tx created immediately after queue could cause duplication of TX message. 3. Replication IDs were not being set during recovery from store (regression, store change?) Fix: 1. Update positions QueueReplicator positions via QueueObserver::enqueued to see all enqueues. 2. Check for duplicate replication-ids on backup in QueueReplicator::route. 3. Set replication-id in publish() if not already set in record(). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1616704 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5974: HA qpid-txtest2 can bring down a cluster (JERR_MAP_LOCKED))Alan Conway2014-08-086-29/+61
| | | | | | | | | | | Problem: transactional dequeues can be sent via two paths as part of the transaction and via the normal queue replication. If journal is involved this can result result in store errors if the normal replication path attempts to dequeue before the transaction. Solution: this is also the case for enqueues, and we already have code in place to skip replication of tx enqueues via the normal route. Copied the same logic for dequeues. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1616703 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5973: HA cluster state may get stuck in recoveringAlan Conway2014-08-085-4/+26
| | | | | | | | | | | | | | | | | | | | | | A backup queue is considered "ready" when all messages up to the first guarded position have either been replicated and acknowledged or dequeued. Previously this was implemented by waiting for the replicationg subscription to advance to the first guarded position and wating for all expected acks. However if messages are dequeued out-of-order (which happens with transactions) there can be a gap at the tail of the queue. The replicating subscription will not advance past this gap because it only advances when there are messages to consume. This resulted in backups stuck in catch-up. The recovering primary has a time-out for backups that never re-connect, but if they connect sucessfully and don't disconnect, the primary assumes they will become ready and waits - causing the primary to be stuck in "recovering". The fixes is to notify a replicating subscription if it becomes "stopped" because there are no more messages available on the queue. This implies that either it is at the tail OR there are no more messags until the tail. Either way we should consider this "ready" from the point of view of HA catch-up. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1616702 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5813: Advance version numbers on trunk to 0.29Justin Ross2014-08-072-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1616587 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5948: prevent creation of durable topic backed by non-durable exchange; ↵Gordon Sim2014-08-062-1/+7
| | | | | | | | add exception handling to object recovery. (Based on patch from Kim van der Riet). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1616287 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5964: Add SetContentObject support for list and map.Charles E. Rolke2014-08-053-1/+60
| | | | | | Fix GetContentObject return value warning. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1615992 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5963: fix from Chris Richardson to prevent broker incorrecctly thinking ↵Gordon Sim2014-08-051-1/+1
| | | | | | it has decoded protocol header when it has not git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1615991 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5959: allow content encoding to be readGordon Sim2014-08-041-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1615699 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5942: qpid HA cluster may end-up in joining state after HA primary is ↵Alan Conway2014-07-316-54/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | killed There are two issues here, both related to the fact that rgmanager sees qpidd and qpidd-primary as two separate services. 1. The service start/stop scripts can be called concurrently. This can lead to running a qpidd process who's pid is not in the pidfile. rgmanager cannot detect or kill this qpidd and cannot start another qpidd because of the lock on the qpidd data directory. 2. rgmanager sees a primary failure as two failures: qpidd and qpidd-primary, and will then try to stop and start both services. The order of these actions is not defined and can lead to rgmanager killing a service it has just started. This patch makes two major changes to the init scripts: 1. Uses flock to lock the sensitive stop/start part of the scripts to ensure they are not executed concurrently. 2. On "stop" the scripts check if a running qpidd is primary or not. "qpidd stop" is a no-op if the running broker is primary, "qpidd-primary stop" is a no op if it is not. This ensures that a broker will be stopped by the same stream of service actions that started it. Minor changes in this patch: - better logging of broker start-up and shut-down sequence. - qpid-ha heartbeat use half of timeout option. - add missing timeouts in qpid-ha. Notes: This changes the behavior of 'clusvcadm -d <qpidd-service>' on the primary node. Previously this would have stopped the qpidd service on that node, killed the qpidd process and relocated the primary service. Now this will stop the qpidd service (as far as rgmanager is concerned) but will not kill qpidd or relocate the primary service. When the primary is relocated the qpidd service wil not be able to re-start on that node until it is re-enabled with 'clusvcadm -e'. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614895 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Perl Receiver returning an unwrapped Message object.Darryl L. Pierce2014-07-311-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614890 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5939: Add get_address to Perl Sender/Receiver classes.Darryl L. Pierce2014-07-313-4/+44
| | | | | | Updated the Perl client/server examples. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614889 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5924 [linearstore] Qpidd Will Not Start with Large Number of QueuesKim van der Riet2014-07-305-1/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614665 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5941: Set sensible default build type: default is RelWithDebInfo.Alan Conway2014-07-291-0/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614472 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5888: Fix test to ignore occasional TransactionAborted failures on ↵Alan Conway2014-07-291-1/+2
| | | | | | connection.close. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614331 13f79535-47bb-0310-9956-ffa450edef68
* [QPID-5929]: Mark deprecated QMF fields as Deprecated and do some relevant ↵Pavel Moravec2014-07-2911-90/+40
| | | | | | code cleanup git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614301 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Validation refactoring. Fix Coverity MIXED_ENUM complaint.Charles E. Rolke2014-07-281-4/+48
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1614031 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5921, QPID-5923: adjustments and exclusions for new tests using swigged ↵Gordon Sim2014-07-242-0/+9
| | | | | | client git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1613131 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4123: C++ Broker ACL creates too many rulesCharles E. Rolke2014-07-2314-220/+759
| | | | | | | | | | | | | | | | | | | | | | | Recent changes have added new tables to define what are ACL lookups and their properties. This commit finishes that work by not propagating rules that will never match. Also, it completes the scaffolding for allowed and denied host lists to be fully integrated. This commit: * Adds startup logging of ACL validation tables with cross references to possible rule matches. * Hooks the ACL host allow/deny connection lists into self test. * Fixes self tests that get broken by proper rule table handling. * Introduces a 'create connection' decision mode similar to ACL rule decision mode. * Describes it all in doc book. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612874 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix typo in swig_python_typemaps.Alan Conway2014-07-231-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612858 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5815Michael Goulish2014-07-231-0/+5
| | | | | | | Checkin for Irina Boverman. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612838 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5910Michael Goulish2014-07-223-7/+21
| | | | | | | | | | | | | | The previous way of computing required credit was apparently pretty slow -- perhaps because it is doing some unnceessary copying down in its guts. (Which theory I did not prove.) And it was running while a lock was held, which caused a significant throughput regression (which was reported as an enormous latency regression.) The simpler means of calculating credit in this diff removes most of the problem. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612559 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix unreachable code in Waitable.cppAlan Conway2014-07-211-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612336 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5908: merge annotations into properties, don't replace existing elementsGordon Sim2014-07-211-2/+17
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1612258 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5719: HA becomes unresponsive once any of the brokers are SIGSTOPedAlan Conway2014-07-181-2/+14
| | | | | | | | | Fixed typo in qpidd script that was causing this not to work if a backup was SIGSTOPed. Also fixed bug where data-dir setting in qpidd.conf was being ignored. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611790 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4947: Injecting derived host address failed to strip IPv6 [] decorationCharles E. Rolke2014-07-181-3/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611776 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5888: transaction should always be aborted on failoverAlan Conway2014-07-183-21/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++ and python clients were attempting to continue the transation transparently after failover which is in correct. They were re-sending messages in the transaction but there is no way to re-do transactional receives. The transaction must be aborted. The C++ and python clients have been modified to kill a transactional session with a TransactionAborted exception if there is a failover. Note the Java client already behaves correctly but not identically. It defers raising an exception until commit rather than failing immediately on failover, and the session can still be used. The following commits are involved: r1611349 QPID-5887: revised approach to implict abort r1610959 QPID-5887: allow qpid-txtest2 to be run by make test r1610958 QPID-5887: fix to new txtest2, acknowledge messages in the check phase to ensure queues remain drained for any subsequent runs r1609748 QPID-5887: abort transactional session on failover; added equivalent of txtest using messaging API This commit does the following: - Update ha_tests.py tx_simpler_failover test to expect transaction aborted. - Minor improvements to qpid-txtest2 - Fix native (non-swig) python client. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611748 13f79535-47bb-0310-9956-ffa450edef68
* No-JIRA: Get rid of throw in destructor for ~Waitable.Alan Conway2014-07-181-18/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611745 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5902: Replace boost::make_shared with boost::shared_ptrCharles E. Rolke2014-07-171-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611409 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5887: revised approach to implict abortGordon Sim2014-07-174-30/+67
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611349 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5898: AclHost unit test fails on systems with no IPv6Charles E. Rolke2014-07-163-108/+175
| | | | | | | | | | | | | * In SocketAddress::isComparable catch exceptions thrown by getAddrInfo when address family is not supported. * Delete self test that expects hosts to have 127.0.0.1 and ::1 as valid addresses for localhost. * In self tests sense whether IPv4 and IPv6 are supported and skip running tests that use those families accordingly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611059 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5850: Support for long session names (patch from Ernie Allen)Gordon Sim2014-07-163-3/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1611016 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5898: Self tests fail on systems with IPv6 disabled.Charles E. Rolke2014-07-161-30/+30
| | | | | | | Temporarily disable tests that assume IPv6 to restore automated testing. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610992 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4947: ensure member variable is always initialisedGordon Sim2014-07-161-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610960 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5887: allow qpid-txtest2 to be run by make testGordon Sim2014-07-163-2/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610959 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5887: fix to new txtest2, acknowledge messages in the check phase to ↵Gordon Sim2014-07-161-0/+1
| | | | | | ensure queues remain drained for any subsequent runs git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610958 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4947: C++ Broker ACL restricts hosts from which users may connect.Charles E. Rolke2014-07-1521-61/+1057
| | | | | | | | | | | | | | | | | This commit adds: * Acl rule file "create connection host=hostname" support for allowing and denying connections. * AclHost class to represent a host specified in the rule file. * Global and user-specific lists of AclHost rules. Created by AclReader and consumed by AclConnectionCounter. * Address range checks and other giblets in SocketAddress: ** asString support to hide IPv6 decoration and service (port) details. ** binary comparison of network addresses. ** new firstAddress function to complement existing nextAddress. Socket addrinfo for AclHost objects is computed once only for lifetime of Acl file load. ** Posix and Windows implementations are identical. * New unit test for address comparisons. Testing a live broker is great but forcing connections to be from some arbitrary IPv4 or IPv6 address is hard. So there's a unit test for that. Further discussion about this feature is in https://reviews.apache.org/r/23322 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610874 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Add missing "queuename" property to Security doc. Rearrange ↵Charles E. Rolke2014-07-151-25/+25
| | | | | | entries in AclValidator for better automated doc generation. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610700 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Add missing "queuename" property for MOVE QUEUE and REDIRECT QUEUECharles E. Rolke2014-07-151-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610697 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Refactor AclModuleCharles E. Rolke2014-07-135-121/+125
| | | | | | | | | | Remove AclHelper::loaValidationMap() function from AclLexer and replace it with new logic in AclValidator. See https://reviews.apache.org/r/23447/ for a visual diff of the changes. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1610195 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Improve Acl enum verificationCharles E. Rolke2014-07-121-13/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1609900 13f79535-47bb-0310-9956-ffa450edef68