rhmessaging commits: r2059 - in store/trunk/cpp/lib: jrnl and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: kpvdr
Date: 2008-05-16 10:32:46 -0400 (Fri, 16 May 2008)
New Revision: 2059
Modified:
store/trunk/cpp/lib/JournalImpl.cpp
store/trunk/cpp/lib/jrnl/rmgr.cpp
store/trunk/cpp/lib/jrnl/wmgr.cpp
Log:
Logic fix for BZ446096 "flow to disk not working with journal". This fixes the JERR_RMGR_UNKNOWNMAGIC exception.
Modified: store/trunk/cpp/lib/JournalImpl.cpp
===================================================================
--- store/trunk/cpp/lib/JournalImpl.cpp 2008-05-15 23:03:35 UTC (rev 2058)
+++ store/trunk/cpp/lib/JournalImpl.cpp 2008-05-16 14:32:46 UTC (rev 2059)
@@ -237,20 +237,22 @@
::free(_datap);
_datap = 0;
}
- _dlen = 0;
- _dtok.reset();
- _dtok.set_rid(rid);
- _dtok.set_wstate(DataTokenImpl::ENQ);
_external = false;
size_t xlen = 0;
bool transient = false;
bool done = false;
+ bool rid_found = false;
unsigned aio_sleep_cnt = 0;
while (!done)
{
- iores res = read_data_record(&_datap, _dlen, &_xidp, xlen, transient, _external,
- &_dtok);
- if (res == journal::RHM_IORES_SUCCESS) {
+ _dlen = 0;
+ _dtok.reset();
+ _dtok.set_wstate(DataTokenImpl::ENQ);
+ _dtok.set_rid(0);
+ iores res = read_data_record(&_datap, _dlen, &_xidp, xlen, transient, _external, &_dtok);
+ bool rid_low = _dtok.rid() < rid;
+ rid_found = _dtok.rid() == rid;
+ if (res == journal::RHM_IORES_SUCCESS && !rid_low) {
done = true;
} else if (res == journal::RHM_IORES_PAGE_AIOWAIT) {
if (++aio_sleep_cnt <= MAX_AIO_SLEEPS) {
@@ -262,12 +264,17 @@
ss << "; exceeded maximum wait time";
throw jexception(0, ss.str().c_str(), "JournalImpl", "loadMsgContent");
}
- } else {
+ } else if (!rid_low) {
std::stringstream ss;
ss << "read_data_record() returned " << journal::iores_str(res);
throw jexception(0, ss.str().c_str(), "JournalImpl", "loadMsgContent");
}
}
+ if (!rid_found) {
+ std::stringstream ss;
+ ss << "read_data_record() was unable to find rid " << rid << "; last rid found was " << _dtok.rid();
+ throw jexception(0, ss.str().c_str(), "JournalImpl", "loadMsgContent");
+ }
}
if (_external)
return false;
Modified: store/trunk/cpp/lib/jrnl/rmgr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/rmgr.cpp 2008-05-15 23:03:35 UTC (rev 2058)
+++ store/trunk/cpp/lib/jrnl/rmgr.cpp 2008-05-16 14:32:46 UTC (rev 2059)
@@ -89,8 +89,8 @@
}
iores
-rmgr::read(void** const datapp, std::size_t& dsize, void** const xidpp, std::size_t& xidsize, bool& transient,
- bool& external, data_tok* dtokp)
+rmgr::read(void** const datapp, std::size_t& dsize, void** const xidpp, std::size_t& xidsize,
+ bool& transient, bool& external, data_tok* dtokp)
{
iores res = pre_read_check(dtokp);
if (res != RHM_IORES_SUCCESS)
Modified: store/trunk/cpp/lib/jrnl/wmgr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/wmgr.cpp 2008-05-15 23:03:35 UTC (rev 2058)
+++ store/trunk/cpp/lib/jrnl/wmgr.cpp 2008-05-16 14:32:46 UTC (rev 2059)
@@ -117,9 +117,9 @@
}
iores
-wmgr::enqueue(const void* const data_buff, const std::size_t tot_data_len, const std::size_t this_data_len,
- data_tok* dtokp, const void* const xid_ptr, const std::size_t xid_len, const bool transient,
- const bool external)
+wmgr::enqueue(const void* const data_buff, const std::size_t tot_data_len,
+ const std::size_t this_data_len, data_tok* dtokp, const void* const xid_ptr,
+ const std::size_t xid_len, const bool transient, const bool external)
{
if (xid_len)
assert(xid_ptr != 0);
16 years, 10 months
rhmessaging commits: r2058 - mgmt/mint/python/mint.
by rhmessaging-commits@lists.jboss.org
Author: nunofsantos
Date: 2008-05-15 19:03:35 -0400 (Thu, 15 May 2008)
New Revision: 2058
Modified:
mgmt/mint/python/mint/__init__.py
Log:
lock shared data structures for thread safety
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-05-15 19:49:57 UTC (rev 2057)
+++ mgmt/mint/python/mint/__init__.py 2008-05-15 23:03:35 UTC (rev 2058)
@@ -284,12 +284,23 @@
self.mchan = None
def getByOriginalId(self, objType, idOriginal, managedBroker, create=False, args={}):
- return self.objs.getByOriginalId(objType, idOriginal, managedBroker, create, args)
+ result = None
+ self.model.lock.acquire()
+ try:
+ result = self.objs.getByOriginalId(objType, idOriginal, managedBroker, create, args)
+ finally:
+ self.model.lock.release()
+ return result
def getByIndexAttrib(self, objType, indexAttrib, indexValue, parent,
create=False, args={}):
- return self.objs.getByIndexAttrib(objType, indexAttrib, indexValue,
- create, args)
+ result = None
+ self.model.lock.acquire()
+ try:
+ result = self.objs.getByIndexAttrib(objType, indexAttrib, indexValue, create, args)
+ finally:
+ self.model.lock.release()
+ return result
class MintModel:
staticInstance = None
@@ -366,9 +377,16 @@
def configCallback(self, brokerId, classInfo, list, timestamps):
self.log("\nCONFIG---------------------------------------------------")
objectName = classInfo[1]
+ brokerUUID = classInfo[2]
self.log(objectName)
d = self.sanitizeDict(dict(list))
- conn = self.connections[brokerId]
+
+ self.lock.acquire()
+ try:
+ conn = self.connections[brokerId]
+ finally:
+ self.lock.release()
+
d["managedBroker"] = brokerId
d["recTime"] = datetime.fromtimestamp(timestamps[0]/1000000000)
d["creationTime"] = datetime.fromtimestamp(timestamps[1]/1000000000)
@@ -398,9 +416,16 @@
def instCallback(self, brokerId, classInfo, list, timestamps):
self.log("\nINST---------------------------------------------------")
objectName = classInfo[1]
+ brokerUUID = classInfo[2]
self.log(objectName)
d = self.sanitizeDict(dict(list))
- conn = self.connections[brokerId]
+
+ self.lock.acquire()
+ try:
+ conn = self.connections[brokerId]
+ finally:
+ self.lock.release()
+
d["recTime"] = datetime.fromtimestamp(timestamps[0]/1000000000)
self.log(d)
@@ -455,7 +480,13 @@
def closeCallback(self, brokerId, data):
self.log("\nCLOSE---------------------------------------------------")
self.log("BrokerId=%s , Data=%s" % (brokerId, data))
- del self.connections[brokerId]
+
+ self.lock.acquire()
+ try:
+ del self.connections[brokerId]
+ finally:
+ self.lock.release()
+
if (self.connCloseListener != None):
self.connCloseListener(brokerId, data)
self.log("END CLOSE---------------------------------------------------\n")
@@ -463,7 +494,14 @@
def controlCallback(self, brokerId, type, data):
self.log("\nCONTROL---------------------------------------------------")
- self.log("BrokerId=%s , Type=%s, Data=%s" % (brokerId, type, data))
+ readableType = "UNKNOWN"
+ if (type == managementClient.CTRL_BROKER_INFO):
+ readableType = "CTRL_BROKER_INFO"
+ elif (type == managementClient.CTRL_SCHEMA_LOADED):
+ readableType = "CTRL_SCHEMA_LOADED"
+ elif (type == managementClient.CTRL_USER):
+ readableType = "CTRL_USER"
+ self.log("BrokerId=%s , Type=%s, Data=%s" % (brokerId, readableType, data))
self.log("END CONTROL---------------------------------------------------\n")
return
@@ -474,7 +512,13 @@
return methodId
def getConnectionByRegistration(self, reg):
- return self.connections.get("%s:%i" % (reg.host, reg.port))
+ result = None
+ self.lock.acquire()
+ try:
+ result = self.connections.get("%s:%i" % (reg.host, reg.port))
+ finally:
+ self.lock.release()
+ return result
class MintDatabase(object):
def __init__(self, uri):
16 years, 10 months
rhmessaging commits: r2057 - mgmt/mint/python/mint.
by rhmessaging-commits@lists.jboss.org
Author: nunofsantos
Date: 2008-05-15 15:49:57 -0400 (Thu, 15 May 2008)
New Revision: 2057
Modified:
mgmt/mint/python/mint/__init__.py
Log:
add 'managedBroker' to composite key for broker lookup
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-05-15 17:00:14 UTC (rev 2056)
+++ mgmt/mint/python/mint/__init__.py 2008-05-15 19:49:57 UTC (rev 2057)
@@ -126,22 +126,23 @@
def set(self, idOriginal, obj):
self.idMap[idOriginal] = obj
- def getByOriginalId(self, objType, idOriginal, create=False, args={}):
+ def getByOriginalId(self, objType, idOriginal, managedBroker, create=False, args={}):
obj = None
- if (idOriginal in self.idMap):
+ key = (managedBroker, idOriginal)
+ if (key in self.idMap):
#print "\n\n=============== %s %d found\n\n" % (objType.__name__, idOriginal)
- obj = self.idMap[idOriginal]
+ obj = self.idMap[key]
else:
try:
- obj = eval("objType.selectBy(idOriginal=idOriginal)[:1][0]")
- self.idMap[idOriginal] = obj
+ obj = eval("objType.selectBy(idOriginal=idOriginal, managedBroker=managedBroker)[:1][0]")
+ self.idMap[key] = obj
except:
if (create):
#print "\n\n=============== %s %d NOT found, creating\n\n" % (objType.__name__, idOriginal)
obj = objType.__new__(objType)
obj.__init__()
obj.syncUpdate()
- self.idMap[idOriginal] = obj
+ self.idMap[key] = obj
else:
#print "\n\n=============== %s %d NOT found, NOT creating\n\n" % (objType.__name__, idOriginal)
pass
@@ -282,8 +283,8 @@
self.mclient = None
self.mchan = None
- def getByOriginalId(self, objType, idOriginal, create=False, args={}):
- return self.objs.getByOriginalId(objType, idOriginal, create, args)
+ def getByOriginalId(self, objType, idOriginal, managedBroker, create=False, args={}):
+ return self.objs.getByOriginalId(objType, idOriginal, managedBroker, create, args)
def getByIndexAttrib(self, objType, indexAttrib, indexValue, parent,
create=False, args={}):
@@ -377,8 +378,8 @@
convertedKey = self.convertRefKey(parentKey)
cls = schema.schemaNameToClassMap.get(convertedKey)
if cls:
- d[convertedKey] = conn.getByOriginalId(cls, d.pop(parentKey))
- obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d["idOriginal"], create=True)
+ d[convertedKey] = conn.getByOriginalId(cls, d.pop(parentKey), brokerId)
+ obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d["idOriginal"], brokerId, create=True)
if (not obj):
self.log("Couldn't find type %s id %s" % (objectName, d["idOriginal"]))
return
@@ -404,7 +405,7 @@
self.log(d)
try:
- obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d[self.convertIdKey("id")])
+ obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d[self.convertIdKey("id")], brokerId)
if (not obj):
self.log("Couldn't find type %s id %s" % (objectName, d[self.convertIdKey("id")]))
print "lion", classInfo, list
16 years, 10 months
rhmessaging commits: r2056 - mgmt/cumin/bin.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2008-05-15 13:00:14 -0400 (Thu, 15 May 2008)
New Revision: 2056
Modified:
mgmt/cumin/bin/cumin-admin
Log:
Handle --help after we parse options so that we can print usage
Modified: mgmt/cumin/bin/cumin-admin
===================================================================
--- mgmt/cumin/bin/cumin-admin 2008-05-15 15:32:27 UTC (rev 2055)
+++ mgmt/cumin/bin/cumin-admin 2008-05-15 17:00:14 UTC (rev 2056)
@@ -46,13 +46,13 @@
sys.exit(1)
def main():
+ config = CuminConfig()
+ config.add_param("force", bool, False, "Don't complain and just do it")
+
if "-h" in sys.argv or "--help" in sys.argv:
print_usage(config)
sys.exit(0)
- config = CuminConfig()
- config.add_param("force", bool, False, "Don't complain and just do it")
-
# XXX I think we need to avoid using sys.argv inside of CuminConfig
config.init()
16 years, 10 months
rhmessaging commits: r2055 - mgmt/mint/python/mint.
by rhmessaging-commits@lists.jboss.org
Author: nunofsantos
Date: 2008-05-15 11:32:27 -0400 (Thu, 15 May 2008)
New Revision: 2055
Modified:
mgmt/mint/python/mint/__init__.py
Log:
handle missed map lookups
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-05-15 15:03:20 UTC (rev 2054)
+++ mgmt/mint/python/mint/__init__.py 2008-05-15 15:32:27 UTC (rev 2055)
@@ -379,6 +379,9 @@
if cls:
d[convertedKey] = conn.getByOriginalId(cls, d.pop(parentKey))
obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d["idOriginal"], create=True)
+ if (not obj):
+ self.log("Couldn't find type %s id %s" % (objectName, d["idOriginal"]))
+ return
obj.set(**d)
obj.syncUpdate()
except TypeError, detail:
@@ -387,10 +390,6 @@
except KeyError, detail:
self.log("Schema mismatch: %s" % detail)
return
- except ProgrammingError, detail:
- # XXX FIX
- self.log("SQL syntax error: %s" % detail)
- return
self.log("END CONFIG---------------------------------------------------\n")
return obj
@@ -406,7 +405,8 @@
try:
obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d[self.convertIdKey("id")])
- if not obj:
+ if (not obj):
+ self.log("Couldn't find type %s id %s" % (objectName, d[self.convertIdKey("id")]))
print "lion", classInfo, list
return
@@ -415,6 +415,10 @@
objStats = objNameStats.__new__(objNameStats)
objStats.__init__()
+ if (not objStats):
+ self.log("Couldn't find type %s id %s" % (objNameStats, d[self.convertIdKey("id")]))
+ return
+
objStats.set(**d)
objStats.syncUpdate()
@@ -432,10 +436,6 @@
except KeyError, detail:
self.log("Schema mismatch: %s" % detail)
return
- except ProgrammingError, detail:
- # XXX FIX
- self.log("SQL syntax error: %s" % detail)
- return
self.log("END INST---------------------------------------------------\n")
return objStats
16 years, 10 months
rhmessaging commits: r2054 - in store/trunk/cpp: tests/jrnl/jtt and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: kpvdr
Date: 2008-05-15 11:03:20 -0400 (Thu, 15 May 2008)
New Revision: 2054
Modified:
store/trunk/cpp/lib/jrnl/jcntl.cpp
store/trunk/cpp/tests/jrnl/jtt/jrnl_instance.cpp
Log:
BZ446216 "jtt tests hanging". Two issues solved: the bad handling of RHM_IORES_ENQCAPTHRESH returns under jtt, which caused it to hang waiting indefinitely for this status to change; and solving the underlying cause - incomplete recovery.
Modified: store/trunk/cpp/lib/jrnl/jcntl.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/jcntl.cpp 2008-05-15 14:48:01 UTC (rev 2053)
+++ store/trunk/cpp/lib/jrnl/jcntl.cpp 2008-05-15 15:03:20 UTC (rev 2054)
@@ -652,10 +652,24 @@
std::size_t cum_size_read = 0;
void* xidp = 0;
rec_hdr h;
- if (!jfile_cycle(fid, ifsp, lowi, rd, true))
- return false;
- std::streampos file_pos = ifsp->tellg();
- ifsp->read((char*)&h, sizeof(rec_hdr));
+
+ bool hdr_ok = false;
+ std::streampos file_pos;
+ while (!hdr_ok)
+ {
+ if (!ifsp->is_open())
+ {
+ if (!jfile_cycle(fid, ifsp, lowi, rd, true))
+ return false;
+ }
+ file_pos = ifsp->tellg();
+ ifsp->read((char*)&h, sizeof(rec_hdr));
+ if (ifsp->gcount() == sizeof(rec_hdr))
+ hdr_ok = true;
+ else if (!jfile_cycle(fid, ifsp, lowi, rd, true))
+ return false;
+ }
+
switch(h._magic)
{
case RHM_JDAT_ENQ_MAGIC:
@@ -800,8 +814,8 @@
}
bool
-jcntl::decode(jrec& rec, u_int16_t& fid, std::ifstream* ifsp, std::size_t& cum_size_read, rec_hdr& h,
- bool& lowi, rcvdat& rd, std::streampos& file_offs)
+jcntl::decode(jrec& rec, u_int16_t& fid, std::ifstream* ifsp, std::size_t& cum_size_read,
+ rec_hdr& h, bool& lowi, rcvdat& rd, std::streampos& file_offs)
{
u_int16_t start_fid = fid;
std::streampos start_file_offs = file_offs;
@@ -839,7 +853,6 @@
{
rd._eo = ifsp->tellg(); // remember file offset before closing
ifsp->close();
- ifsp->clear(); // clear eof flag, req'd for older versions of c++
if (++fid >= _num_jfiles)
{
fid = 0;
@@ -854,6 +867,7 @@
std::ostringstream oss;
oss << _jdir.dirname() << "/" << _base_filename << ".";
oss << std::hex << std::setfill('0') << std::setw(4) << fid << "." << JRNL_DATA_EXTENSION;
+ ifsp->clear(); // clear eof flag, req'd for older versions of c++
ifsp->open(oss.str().c_str(), std::ios_base::in | std::ios_base::binary);
if (!ifsp->good())
throw jexception(jerrno::JERR__FILEIO, oss.str(), "jcntl", "jfile_cycle");
Modified: store/trunk/cpp/tests/jrnl/jtt/jrnl_instance.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtt/jrnl_instance.cpp 2008-05-15 14:48:01 UTC (rev 2053)
+++ store/trunk/cpp/tests/jrnl/jtt/jrnl_instance.cpp 2008-05-15 15:03:20 UTC (rev 2054)
@@ -29,8 +29,9 @@
#include "jrnl/jerrno.hpp"
#include "test_case_result.hpp"
-#define MAX_WR_WAIT 10 // in ms
-#define MAX_RD_WAIT 100 // in ms
+#define MAX_WR_WAIT 10 // in ms
+#define MAX_RD_WAIT 100 // in ms
+#define MAX_ENQCAPTHRESH_CNT 1000 // 10s if MAX_WR_WAIT is 10 ms
namespace rhm
{
@@ -202,8 +203,13 @@
commit(p.get());
break;
case rhm::journal::RHM_IORES_ENQCAPTHRESH:
- if (get_wr_events() == 0)
+ if (++sleep_cnt > MAX_ENQCAPTHRESH_CNT)
{
+ _tcrp->add_exception("Timeout waiting for RHM_IORES_ENQCAPTHRESH to clear.");
+ panic();
+ }
+ else if (get_wr_events() == 0)
+ {
rhm::journal::slock sl(&_wr_full_mutex);
_wr_full_cv.waitintvl(MAX_WR_WAIT * 1000000); // MAX_WR_WAIT in ms
}
16 years, 10 months
rhmessaging commits: r2053 - mgmt/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2008-05-15 10:48:01 -0400 (Thu, 15 May 2008)
New Revision: 2053
Modified:
mgmt/cumin/python/cumin/broker.py
Log:
Add a Last Error column to PeerSet
Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py 2008-05-15 14:05:51 UTC (rev 2052)
+++ mgmt/cumin/python/cumin/broker.py 2008-05-15 14:48:01 UTC (rev 2053)
@@ -130,6 +130,9 @@
col = self.StateColumn(app, "state")
self.add_column(col)
+ col = self.LastErrorColumn(app, "last_error")
+ self.add_column(col)
+
#col = self.FromPeerColumn(app, "from_peer")
#self.add_column(col)
@@ -165,6 +168,10 @@
def render_title(self, session, data):
return "State"
+ class LastErrorColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "Last Error"
+
class FromPeerColumn(NullSortColumn, FreshDataOnlyColumn):
def render_title(self, session, data):
return "Bytes from Broker"
16 years, 10 months
rhmessaging commits: r2052 - mgmt/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2008-05-15 10:05:51 -0400 (Thu, 15 May 2008)
New Revision: 2052
Modified:
mgmt/cumin/python/cumin/broker.py
mgmt/cumin/python/cumin/broker.strings
Log:
bz446494 - Change the query and table columns to match the link schema
Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py 2008-05-15 13:22:36 UTC (rev 2051)
+++ mgmt/cumin/python/cumin/broker.py 2008-05-15 14:05:51 UTC (rev 2052)
@@ -127,12 +127,15 @@
col = self.AddressColumn(app, "addr")
self.add_column(col)
- col = self.FromPeerColumn(app, "from_peer")
+ col = self.StateColumn(app, "state")
self.add_column(col)
- col = self.ToPeerColumn(app, "to_peer")
- self.add_column(col)
+ #col = self.FromPeerColumn(app, "from_peer")
+ #self.add_column(col)
+ #col = self.ToPeerColumn(app, "to_peer")
+ #self.add_column(col)
+
def get_args(self, session):
reg = self.frame.get_object(session)
return (reg.getDefaultVhost(),)
@@ -151,6 +154,17 @@
def render_title(self, session, data):
return "Address"
+ def render_content(self, session, data):
+ return "%s:%i" % (data["host"], data["port"])
+
+ def get_orderby_sql(self, session):
+ dir = self.parent.is_reversed(session) and "desc" or "asc"
+ return "order by host, port %s" % dir
+
+ class StateColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "State"
+
class FromPeerColumn(NullSortColumn, FreshDataOnlyColumn):
def render_title(self, session, data):
return "Bytes from Broker"
Modified: mgmt/cumin/python/cumin/broker.strings
===================================================================
--- mgmt/cumin/python/cumin/broker.strings 2008-05-15 13:22:36 UTC (rev 2051)
+++ mgmt/cumin/python/cumin/broker.strings 2008-05-15 14:05:51 UTC (rev 2052)
@@ -42,11 +42,10 @@
[PeerSet.sql]
select
l.id,
- l.address as addr,
- c.bytes_from_peer as from_peer,
- case when p.bytes_from_peer is null then true else false end as from_peer_is_null,
- c.bytes_to_peer as to_peer,
- case when p.bytes_to_peer is null then true else false end as to_peer_is_null
+ l.host,
+ l.port,
+ c.state,
+ c.last_error
from link as l
join vhost as v on v.id = l.vhost_id
left outer join link_stats as c on c.id = l.stats_curr_id
16 years, 10 months
rhmessaging commits: r2051 - in mgmt/mint: sql and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: nunofsantos
Date: 2008-05-15 09:22:36 -0400 (Thu, 15 May 2008)
New Revision: 2051
Modified:
mgmt/mint/python/mint/__init__.py
mgmt/mint/python/mint/schema.py
mgmt/mint/sql/schema.sql
Log:
handle missing key in map lookup
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-05-14 20:18:00 UTC (rev 2050)
+++ mgmt/mint/python/mint/__init__.py 2008-05-15 13:22:36 UTC (rev 2051)
@@ -403,42 +403,35 @@
conn = self.connections[brokerId]
d["recTime"] = datetime.fromtimestamp(timestamps[0]/1000000000)
self.log(d)
- obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d[self.convertIdKey("id")])
- if not obj:
- print "lion", classInfo, list
- return
+ try:
+ obj = conn.getByOriginalId(schema.schemaNameToClassMap[objectName], d[self.convertIdKey("id")])
+ if not obj:
+ print "lion", classInfo, list
+ return
- d[objectName] = obj
- objNameStats = eval("schema.%sStats" % (schema.schemaNameToClassMap[objectName].__name__))
- objStats = objNameStats.__new__(objNameStats)
- objStats.__init__()
+ d[objectName] = obj
+ objNameStats = eval("schema.%sStats" % (schema.schemaNameToClassMap[objectName].__name__))
+ objStats = objNameStats.__new__(objNameStats)
+ objStats.__init__()
- try:
objStats.set(**d)
- except TypeError, detail:
- self.log("Schema mismatch: %s" % detail)
-
- try:
objStats.syncUpdate()
- except ProgrammingError, detail
- # XXX FIX
- self.log("SQL syntax error: %s" % detail)
- return
- d = dict()
- if (timestamps[2] != 0):
- d["deletionTime"] = datetime.fromtimestamp(timestamps[2]/1000000000)
- d["statsPrev"] = obj.statsCurr
- d["statsCurr"] = objStats
+ d = dict()
+ if (timestamps[2] != 0):
+ d["deletionTime"] = datetime.fromtimestamp(timestamps[2]/1000000000)
+ d["statsPrev"] = obj.statsCurr
+ d["statsCurr"] = objStats
- try:
obj.set(**d)
+ obj.syncUpdate()
except TypeError, detail:
self.log("Schema mismatch: %s" % detail)
-
- try:
- obj.syncUpdate()
+ return
+ except KeyError, detail:
+ self.log("Schema mismatch: %s" % detail)
+ return
except ProgrammingError, detail:
# XXX FIX
self.log("SQL syntax error: %s" % detail)
Modified: mgmt/mint/python/mint/schema.py
===================================================================
--- mgmt/mint/python/mint/schema.py 2008-05-14 20:18:00 UTC (rev 2050)
+++ mgmt/mint/python/mint/schema.py 2008-05-15 13:22:36 UTC (rev 2051)
@@ -421,14 +421,14 @@
conn.callMethod(self.idOriginal, classInfo, "close",
callback, args=actualArgs)
- def bridge(self, model, callback, durable, src, dest, key, id, excludes, src_is_queue, src_is_local):
+ def bridge(self, model, callback, durable, src, dest, key, tag, excludes, src_is_queue, src_is_local):
"""Bridge messages over the link"""
actualArgs = dict()
actualArgs["durable"] = durable
actualArgs["src"] = src
actualArgs["dest"] = dest
actualArgs["key"] = key
- actualArgs["id"] = id
+ actualArgs["tag"] = tag
actualArgs["excludes"] = excludes
actualArgs["src_is_queue"] = src_is_queue
actualArgs["src_is_local"] = src_is_local
@@ -468,11 +468,14 @@
statsPrev = ForeignKey('BridgeStats', cascade='null', default=None)
link = ForeignKey('Link', cascade='null', default=None)
channelId = SmallIntCol(default=None)
+ durable = BoolCol(default=None)
src = StringCol(length=1000, default=None)
dest = StringCol(length=1000, default=None)
key = StringCol(length=1000, default=None)
srcIsQueue = BoolCol(default=None)
srcIsLocal = BoolCol(default=None)
+ tag = StringCol(length=1000, default=None)
+ excludes = StringCol(length=1000, default=None)
classInfos = dict() # brokerId => classInfo
Modified: mgmt/mint/sql/schema.sql
===================================================================
--- mgmt/mint/sql/schema.sql 2008-05-14 20:18:00 UTC (rev 2050)
+++ mgmt/mint/sql/schema.sql 2008-05-15 13:22:36 UTC (rev 2051)
@@ -107,11 +107,14 @@
stats_prev_id INT,
link_id INT,
channel_id SMALLINT,
+ durable BOOL,
src VARCHAR(1000),
dest VARCHAR(1000),
key VARCHAR(1000),
src_is_queue BOOL,
- src_is_local BOOL
+ src_is_local BOOL,
+ tag VARCHAR(1000),
+ excludes VARCHAR(1000)
);
CREATE TABLE bridge_stats (
16 years, 10 months
rhmessaging commits: r2050 - mgmt/mint/python/mint.
by rhmessaging-commits@lists.jboss.org
Author: nunofsantos
Date: 2008-05-14 16:18:00 -0400 (Wed, 14 May 2008)
New Revision: 2050
Modified:
mgmt/mint/python/mint/__init__.py
Log:
BZ 446480: catch the malformed SQL exception, still need to be handled/prevented properly
Modified: mgmt/mint/python/mint/__init__.py
===================================================================
--- mgmt/mint/python/mint/__init__.py 2008-05-14 10:23:20 UTC (rev 2049)
+++ mgmt/mint/python/mint/__init__.py 2008-05-14 20:18:00 UTC (rev 2050)
@@ -387,6 +387,10 @@
except KeyError, detail:
self.log("Schema mismatch: %s" % detail)
return
+ except ProgrammingError, detail:
+ # XXX FIX
+ self.log("SQL syntax error: %s" % detail)
+ return
self.log("END CONFIG---------------------------------------------------\n")
return obj
@@ -415,7 +419,13 @@
except TypeError, detail:
self.log("Schema mismatch: %s" % detail)
- objStats.syncUpdate()
+ try:
+ objStats.syncUpdate()
+ except ProgrammingError, detail
+ # XXX FIX
+ self.log("SQL syntax error: %s" % detail)
+ return
+
d = dict()
if (timestamps[2] != 0):
d["deletionTime"] = datetime.fromtimestamp(timestamps[2]/1000000000)
@@ -426,8 +436,14 @@
obj.set(**d)
except TypeError, detail:
self.log("Schema mismatch: %s" % detail)
+
+ try:
+ obj.syncUpdate()
+ except ProgrammingError, detail:
+ # XXX FIX
+ self.log("SQL syntax error: %s" % detail)
+ return
- obj.syncUpdate()
self.log("END INST---------------------------------------------------\n")
return objStats
16 years, 10 months