sh.exe: TP_NUM_W_BUFS too small?

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Jul 20 12:08:00 GMT 2009


On Jul 20 09:37, Magnus Holmgren wrote:
> When running configure scripts, I sometimes see this error message repeated
> several times, for different lines of the configure script:
> 
> bin\sh.exe: *** fatal error - Internal error: TP_NUM_W_BUFS too small.
> 
> I saw this when building libsdl 1.2.13 on Cygwin 1.7 (uname -v reports
> 2009-07-13 10:28) on 64-bit Vista SP2. The configure script seem to have
> succeeded anyway (the build completes and libsdl works). So, is it really
> an error?

Yes, it is definitely a bug.  AFAICS this occurs when a process forks
too deeply (child forks, grandchild forks again, etc, without execing).
The fork() setjmp/longjmp magic accidentally skipped the cleanup
destructor which is supposed to free the temporary thread-local buffers.
This doesn't matter if the child process execs, as usual, but it matters
a lot as soon as the forked child forks further and further, so the
thread-local buffers become a sparse resource.

Thanks for the report.  I'm surprised this hasn't been found earlier.
I'll check in a patch.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list