core dev member please: Re: Strange fork() behaviour under cygwin v1.3.1

Robert Collins robert.collins@itdomain.com.au
Wed May 23 15:27:00 GMT 2001


Chris or another core dev member will need to comment on this.

Personally, I'd sugegst trotting off to the pth folk with a bug report.
(It works with pthreads and native win32 threads - so pth is the
problem).

Rob

> OK, I am now using 1.3.2 (which didn't help :(
>
> I've investigated gnu pth a bit more, and it does do some
"interesting"
> things with the stack when you spawn a new thread (I suppose it would
have
> to). Could this be confusing cygwin?
>
>
> I've got cygwin compiled and put tracing statements in it.
>
> A more complete error output from the program is:
>
> C:\tmp\tmp\install\bin\test.exe: *** 1. unable to allocate heap
0xA010000,
> heap_chunk_size 268435456, pid 1568, Win32 error 487
>       0 [main] test 1516 sync_with_child: child 1568(0xB4) died before
> initialization with status code 0x1
>     252 [main] test 1516 sync_with_child: *** child state waiting for
> longjmp
> FORKFAILED
>
>
>
> The problem is coming from the DLL init code in dctr0.cc.
>
> A rough trace to the error is:
>
> dll_crt0_1()
>  memory_init()
>   heap_init()
>
>
>
> The error occurs in heap_init() in heap.cc.. in the following:
>
>       char *p;
>       for (;;)
>         {
>           p = (char *) VirtualAlloc (brkbase, reserve_size,
>                                      MEM_RESERVE, PAGE_READWRITE);
>           if (p)
>             break;
>           if ((reserve_size -= page_const) <= allocsize)
>             break;
>         }
>
> The VirtualAlloc just returns an error code, 487, which I believe is
> "Attempt to access invalid address. "
>
> As to *why* this is, I have no ideas.. can anyone help?
>
>
>


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list