Ok, I've fixed this one. It now sends the updates back to the client as it
should. I've also added a system test to check for this behavior, so it
should never happen again.
- Doug
On Tue, Dec 2, 2008 at 6:38 AM, donald <[EMAIL PROTECTED]> wrote:
>
> There is a regression in Hypertable 0.9.0.11 and newer.
>
> in RangeServer::update()
>
> <code>
> /**
> * Apply the modifications
> */
> range_vector[rangei].range_ptr->lock();
> {
> Key key_comps;
> uint8_t *ptr = range_vector[rangei].bufp->base + range_vector
> [rangei].offset;
> uint8_t *end = ptr + range_vector[rangei].len;
> while (ptr < end) {
> key.ptr = ptr;
> key_comps.load(key);
> ptr += key_comps.length;
> value.ptr = ptr;
> ptr += value.length();
> error = range_vector[rangei].range_ptr->add(key_comps,
> value);
> HT_EXPECT(error == Error::OK, Error::FAILED_EXPECTATION);
> }
> }
> range_vector[rangei].range_ptr->unlock();
> </code>
>
> range_vector[rangei].range_ptr->add(key_comps, value) may return
> Error::RANGESERVER_ROW_OVERFLOW and other errors under certain
> conditions, which causes the following assertion to fail and the whole
> range server killed.
>
> In 0.9.0.10, this situation is used to be handled by sending back the
> failed cells. In fact they could be simply discarded since
> RANGESERVER_ROW_OVERFLOW is an unrecoverable error.
>
> Donald
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Hypertable Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/hypertable-dev?hl=en
-~----------~----~----~----~------~----~------~--~---