Failure with fork()

Alan W. Irwin irwin@beluga.phys.uvic.ca
Fri Jun 28 08:42:00 GMT 2013


On 2013-06-27 23:42-0700 Alan W. Irwin wrote:

> I am getting absolutely nowhere.
>
> A script run by setup.exe in the latter part of the install steps
> appears to hang now with or without updating cygwin1.dll to the
> fork-fixed version.  I got this result for two versions of
> wine which I have heavily tested in other ways, wine-1.5.19, and
> a wine-git version near wine-1.6.0-rc1.
>
> Here are the last few messages before the hang:
>
> Installing file cygfile:///usr/share/man/man1/xzfgrep.1.gz
> AddAccessAllowedAce(, group) failed: 1337
> Installing file cygfile:///usr/share/man/man1/xzgrep.1.gz
> AddAccessAllowedAce(, group) failed: 1337
> Installing file cygfile:///usr/share/man/man1/xzless.1.gz
> AddAccessAllowedAce(, group) failed: 1337
> Installing file cygfile:///usr/share/man/man1/xzmore.1.gz
> AddAccessAllowedAce(, group) failed: 1337
> AddAccessAllowedAce(, group) failed: 1337
> Extracting from
> file://Z:\home\wine\newstart\cygwin\packages/http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/release/zlib/zlib0/zlib0-1.2.8-1.tar.bz2
> Installing file cygfile:///usr/bin/cygz.dll
> AddAccessAllowedAce(, group) failed: 1337
> AddAccessAllowedAce(, group) failed: 1337
> Visited: 51 nodes out of 2986 while creating dependency order.
> Dependency order of packages: base-cygwin sed gzip libpcre0 gettext
> grep libmpfr4 gawk tzcode libgmp3 libattr1 libncurses10 texinfo 
> _update-info-dir
> libreadline7 terminfo libstdc++6 libncursesw10 libiconv2
> libintl8 bash coreutils cygwin libgcc1 dash rebase _autorebase
> alternatives findutils base-files libbz2_1 bzip2 libpopt0 cygutils diffutils
> dos2unix editrights zlib0 file groff ipc-utils less liblzma5 login xz man
> mintty run tar vim-minimal which
> running: Z:\home\wine\newstart\cygwin\bin\bash.exe --norc --noprofile
> "/etc/postinstall/000-cygwin-post-install.sh"
>
> There is no obvious chance that I can see before that hang where I can
> overwrite cygwin1.dll with the corrected version.  However, if I exit
> the hang, overwrite cygwin1.dll, and run the above script
> by hand it still hung (no cpu activity and no change in the
> cygwin tree that changes its total size as measured to
> the nearest byte with "du -s --bytes cygwin") for ~20 minutes
> before I gave up.
>
> By the way, after exiting after the first hang, if I simply
> overwrite cygwin1.dll with the corrected version, then
> run setup.exe the install stage errors out immediately with
> the message "Can't open package database for writing.  File exists."
> It's for that reason that I tried to run the hanging script by hand
> to see if I could get any further.
>
> I didn't get these hangs a month ago when I tried all this
> before with wine-1.5.19.  Instead, at that time I got the exact error
> message when running the above script concerning an unhandled page
> fault that others have described at
> http://bugs.winehq.org/show_bug.cgi?id=24018 and which the fork-fixed
> cygwin1.dll is supposed to fix.  So presumably Cygwin's
> bash.exe or some application executed by the above script has
> changed in the last month to cause the different wine symptoms.
> Or I am inadvertently doing something different than I did a month
> ago.
>
> So unless someone can suggest a method to get around the "Can't open
> package database for writing.  File exists." message, and assuming
> that method doesn't subsequently run into the script hang (which is a
> big if), then I think it is time for someone with a lot more wine and
> cygwin expertise than me to take over here to attempt to try and
> figure out a way to run setup.exe on Wine with fork-fixed cygwin1.dll
> overwriting the buggy version.

I did a few more experiments.  If cygwin/bin is on the PATH, the
explicit MSYS bash version runs the script with no issues.  So it is
likely the hang is caused by the Cygwin version of bash rather than
something run in the script.

I also was able to get around the "Can't open package database for
writing.  File exists." issue.  I searched for anything associated
with databases by using

find cygwin -iname "*db*"

which found

cygwin/etc/setup/installed.db.new
cygwin/etc/setup/installed.db

which were identical.  If I removed cygwin/etc/setup/installed.db,
then I could rerun setup.exe without the error message showing up. 
However, as some of the applications were installed on top of the same
applications that had been installed for the previous setup.exe run, I
got occasional messages about overwriting files in use.  I just
answered all those error boxes as "continue" and that allowed the
second try for setup.exe to get as far as the first try.  However, it
got absolutely no further because the same script hung again!
Also, all these installs on top of the old installs presumably overwrote
cygwin1.dll with the fork-buggy version again.  So it is very likely
that
cygwin/etc/setup/installed.db is probably not the right workaround.
Instead, presumably something changed by the hanging script or
some script that setup.exe would normally run afterwards sets up
setup.exe so it can be rerun without overwriting the executables.

So I am willing to try a few more experiments that one of you may
suggest, but my Cygwin expertise is minimal/nonexistent, and it is
probably time for someone else with both Cygwin and Wine expertise to
step in to investigate the hanging script I described above.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

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