summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fiddling with `rabbit_mnesia' specsFrancesco Mazzoli2012-05-231-2/+2
|
* add `rabbit_misc:rabbit_version/0'Francesco Mazzoli2012-05-232-2/+8
| | | | also, `get_key', not `get_env'.
* deleted percent by mistakeFrancesco Mazzoli2012-05-231-1/+1
|
* stricter cluster consistency checkFrancesco Mazzoli2012-05-231-20/+47
| | | | Now checking for matching OTP & rabbit version
* ooops... do not update the cluster status file with its own dataFrancesco Mazzoli2012-05-221-1/+3
|
* fix but in `rabbit_mnesia:status/0'Francesco Mazzoli2012-05-221-2/+5
|
* forgot to replace old functionFrancesco Mazzoli2012-05-211-7/+1
|
* change the cluster nodes functions to rely on the cluster status file onlyFrancesco Mazzoli2012-05-211-116/+36
| | | | | + some other fixes based on the fact that now we firmly assume that the cluster status is as up to date as it can be.
* change rabbitmqctl `join_cluster', add `recluster' and `change_node_type'Francesco Mazzoli2012-05-212-48/+133
| | | | | | | | | | | | | | | | | | | also, remove `cluster'. Description for the commands: * recluster <clusternode> Instruct an offline node to try to cluster with the nodes provided when it comes back online. With "cluster" I mean cluster directly, only if the other nodes think the node is in the cluster already. This command is useful if we bring a node down and then change the cluster while it is offline. * change_node_type (ram|disc) Changed the node to the provided node type. The change will fail if the user is trying to create a standalone ram node. * join_cluster clusternode Same as before, but only takes one node as "discovery" node. We think this is better since we don't really make any attempt to verify that all the provided nodes are in the same cluster anyways.
* moved functions around in rabbit_mnesiaFrancesco Mazzoli2012-05-181-347/+379
|
* merge defaultFrancesco Mazzoli2012-05-188-104/+87
|\
| * How long have we supported pluggable exchange types now?Simon MacMullen2012-05-181-1/+2
| |
| * don't wait (nearly) forever for mirrored_supervisor migrationsMatthias Radestock2012-05-171-2/+2
| | | | | | | | | | ...and reduce wait time for migrations we expect to fail, so we keep the overall run time short.
| * merge bug24362Tim Watson2012-05-175-48/+40
| |\
| | * start supervisor children as, er, supervisors, not workersMatthias Radestock2012-05-161-2/+3
| | |
| | * expand rabbit_sup API with starting of children that are supervisorsMatthias Radestock2012-05-165-29/+25
| | | | | | | | | | | | and use that API throughout the code where appropriate
| | * cosmeticMatthias Radestock2012-05-162-6/+3
| | |
| | * cosmeticMatthias Radestock2012-05-161-11/+8
| | |
| | * add missing specMatthias Radestock2012-05-161-0/+1
| | |
| * | merge e1311dd42eba into bug24362Tim Watson2012-05-141-1/+1
| | |
| * | merge f6d1609212f9 into bug24362Tim Watson2012-05-141-1/+1
| | |
| * | merge default into this branchTim Watson2012-05-147-37/+46
| |\ \ | | |/
| | * refactorMatthias Radestock2012-05-091-10/+3
| | |
| * | OopsSimon MacMullen2012-05-081-1/+1
| | |
| * | cosmeticMatthias Radestock2012-05-031-13/+6
| | |
| * | Don't use an untrappable kill.Simon MacMullen2012-05-031-1/+1
| | |
| * | Switch to monitoring the overall supervisor.Simon MacMullen2012-05-031-34/+38
| | |
* | | store more info about the cluster on disc, check other nodes before clusteringFrancesco Mazzoli2012-05-154-240/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now the `cluster_nodes.config; doesn't store a "config" anymore, but all the information we need about the cluster nodes. This file is updated whenever a new node comes up. Moreover, this file should be *always* present, and it's set up in `rabbit:prepare/0'. Now that we have this file, the various functions regarding the status of the cluster (`all_clustered_nodes/0', `running_clustered_nodes/0;, etc.) can "work" even when mnesia is down (and when the rode is a ram node). Given the assumption that the status file is up to date, with the status of the cluster (before the node went down if the node is down) a lot of operations become easier. I'd like a review at this point, the best thing is probably to diff directly with default since a lot of previous commits are not relevant anymore. The most noticeable changes compared to default: * `join_cluster' works differently. The nodes provided will be used to "discover" the cluster, and are not used to determine whether the node should be ram or not. The node will be a disc node by default, and can be initialized as RAM with the `--ram' flag. The old `cluster' command is preserved, adapted to work with the new functions while preserving similar semantics (we decide on whether the node is disc or not by looking at the list of nodes provided). * `force_cluster' has been removed. * The `join_cluster' operation will fail if: - The node is currently the only disc node of its cluster - We can't connect to any of the nodes provided - The node is currently already clustered with the cluster of the nodes provided * On default restart RAM nodes try to connect to the nodes that were first given by the user, and are not aware of the changes that might have occurred in the cluster when they were online. Since the cluster status is kept updated on disk now, the RAM node will be aware of changes in the cluster when restarted. * Before starting up mnesia, the node contacts the nodes it thinks it's clustered with, and if the nodes are not clustered with the node anymore the startup procedure fail. We fail only when we know for sure that something is wrong - e.g. it won't fail it it doesn't find any online node Things to do: * Implement `uncluster'/`leave_cluster' to kick out a node from a cluster from another node - this is easy. * Implement something like `change_node_type', since given how `join_cluster' works it is not possible right now. * Rewrite the tests regarding to clustering. * Think hard about what can go wrong regarding the cluster status file and the relevant functions. The stuff in `rabbit_upgrade' is particularly worrying, and I need to make sure that things will work when upgrading rabbitmq, by reading old file or upgrading them. * Split `init_db/4' in various functions. We have much stronger assumptions now, for example we should never need to reset or wipe the schema in there. In general it's an ugly function, expecially the optional upgrade part * Probably something else...
* | | fix leave_cluster, update rabbit_app.inFrancesco Mazzoli2012-05-143-29/+33
| | |
* | | change function to find out about cluster nodesFrancesco Mazzoli2012-05-144-55/+150
| | | | | | | | | | | | | | | | | | | | | | | | See comment above `check_mnesia_running/1' in `rabbit_mnesia'. In short, the function to find out about all/running nodes in the cluster do not work if mnesia is down and the node is a ram node, while we assumed that they would always work. Moreover, the functions to get the cluster disc nodes require mnesia to be up.
* | | reseting when clustering, `reset' now disconnects correctlyFrancesco Mazzoli2012-05-112-52/+42
| | | | | | | | | | | | Also, I check that we're not joining a cluster we're already in.
* | | added `join_cluster', deprecated `cluster, changed the structure of the node ↵Francesco Mazzoli2012-05-113-33/+72
| | | | | | | | | | | | config
* | | remove the bug 24919 stuffFrancesco Mazzoli2012-05-111-15/+0
| | |
* | | merge bug24919Francesco Mazzoli2012-05-1011-112/+101
|\ \ \
| * | | removed `rabbit_mnesia:force_cluster'Francesco Mazzoli2012-05-102-29/+7
| | | | | | | | | | | | | | | | | | | | I'll also have to remove the `Force' parameter from `init_db', fixing bug 24815.
| * | | remove the subscription to the schema tableFrancesco Mazzoli2012-05-101-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since dump_tables won't work with the schema table (and works different to what I had understood anyways) I don't think it's worth it to subscribe to the table, and it's probably better to just modify the config file through rabbit_node_monitor.
| * | | dumping schema table on changes in ram nodesFrancesco Mazzoli2012-05-091-0/+19
| | | |
| * | | merge defaultFrancesco Mazzoli2012-05-092-15/+18
| |\ \ \ | | |_|/ | |/| |
| | * | forgot to change the arity of init_db in the exportFrancesco Mazzoli2012-05-041-1/+1
| | | |
| | * | re-added a boolean parameter to init_db to prevent upgradingFrancesco Mazzoli2012-05-042-11/+19
| | | |
| | * | remove the fun argument in `rabbit_mnesia:init_db/3'.Francesco Mazzoli2012-05-042-19/+14
| | | |
| * | | check for a new pid when registered children die in mirrored_supervisor_teststim2012-05-091-1/+1
| | | |
| * | | do not kill the child explicitlytim2012-05-081-1/+1
| | | |
| * | | for bug24362 - assert that worker name is unregistered by the time we get a ↵Tim Watson2012-05-081-6/+19
| |/ / | | | | | | | | | 'DOWN' notification
| * | pmon is very much hipe-worthy.Simon MacMullen2012-05-041-1/+1
| | |
| * | Merged bug24889 into defaultEmile Joubert2012-05-0422-62/+558
| |\ \
| | * | cosmeticMatthias Radestock2012-05-041-9/+5
| | | |
| | * | cosmeticMatthias Radestock2012-05-041-2/+2
| | | |
| | * | Merge bug24729 (again)Simon MacMullen2012-05-035-33/+24
| | |\ \
| | | * \ Merge bug 24901Simon MacMullen2012-05-031-2/+1
| | | |\ \ | | | | |/ | | | |/|