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