On Wed, Jun 24, 2015 at 07:10:33AM +0200, Patrik Lundin wrote: > > The summary for now looks like this: > Working: amd64, sparc64 > Broken: i386, macppc > > Is there some relation between threading and 32/64 bit? It is the main > thing that sticks out currently, since sparc64 rules out an endian issue > as far as i can tell. >
So there might be some light at the end of the opendnssec tunnel. I have noticed that the thread stack size is smaller on i386 than it is on amd64 using this code snippet: --- #include <stdio.h> #include <pthread.h> pthread_attr_t attr; size_t stacksize; int main (){ pthread_attr_init(&attr); pthread_attr_getstacksize(&attr, &stacksize); printf("stacksize: %d\n", stacksize); return 0; } --- While amd64 and sparc64 reports 524288, i386 says 262144. It looks like I have been able to stop opendnssec from crashing by modifying a wrapper function to pass an attribute variable to pthread_create(), increasing the stack size: --- pthread_attr_t attr; size_t stacksize; pthread_attr_init(&attr); pthread_attr_getstacksize(&attr, &stacksize); pthread_attr_setstacksize(&attr, stacksize * 2); --- The above was inspired from this thread: http://openbsd-archive.7691.n7.nabble.com/Default-Posix-thread-stack-size-td47465.html Anyway, I have sent a message regarding this to one of the nlnet people. I will report back with how things goes. I am not sure if this is the correct fix, or if one should instead store less data on the stack or something. -- Patrik Lundin