cygwin-1.7.10-1 fork - address space needed by ... already in use

Denis Excoffier Denis.Excoffier@c-s.fr
Wed Feb 8 15:35:00 GMT 2012


On Wed, Feb 08, 2012 at 03:05:33PM +0000, Heiko Elger wrote:
>> Denis Excoffier writes:
>> 
>> > Here it is. Enjoy!
>> >       1 [main] gcc-4 5440 dll_list::reserve_space: address space needed 
>> by 'cygiconv-2.dll' (file
>> > D:\Home\dexcoff1\dexcoff1\cygwin2011f\bin\cygiconv-2.dll) (0x674C0000 with 
>> type 1=DLL_LINK)
>> >    1580 [main] gcc-4 5440 dll_list::reserve_space: address space needed 
>> by 'cygintl-8.dll' (file
>> > D:\Home\dexcoff1\dexcoff1\cygwin2011f\bin\cygintl-8.dll) (0x6F5C0000 with 
>> type 1=DLL_LINK)
>> >    1899 [main] gcc-4 5440 dll_list::reserve_space: address space needed 
>> by 'cygiconv-2.dll' (file
>> > \\?\D:\Home\dexcoff1\dexcoff1\cygwin2011f\bin\cygiconv-2.dll) (0x674C0000 
>> with type 2=DLL_LOAD)
>> >    2562 [main] gcc-4 5440 dll_list::reserve_space: address space needed 
>> by 'cygintl-8.dll' (file
>> > \\?\D:\Home\dexcoff1\dexcoff1\cygwin2011f\bin\cygintl-8.dll) (0x6F5C0000 
>> with type 2=DLL_LOAD)
>> >    3290 [main] gcc-4 5440 child_info_fork::abort: address space needed 
>> by 'cygiconv-2.dll' (0x674C0000)
>> > is already occupied
>> >       2 [main] gcc 3408 fork: child -1 - forked process died unexpectedly, 
>> retry 0, exit code 1, errno 11
>> > 
>> 
>> Hello Denis,
>> 
>> thanks a lot for your testing ...
>> 
>> Is is possible to send me the snapshot patches responsible for this output.
Here it is (attached).

Good luck.

Denis Excoffier.
-------------- next part --------------
diff -cNr 0/dll_init.cc 1/dll_init.cc
*** 0/dll_init.cc	Wed Feb  8 16:10:49 2012
--- 1/dll_init.cc	Wed Feb  8 16:17:40 2012
***************
*** 426,434 ****
  dll_list::reserve_space ()
  {
    for (dll* d = dlls.istart (DLL_LOAD); d; d = dlls.inext ())
!     if (!VirtualAlloc (d->handle, d->image_size, MEM_RESERVE, PAGE_NOACCESS))
        fabort ("address space needed by '%W' (%p) is already occupied",
  	      d->modname, d->handle);
  }
  
  /* Reload DLLs after a fork.  Iterates over the list of dynamically loaded
--- 426,440 ----
  dll_list::reserve_space ()
  {
    for (dll* d = dlls.istart (DLL_LOAD); d; d = dlls.inext ())
! #define TYPE_SHOW(x) ((x) == DLL_NONE) ? "DLL_NONE" : ((x) == DLL_LINK) ? "DLL_LINK" : ((x) == DLL_LOAD) ? "DLL_LOAD" : ((x) == DLL_ANY) ? "DLL_ANY" : "DLL_(unknown)"
!     if (!VirtualAlloc (d->handle, d->image_size, MEM_RESERVE, PAGE_NOACCESS)) {
!       for (dll* d_alt = dlls.start.next; d_alt; d_alt = d_alt->next) {
!         system_printf ("address space needed by '%W' (file %W) (%p with type %d=%s)",
! 	        d_alt->modname, d_alt->name, d_alt->handle, d_alt->type, TYPE_SHOW(d_alt->type));
!       };
        fabort ("address space needed by '%W' (%p) is already occupied",
  	      d->modname, d->handle);
+     };
  }
  
  /* Reload DLLs after a fork.  Iterates over the list of dynamically loaded

-------------- next part --------------
--
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