Menu

#103 Installation docs need updating regarding fork errors

1.0
closed
Alexx83
None
2015-02-25
2014-10-28
Ed
No

This is related to https://sourceforge.net/p/msys2/tickets/99/ - however this is requesting a doc change to avoid user confusion.

STR:
1) Visit http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/
2) Follow the steps verbatim

Expected:
Any quirkiness of the current MSYS2 installer is documented, and if there are expected errors, make it clear they always occur, rather than just hinting that they are a possibility.

Actual:
Errors every time, presumably due to some of the packages having been updated, and so the wiki page is out of date (regarding the list of packages that have to be updated separately in the first step). The wiki page doesn't make it obvious this will happen, so I wasted 30 minutes of trying several permutations in case it was my fault.

My output:

Ed@ed-laptop ~
$ pacman -Sy
:: Synchronizing package databases...
 mingw32                                                    188.9 KiB   940K/s 00:00 [################################################] 100%
 mingw32.sig                                                 96.0   B  0.00B/s 00:00 [################################################] 100%
 mingw64                                                    189.4 KiB   779K/s 00:00 [################################################] 100%
 mingw64.sig                                                 96.0   B  0.00B/s 00:00 [################################################] 100%
 msys                                                       109.4 KiB   760K/s 00:00 [################################################] 100%
 msys.sig                                                    96.0   B  0.00B/s 00:00 [################################################] 100%

Ed@ed-laptop ~
$ pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
warning: libiconv-1.14-1 is up to date -- skipping
resolving dependencies...
looking for conflicting packages...

Packages (10) bash-4.3.030-3  filesystem-2014.10-3  libarchive-3.1.2-4  libcurl-7.38.0-4  libgpgme-1.5.1-2  libintl-0.18.3.2-3
              libreadline-6.3.008-2  msys2-runtime-2.0.16309.306f9a4-1  ncurses-5.9.20141018-2  pacman-4.1.2.5831.8f603c2-3

Total Download Size:    9.25 MiB
Total Installed Size:  57.13 MiB
Net Upgrade Size:      28.00 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages ...
 filesystem-2014.10-3-x86_64                                 18.8 KiB   536K/s 00:00 [################################################] 100%
 msys2-runtime-2.0.16309.306f9a4-1-x86_64                     2.2 MiB  3.54M/s 00:01 [################################################] 100%
 bash-4.3.030-3-x86_64                                     1863.5 KiB  3.03M/s 00:01 [################################################] 100%
 ncurses-5.9.20141018-2-x86_64                             1099.7 KiB  2.49M/s 00:00 [################################################] 100%
 libreadline-6.3.008-2-x86_64                               243.3 KiB   922K/s 00:00 [################################################] 100%
 libintl-0.18.3.2-3-x86_64                                   17.1 KiB   488K/s 00:00 [################################################] 100%
 libarchive-3.1.2-4-x86_64                                  233.4 KiB  1028K/s 00:00 [################################################] 100%
 libcurl-7.38.0-4-x86_64                                    163.9 KiB   824K/s 00:00 [################################################] 100%
 libgpgme-1.5.1-2-x86_64                                    171.7 KiB   863K/s 00:00 [################################################] 100%
 pacman-4.1.2.5831.8f603c2-3-x86_64                           3.3 MiB  4.26M/s 00:01 [################################################] 100%
(10/10) checking keys in keyring                                                     [################################################] 100%
(10/10) checking package integrity                                                   [################################################] 100%
(10/10) loading package files                                                        [################################################] 100%
(10/10) checking for file conflicts                                                  [################################################] 100%
(10/10) checking available disk space                                                [################################################] 100%
( 1/10) upgrading filesystem                                                         [################################################] 100%
( 2/10) upgrading msys2-runtime                                                      [################################################] 100%
( 3/10) upgrading bash                                                               [################################################] 100%
( 4/10) upgrading ncurses                                                            [################################################] 100%
( 5/10) upgrading libreadline                                                        [################################################] 100%
      3 [main] pacman (2880) C:\msys64\usr\bin\pacman.exe: *** fatal error - cygheap base mismatch detected - 0x1802E4400/0x1802F5400.
This problem is probably due to using incompatible versions of the msys DLL.
Search for msys-2.0.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\msys\bin, where 'x' is the drive on which you have
installed the msys distribution.  Rebooting is also suggested if you
are unable to find another msys DLL.
      0 [main] pacman 2204 fork: child -1 - forked process 2880 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
error: could not fork a new process (Resource temporarily unavailable)
( 6/10) upgrading libintl                                                            [################################################] 100%
( 7/10) upgrading libarchive                                                         [################################################] 100%
( 8/10) upgrading libcurl                                                            [################################################] 100%
( 9/10) upgrading libgpgme                                                           [################################################] 100%
      1 [main] pacman (3816) C:\msys64\usr\bin\pacman.exe: *** fatal error - cygheap base mismatch detected - 0x1802E4400/0x1802F5400.
This problem is probably due to using incompatible versions of the msys DLL.
Search for msys-2.0.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\msys\bin, where 'x' is the drive on which you have
installed the msys distribution.  Rebooting is also suggested if you
are unable to find another msys DLL.
 187988 [main] pacman 2204 fork: child -1 - forked process 3816 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
error: could not fork a new process (Resource temporarily unavailable)
(10/10) upgrading pacman                                                             [################################################] 100%

Discussion

  • Ed

    Ed - 2014-10-28

    Some suggested changes to the "Updates and general package management" section on http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/

    1) Move the "pacman -Syu" line to after the other instructions (ie after the current step 3). Yes, it's what people will use more often, once they already have an MSYS2 setup, but it shouldn't be the first thing they read, to avoid confusion.

    2) The list of packages listed in:
    pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
    ...is out of date, since even that "safe" list causes errors (see log above). That list should either be updated, or an explanation added that warnings are still expected.

    Also (for another ticket), is there nothing that can be done to avoid the need for this workaround? Could the installer do some of this on first-run? Could the new packages be staged in a different location, that gets moved onto the original once the MSYS2 prompt is closed?

     

    Last edit: Ed 2014-10-28
  • Ray Donnelly

    Ray Donnelly - 2014-10-28

    We are hoping to fix this problem (almost) entirely, soon. To that end, the next release will contain a statically * linked Pacman and bash and it may also run a statically linked Busybox for the coreutils.

    Other than that, we may need Pacman to update msys2-runtime first, then advise the user to exit all shells and relaunch it. Finally, we might list any failed updates *(hopefully very few by this time) in a file that Pacman reads the next time it is run to re-install any failed packages.

    *in as much as possible, msys-2.0.dll is always linked to MSYS2 applications, but it never gets rebased anyway.

     
  • Ed

    Ed - 2014-10-28

    Just to clarify - I know there is the footnote:
    "If you do run into failures to run post-install scripts, it's generally nothing to panic about"
    ...however the way this reads, it sounds like it's for the followup steps, or for future installation of packages, rather than the "safe" ones installed using "pacman -S --needed".

     
  • Ed

    Ed - 2014-10-28

    Ah sorry my latest reply raced with yours.
    That sounds great - thank you for the update! :-)

     
  • Ray Donnelly

    Ray Donnelly - 2014-10-28

    Yeah, we could maybe update the text a bit, I think the next release will fix it all though.

    I updated > 80 packages on 2 machines recently without a single problem.

    I hope the next update to that page is to delete most of it.

     
  • Ed

    Ed - 2014-11-17

    The latest release (msys2-x86_64-20141113.exe) combined with the changes to the docs (https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/diff?v2=17&v1=14) make this work perfectly now. Thank you!

    This ticket can be closed as fixed :-)

     

    Last edit: Ed 2014-11-17
  • Alexx83

    Alexx83 - 2014-11-17
    • status: open --> closed
    • assigned_to: Alexx83