aurelien.degremont@cea.fr
2007-Jun-18 03:26 UTC
[Lustre-devel] [Bug 12330] ASSERTION(thread_id < filter->fo_iobuf_count) failed
Please don''t reply to lustre-devel. Instead, comment in Bugzilla by using the following link: https://bugzilla.lustre.org/show_bug.cgi?id=12330 We also hit it, with Lustre 1.6.0, on a small test configuration, doing ceaseless small I/O (~200 MB/s) on 2 OSS, with large stripecount (46, each file was striped on each OST). We think this is a similar problem with "ASSERTION(thread->t_id < OSS_THREAD_MAX)" fixed in 1.6.0. The thread_id count starts from 1, and not from 0, as a consequence, the check must be done with "<=" (Not sure also that thread_id >= 0 is relevant here.) --- lustre/obdfilter/filter.c.orig 2007-06-18 11:21:13.000000000 +0200 +++ lustre/obdfilter/filter.c 2007-06-18 11:21:22.000000000 +0200 @@ -1572,7 +1572,7 @@ void *filter_iobuf_get(struct filter_obd struct filter_iobuf **pool_place = NULL; if (thread_id >= 0) { - LASSERT(thread_id < filter->fo_iobuf_count); + LASSERT(thread_id <= filter->fo_iobuf_count); pool = *(pool_place = &filter->fo_iobuf_pool[thread_id]); }