FixLocal problem solved – new release now available

The most recent build of AllPathsLG contains an obscure bug fix.  Several users reported a failure in FixLocal — a segmentation fault — that we had not seen.  The problem was traced to the behavior of the pthreads library in the event that the environment specifies the stack size as “unlimited”.  In this case, the library defaults to a rather small stack segment (typically, 4Mb) for auxiliary threads’ stacks, and this was insufficient memory.

The fix required a bit of clever footwork:  By the time we detect the inadequacy of the environment, the damage is done — the library initializes itself with the small stack size at the time it is loaded.  We might have simply required users to manipulate their environment before running AllPathsLG, but that didn’t seem very nice.  So what we do is, in each program as it starts up, we reset the stack size appropriately, and then have the program call exec() on itself so that everything gets reinitialized appropriately.

If it’s convenient for you, you can simply set your stacksize to 100000KB and save the computer the trouble of doing the fancy footwork.  But you don’t have to:  Our current solution seems to work well, and frees us from having to impose an additional environmental criterion on you.

This entry was posted in Release. Bookmark the permalink.

Comments are closed.