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