[Debian-science-sagemath] GAP: issue related to compressed manual.six: PATCHES: reproducing issue

Ximin Luo infinity0 at debian.org
Sun Dec 11 19:37:00 UTC 2016


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



More information about the Debian-science-sagemath mailing list