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
-~----------~----~----~----~------~----~------~--~---

Reply via email to