Ximin Luo:
> [..]
>
> Arguably GAP should not error out the whole "HELP" command when encountering
> one of the "bad" files. But probably either you or Bill know better here,
> what the "real" problem is.
>
I'm also fairly certain that the error message is wrong, and this is a terrible
bug that must be fixed - look how much of our time it has wasted!
Here is what I got on strace:
[..]
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25695, si_uid=1000,
si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, 0x7ffc370be59c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigaction(SIGCHLD, {0x5633bc7f5920, [CHLD], SA_RESTORER|SA_RESTART,
0x7faf896e1040}, {0x5633bc7f5920, [CHLD], SA_RESTORER|SA_RESTART,
0x7faf896e1040}, 8) = 0
rt_sigreturn({mask=[]}) = 25695
open("/usr/share/gap/doc/tut/manual.six", O_RDONLY) = -1 ENOENT (No such file
or directory)
access("/usr/share/gap/doc/tut/manual.six.gz", R_OK) = 0
pipe2([3, 5], O_CLOEXEC) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7faf8aa182d0) = 25697
close(5) = 0
fcntl(3, F_SETFD, 0) = 0
read(3, "#SIXFORMAT GapDocGAP\nHELPBOOKINFOSIXTMP := rec(\nencoding :=
\"UTF-8\",\nbookname := \"tut\",\nentries :=\n[ [ \"Title page\", \".\", [ 0,
0, 0 ], 1, 1, \"title page\", \"X7D2C85EC87DD46E5\" ],\n [ \"Copyright\",
\".-1\", [ 0, 0, 1 ], 18, 2, \"copyright\"
select(4, [3], NULL, NULL, {0, 0}) = 0 (Timeout)
select(4, [3], NULL, NULL, {0, 0}) = 0 (Timeout)
write(1, "@n", 2) = 2
write(1, "#W corrupted 'manual.six': ##W (in stream:
InputTextFile(/usr/share/gap/doc/t\\@J", 81) = 81
write(4, "#W corrupted 'manual.six': ##W (in stream:
InputTextFile(/usr/share/gap/doc/t\\\n", 80) = 80
write(1, "@n", 2) = 2
[..]
But the "corrupt" file is not "/usr/share/gap/doc/tut/manual.six.gz", the
"read" call gave back exactly what was expected. In fact the actual "corrupted"
files are the manual files from alnuth and autogrp. if you run:
$ sudo gunzip /usr/share/gap/pkg/AutPGrp/doc/manual.six.gz
$ sudo gunzip /usr/share/gap/pkg/Alnuth/doc/manual.six.gz
This will "fix" your local system and the problem goes away.
$ ./sage -c "print(gap.help('SymmetricGroup', pager=False)[:100])"
50 Group Libraries
When you start GAP, it already knows several groups. Currently GAP init
> BTW, I can confirm that the Python issue discussed previously is a red
> herring and NOT the cause of this bug. I've added the work around to our
> Debian SageMath patches, but all it does is silence the "gzip: stdout: Broken
> pipe" message, it has no other effect on the above things.
>
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git