[isabelle-dev] Nontermination in HOL-Corec_Examples on Epyc
Lars Hupel
hupel at in.tum.de
Mon Jun 18 21:30:22 CEST 2018
Dear list,
the good news is that we have just received new hardware (Dual Epyc
7601).
The bad news is that a current development snapshot
(Isabelle/410818a69ee3) exhibits a problem on this hardware. In
particular, the session HOL-Corec_Examples doesn't appear to terminate.
$ cat .isabelle/etc/settings
init_components "$USER_HOME/.isabelle/contrib"
"$ISABELLE_HOME/Admin/components/main"
ML_OPTIONS="-H 4000 --maxheap 8G"
ML_PLATFORM="$ISABELLE_PLATFORM64"
ML_HOME="$POLYML_HOME/$ML_PLATFORM"
ISABELLE_GHC=ghc
ISABELLE_POLYML="$ML_HOME/poly"
ISABELLE_SCALA="$SCALA_HOME/bin"
ISABELLE_OCAMLC=ocamlc
ISABELLE_OCAML=ocaml
ISABELLE_MLTON=mlton
ISABELLE_SWIPL=swipl
ISABELLE_SMLNJ=sml
The precise invocation is:
$ ./isabelle/bin/isabelle build -cbv -a -o threads=2 -j 16
Isabelle2017 "build -bva" works fine. This qualifies the problem as a
regression, I suppose.
I've done some preliminary tracing; here are my findings:
- The "poly" process gets stuck at 100% CPU load and keeps calling
"mmap"
- When trying to build the nonterminating session without "-b", it
terminates
- GDB tells me the following stack trace when "mmap" is called (which
corroborates that it happens during heap dumping):
#0 0x00007f8dab80ba13 in __GI___mmap64 (addr=0x0, len=32768, prot=7,
flags=34, fd=-1, offset=0) at ../sysdeps/unix/sysv/linux/mmap64.c:52
#1 0x0000000000879d56 in OSMem::Allocate(unsigned long&, unsigned int)
()
#2 0x0000000000871c6e in MemMgr::NewExportSpace(unsigned long, bool,
bool, bool) ()
#3 0x000000000085f020 in CopyScan::ScanAddressAt(PolyWord*) ()
#4 0x000000000088c2b6 in
ScanAddress::ScanAddressesInObject(PolyObject*, unsigned long) ()
...
#24 0x000000000088c335 in
ScanAddress::ScanAddressesInObject(PolyObject*, unsigned long) ()
#25 0x000000000088c8c1 in ScanAddress::ScanAddressesInRegion(PolyWord*,
PolyWord*) ()
#26 0x00000000008890a1 in SaveRequest::Perform() ()
#27 0x0000000000882717 in Processes::BeginRootThread(PolyObject*) ()
#28 0x0000000000874a9c in polymain ()
#29 0x00007f8dab711b97 in __libc_start_main (main=0x405720 <main>,
argc=16, argv=0x7fffe693d4d8, init=<optimized out>, fini=<optimized
out>, rtld_fini=<optimized out>, stack_end=0x7fffe693d4c8) at
../csu/libc-start.c:310
#30 0x0000000000405e01 in _start ()
I'm open to any suggestions for how to diagnose this. Happy to give out
SSH access to the machine.
Cheers
Lars
More information about the isabelle-dev
mailing list