[Debian-science-sagemath] GAP: issue related to compressed manual.six: PATCHES
Ximin Luo
infinity0 at debian.org
Wed Dec 7 00:27:00 UTC 2016
Ximin Luo:
> Ximin Luo:
>> Bill Allombert:
>>> On Tue, Dec 06, 2016 at 01:01:00PM +0000, Ximin Luo wrote:
>>>> Bill Allombert:
>>>> Hi all,
>>>>
>>>> Sorry I only just briefly scanned through the thread now. However I
>>>> found this post relating to gzip, pipes and python:
>>>>
>>>> https://blog.nelhage.com/2010/02/a-very-subtle-bug/
>>>>
>>>> which summarises the bug report here: https://bugs.python.org/issue1652
>>>
>>> Yes, this is exactly the problem, and it seems it has been fixed in python 3,
>>> but not in python 2.7.
>>>
>>
>> Ok, good to know! The blog post also contains a work-around near the end, which is to add
>>
>> preexec_fn=lambda: signal.signal(signal.SIGPIPE, signal.SIG_DFL)
>>
>> as a parameter to the relevant Popen call. Presumably in this case it's wherever Sage calls GAP. Jerome, could you test?
>>
>
> Hi Bill,
>
> I'm not sure if the above bug is the cause of this issue. I tried to reproduce it without Sage:
>
> $ apt-cache policy gap
> gap:
> Installed: 4r8p6-1
> Candidate: 4r8p6-1+sage17
> Version table:
> 4r8p6-1+sage17 500
> 500 https://debian-science.alioth.debian.org/apt sid-sage/ Packages
> *** 4r8p6-1 500
> 500 http://httpredir.debian.org/debian testing/main amd64 Packages
> 500 http://httpredir.debian.org/debian unstable/main amd64 Packages
> 100 /var/lib/dpkg/status
>
> $ python -c 'import subprocess; subprocess.Popen(["gap", "-q"], stdin=subprocess.PIPE).communicate("?SymmetricGroup")'
>
> gzip: stdout: Broken pipe
> Help: several entries match this topic - type ?2 to get match [2]
>
> [1] Reference: SymmetricGroup
> [2] Reference: SymmetricGroup (for a degree)
> [3] Reference: SymmetricGroup (for a domain)
>
> $ python -c 'import signal, subprocess; subprocess.Popen(["gap", "-q"], stdin=subprocess.PIPE, preexec_fn=lambda: signal.signal(signal.SIGPIPE, signal.SIG_DFL)).communicate("?SymmetricGroup")'
> Help: several entries match this topic - type ?2 to get match [2]
>
> [1] Reference: SymmetricGroup
> [2] Reference: SymmetricGroup (for a degree)
> [3] Reference: SymmetricGroup (for a domain)
>
> So as you can see, the bug is only to do with the extra "Broken pipe" error messages.
And in fact, if I patch src/sysfiles.c to say "gzip 2>/dev/null -cd " instead of "gunzip " then the "Broken pipe" messages go away.
The below Sage/GAP error still occurs, though:
> However Sage fails in a different way:
>
> $ ./sage -c 'gap.help('SymmetricGroup', pager=False)'
>> /usr/lib/python2.7/dist-packages/ptyprocess/ptyprocess.py(220)spawn()
> -> if use_native_pty_fork:
> (Pdb) c
>> /usr/lib/python2.7/dist-packages/ptyprocess/ptyprocess.py(220)spawn()
> -> if use_native_pty_fork:
> (Pdb) c
> #W corrupted 'manual.six': ##W (in stream: InputTextFile(/usr/share/gap/doc/t\
> ut/manual.six))
> #W corrupted 'manual.six': ##W (in stream: InputTextFile(/usr/share/gap/doc/c\
> hanges/manual.six))
> #W corrupted 'manual.six': ##W (in stream: InputTextFile(/usr/share/gap/pkg/G\
> APDoc/example/manual.six))
> Help: no matching entry found
>
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
More information about the Debian-science-sagemath
mailing list