Hi there,
actually, i have trace the code in to xfs_repair/threads.c (taken from
2.8.18)
void
thread_init(void)
{
....
if ((status = pthread_attr_getstacksize(&attr, &stacksize)) != 0)
do_error(_("status from pthread_attr_getstacksize: %d"),
status);
stacksize *= 4;
if ((status = pthread_attr_setstacksize(&attr, stacksize)) != 0)
do_error(_("status from pthread_attr_setstacksize: %d"),
status);
....
}
the repair program dies in pthread_attr_setstacksize(&attr, stacksize)).
is there any reason why the program is trying to set the stacksize into
4 times the current size?
just for testing purposes, I remove the stacksize *= 4; the xfs_repair
seems to 'work', at least from user's point of view.
I have tested with x86 32bits machines with 2.4 and 2.6 kernels, they
both yield with the same results,
Thanks,
-Ying
Ying-Hung Chen wrote:
> Hi there,
>
> I found that xfs_repair always returns the following message with the
> xfsprogs version > 2.8.11
>
> [root@yroro i586]# xfs_repair /dev/hdb1
>
> fatal error -- status from pthread_attr_setstacksize: 22
>
> from the ChangeLog, seems like there is some internal changes with
> threads starting 2.8.11 .. the xfs_repair works for me up to 2.8.11, it
> fails to work on 2.8.16 and 2.8.18,
>
> how do I work around this problem?
>
> Thanks,
>
> -Ying
>
|