darcs

Issue 534 realdarcs.exe: schedule: re-entered unsafely" "realdarcs.exe: internal error: evacuate: strange closure type 9108

Title realdarcs.exe: schedule: re-entered unsafely" "realdarcs.exe: internal error: evacuate: strange closure type 9108
Priority bug Status given-up
Milestone Resolved in
Superseder Nosy List claus.reinke, cvs-ghc, darcs-devel, dmitry.kurochkin, eivuokko, kowey, markstos, thorkilnaur, tommy, wglozer, zooko
Assigned To claus.reinke
Topics Windows

Created on 2007-09-12.20:48:58 by claus.reinke, last changed 2009-08-27.14:22:52 by admin.

Messages
msg2128 (view) Author: claus.reinke Date: 2007-09-12.20:48:56
hi,

on winxp, using cygwin and the ghc head repo, i just tried 
to set a different boring file, and then accidentally typed

    darcs whatsnew -l --boring

instead of the intended

    darcs whatsnew -l

but, instead of giving lots of output quickly, darcs seemed
to hang, and indeed, gives an error message, though only
*after* interrupting with ctrl-c. not using --boring, or setting 
boringfile back to .darcs-boring, seems to cure the problem.

but when i interrupt darcs, strange things may happen as 
well, including the internal error i managed to capture below.

so, firstly, there seems to be something wrong with a scheduler 
in darcs, triggered by ignoring a non-standard boringfile, and,
secondly, there is a ghc 6.6 bug sometimes triggered when 
interrupting realdarcs (perhaps the darcs binary for windows 
should be built with ghc 6.6.1 at least, or 6.8.1 soon?).

thirdly, while i'm at boringfiles: the ghc repo has nested
darcs repos below the main repo, of non-negligible size.
seeing the regex patterns in ghc's .darcs-boring, and the
time it takes to run its ./darcs-all script, makes me wonder:
if a directory matches a boring pattern, does darcs still
descend into it, or are such directories ignored completely?

claus

---- session log showing the two bugs
$ darcs --version
1.0.9 (release)

$ which darcs
/cygdrive/c/darcs/darcsdir-cygwin/darcs

$ darcs setpref boringfile dont-touch-these.boring
Changing value of boringfile from '.darcs-boring' to 'dont-touch-these.boring'

$ darcs whatsnew -l --boring
... <ctrl-c>
realdarcs.exe: schedule: re-entered unsafely.
   Perhaps a 'foreign import unsafe' should be 'safe'?

$ darcs setpref boringfile .darcs-boring
Changing value of boringfile from 'dont-touch-these.boring' to '.darcs-boring'

$ darcs whatsnew -l --boring
M ./compiler/basicTypes/RdrName.lhs -1 +6
M ./compiler/ghci/InteractiveUI.hs -46 +91
M ./compiler/main/GHC.hs +5
M ./compiler/parser/Parser.y.pp -1 +21
M ./docs/users_guide/ghci.xml -2 +9
realdarcs.exe: internal error: evacuate: strange closure type 9108
    (GHC version 6.6 for i386_unknown_mingw32)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
msg2629 (view) Author: markstos Date: 2008-01-21.03:23:11
Claus -- 

>  does darcs still descend into it, or are such directories ignored completely?

They are ignored completely. I checked this by using "strace darcs..."  and
grepping for a system call to a boring directory. By doing this test with and
without an entry for a particular directory, I was able to confirm darcs does
truly ignore boring directories. 

> (perhaps the darcs binary for windows should be built with ghc 6.6.1 at least,
or 6.8.1 soon?).

Perhaps, are you able to test with a newer version of GHC? 

Also, if you can try repeating the test with a darcs binary (available from the
wiki), that would be interesting as well. 

Thanks for the report!

    Mark
msg2701 (view) Author: claus.reinke Date: 2008-01-24.00:18:37
[isn't that address list a bit long?]

Hi Mark 

>>  does darcs still descend into it, or are such directories ignored completely?
>They are ignored completely. I checked this by using "strace darcs..."  and
>grepping for a system call to a boring directory. By doing this test with and
>without an entry for a particular directory, I was able to confirm darcs does
>truly ignore boring directories. 

thanks, that is good to know.

>> (perhaps the darcs binary for windows should be built with ghc 6.6.1 
>at least, or 6.8.1 soon?).
>
>Perhaps, are you able to test with a newer version of GHC? 

not at the moment. i was just guessing that replacing old
with current ghc versions would be the first thing to eliminate.
might be a real bug, though..

>also, if you can try repeating the test with a darcs binary (available 
>from the wiki), that would be interesting as well. 

it has been several months since that report, and i no longer have
quite the same setup, but "1.0.9 (release)" was and still is the
newest available darcs (1) binary for windows, afaik. are you 
saying that these binaries have been rebuilt with a newer ghc
(the wiki might mention that, as just upgrading ghc, especially
from the first in a x.x.* chain, tends to remove some issues in 
the generated binaries)?

using a recent complete ghc repo, and the same darcs binary,
i can still get the "realdarcs.exe: schedule: re-entered unsafely" 
by interrupting "darcs whatsnew -l --boring", but i can't seem
to get any output anymore, with or without changing the 
boringfile pref, so i can't repeat the second part of that report
(realdarcs.exe just consumes memory and cpu time, then mem
usage plateaus, and nothing else seems to happen for at least
4 minutes, after which i aborted).

>Thanks for the report!

good to see some activity wrt darcs again!-)

claus
msg2703 (view) Author: markstos Date: 2008-01-24.01:10:21
Claus,

Thanks so much for helping us continue to track this down. The binaries I was
referring are the shiny, new (unofficial) darcs-2 binaries for Windows,
available here:

http://www.cs.mu.oz.au/~rgm/darcs/

(Linked to from a "DarcsTwo" page on the wiki). 

The code base is rather different than Darcs 1.0.9 at this point. 

If you could test with one of these, that would be great!

Thanks,

   Mark
msg8093 (view) Author: kowey Date: 2009-08-11.16:04:38
Hi Claus,  It's been a while, and I think we'd be best off marking this as
presumed-dead.  Thanks for the report and do let us know if something like this
happens again.
History
Date User Action Args
2007-09-12 20:48:58claus.reinkecreate
2007-10-31 16:18:39zookosettopic: + Windows
nosy: + wglozer, eivuokko, zooko, rgm
2008-01-21 03:23:12markstossetstatus: unread -> unknown
nosy: + markstos
messages: + msg2629
2008-01-24 00:18:39claus.reinkesetnosy: + robmoss
messages: + msg2701
2008-01-24 01:10:22markstossetnosy: droundy, tommy, beschmi, kowey, markstos, wglozer, zooko, eivuokko, cvs-ghc, robmoss, rgm, claus.reinke
messages: + msg2703
2008-02-16 16:28:02markstossetstatus: unknown -> deferred
nosy: droundy, tommy, beschmi, kowey, markstos, wglozer, zooko, eivuokko, cvs-ghc, robmoss, rgm, claus.reinke
assignedto: zooko -> claus.reinke
2008-05-13 14:37:16koweysetstatus: deferred -> waiting-for
nosy: + dagit
2008-05-21 11:28:43rgmsetnosy: - robmoss, rgm
2009-08-06 17:45:16adminsetnosy: + jast, Serware, dmitry.kurochkin, darcs-devel, mornfall, simon, thorkilnaur, - droundy, wglozer, eivuokko, cvs-ghc, claus.reinke
2009-08-06 20:41:21adminsetnosy: - beschmi
2009-08-10 22:08:17adminsetnosy: + claus.reinke, wglozer, cvs-ghc, eivuokko, - darcs-devel, jast, Serware, mornfall
2009-08-11 00:02:20adminsetnosy: - dagit
2009-08-11 16:04:41koweysetstatus: waiting-for -> given-up
nosy: tommy, kowey, markstos, wglozer, zooko, eivuokko, simon, cvs-ghc, thorkilnaur, claus.reinke, dmitry.kurochkin
messages: + msg8093
2009-08-25 17:57:26adminsetnosy: + darcs-devel, - simon
2009-08-27 14:22:52adminsetnosy: tommy, kowey, markstos, wglozer, darcs-devel, zooko, eivuokko, cvs-ghc, thorkilnaur, claus.reinke, dmitry.kurochkin