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

Reply via email to