diff options
| author | Michael Adam <obnox@samba.org> | 2009-12-03 00:27:34 +0100 |
|---|---|---|
| committer | Michael Adam <obnox@samba.org> | 2009-12-04 15:03:16 +0100 |
| commit | b3fd4955220dcc098fa50da70e6de2f300c8ffca (patch) | |
| tree | 1cd1bc2234d5971f47c5113ba4a04b2dc175fcf6 /ctdb/client | |
| parent | 7afefed6ae7f821b2e44c2c1cc27c08fd1bfd015 (diff) | |
| download | samba-b3fd4955220dcc098fa50da70e6de2f300c8ffca.tar.gz samba-b3fd4955220dcc098fa50da70e6de2f300c8ffca.tar.xz samba-b3fd4955220dcc098fa50da70e6de2f300c8ffca.zip | |
client: untangle checks and produce more detailed error messages
in ctdb_transaction_fetch_start
Michael
(This used to be ctdb commit 428914377851a98b3fc893798783fbfebffc1c0d)
Diffstat (limited to 'ctdb/client')
| -rw-r--r-- | ctdb/client/ctdb_client.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c index d0a0e335f9..c73200d0c7 100644 --- a/ctdb/client/ctdb_client.c +++ b/ctdb/client/ctdb_client.c @@ -3265,13 +3265,25 @@ again: } ret = ctdb_ltdb_fetch(ctdb_db, key, &header, tmp_ctx, &data); - if (ret != 0 || header.dmaster != ctdb_db->ctdb->pnn) { + if (ret != 0) { + DEBUG(DEBUG_ERR,(__location__ " Failed to re-fetch transaction " + "lock record inside transaction\n")); + tdb_transaction_cancel(ctdb_db->ltdb->tdb); + talloc_free(tmp_ctx); + goto again; + } + + if (header.dmaster != ctdb_db->ctdb->pnn) { + DEBUG(DEBUG_DEBUG,(__location__ " not dmaster any more on " + "transaction lock record\n")); tdb_transaction_cancel(ctdb_db->ltdb->tdb); talloc_free(tmp_ctx); goto again; } if ((data.dsize != sizeof(pid_t)) || (*(pid_t *)(data.dptr) != pid)) { + DEBUG(DEBUG_DEBUG, (__location__ " my pid is not stored in " + "the transaction lock record\n")); tdb_transaction_cancel(ctdb_db->ltdb->tdb); talloc_free(tmp_ctx); goto again; |
