All of lore.kernel.org
 help / color / mirror / Atom feed
* Asserts while running test/erasure-code/test-erasure-eio.sh
@ 2016-01-17 16:32 Willem Jan Withagen
       [not found] ` <CAJ4mKGbCjXt5MxxpvMVXoJcTUuCvgzCzzhh+9v7+p+qhvS9pQA@mail.gmail.com>
  0 siblings, 1 reply; 2+ messages in thread
From: Willem Jan Withagen @ 2016-01-17 16:32 UTC (permalink / raw)
  To: Ceph Development


When I run the above script I get asserts:

osd/ECBackend.cc: 201: FAILED assert(res.errors.empty())

Which is in this code:
struct OnRecoveryReadComplete :
  public GenContext<pair<RecoveryMessages*, ECBackend::read_result_t& > &> {
  ECBackend *pg;
  hobject_t hoid;
  set<int> want;
  OnRecoveryReadComplete(ECBackend *pg, const hobject_t &hoid)
    : pg(pg), hoid(hoid) {}
  void finish(pair<RecoveryMessages *, ECBackend::read_result_t &> &in) {
    ECBackend::read_result_t &res = in.second;
    // FIXME???
    assert(res.r == 0);
    assert(res.errors.empty());
    assert(res.returned.size() == 1);
    pg->handle_recovery_read_complete(
      hoid,
      res.returned.back(),
      res.attrs,
      in.first);
  }
};

Now the //FIXME remark suggests that the code could be not oke.
And/or the asserts are too strong.
Any hints, suggestions or questions to fix this.

--WjW




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Asserts while running test/erasure-code/test-erasure-eio.sh
       [not found] ` <CAJ4mKGbCjXt5MxxpvMVXoJcTUuCvgzCzzhh+9v7+p+qhvS9pQA@mail.gmail.com>
@ 2016-01-18 19:38   ` Willem Jan Withagen
  0 siblings, 0 replies; 2+ messages in thread
From: Willem Jan Withagen @ 2016-01-18 19:38 UTC (permalink / raw)
  To: Gregory Farnum; +Cc: Ceph Development

On 18-1-2016 19:37, Gregory Farnum wrote:
> On Sunday, January 17, 2016, Willem Jan Withagen <wjw@digiware.nl
> <mailto:wjw@digiware.nl>> wrote:
> 
> 
>     When I run the above script I get asserts:
> 
>     osd/ECBackend.cc: 201: FAILED assert(res.errors.empty())
> 
>     Which is in this code:
>     struct OnRecoveryReadComplete :
>       public GenContext<pair<RecoveryMessages*,
>     ECBackend::read_result_t& > &> {
>       ECBackend *pg;
>       hobject_t hoid;
>       set<int> want;
>       OnRecoveryReadComplete(ECBackend *pg, const hobject_t &hoid)
>         : pg(pg), hoid(hoid) {}
>       void finish(pair<RecoveryMessages *, ECBackend::read_result_t &>
>     &in) {
>         ECBackend::read_result_t &res = in.second;
>         // FIXME???
>         assert(res.r == 0);
>         assert(res.errors.empty());
>         assert(res.returned.size() == 1);
>         pg->handle_recovery_read_complete(
>           hoid,
>           res.returned.back(),
>           res.attrs,
>           in.first);
>       }
>     };
> 
>     Now the //FIXME remark suggests that the code could be not oke.
>     And/or the asserts are too strong.
>     Any hints, suggestions or questions to fix this.
> 
> 
> I haven't checked the code in any detail, but this snippet is asserting
> that we didn't get any errors while reading several different chunks of
> an erasure-coded data stripe. The FIXME is because it would be great if
> we could handle errors transparently, but if the make check tests are
> failing, presumably there's an issue.

Hi Greg,

Thanx for the info.
In that case it is something that goes onto my list of things to solve.

Perhaps even the upgrade to Clang 3.8 (I saw commits passing by FreeBSD
11.0) helps... Upgrading stuff changed some of the errors the previous
time, did not fix 'm but made a lot more sense.

--WjW



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-01-18 19:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-17 16:32 Asserts while running test/erasure-code/test-erasure-eio.sh Willem Jan Withagen
     [not found] ` <CAJ4mKGbCjXt5MxxpvMVXoJcTUuCvgzCzzhh+9v7+p+qhvS9pQA@mail.gmail.com>
2016-01-18 19:38   ` Willem Jan Withagen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.