svn commit: r214334 - head/lib/libthr/thread

David Xu davidxu at freebsd.org
Tue Oct 26 13:35:37 UTC 2010


Anonymous wrote:
> David Xu <davidxu at FreeBSD.org> writes:
>
>   
>> Author: davidxu
>> Date: Mon Oct 25 09:16:04 2010
>> New Revision: 214334
>> URL: http://svn.freebsd.org/changeset/base/214334
>>
>> Log:
>>   Get cpuset in pthread_attr_get_np() and free it in pthread_attr_destroy().
>>
>>   MFC after:	7 days
>>     
>
> After this change firefox 4.0b8pre built from mozilla trunk crashes with
> SIGBUS while starting, on /head at r214363M amd64. It may be related to
>
>   $ js
>   Assertion failure: stackBase, at jsnativestack.cpp:217
>
> and the calls preceding it
>
>   pthread_attr_get_np(thread, &sattr);
>   pthread_attr_getstack(&sattr, &stackBase, &stackSize);
>
> java/openjdk6 doesn't start, too
>
>   $ java
>   #
>   # A fatal error has been detected by the Java Runtime Environment:
>   #
>   #  Internal Error (os_bsd_x86.cpp:876), pid=10495, tid=34389128704
>   #  Error: pthread_attr_get_np failed with err = 34
>
>   
It is difficult to know which cpuset size kernel is using,
for example, cpuset_getaffinity has following code:

 if (uap->cpusetsize < sizeof(cpuset_t) ||
       uap->cpusetsize > CPU_MAXSIZE / NBBY)
                return (ERANGE);

So if I provide a buffer, who can tell me what size I should use?
too large or too small ? where can I get the size ?

Regards,
David Xu



More information about the svn-src-head mailing list