No problem. I was asking because I think that the problem is on python
or maybe on libressl, not on mercurial. Mercurial has very few C files
and they don't use C for that part of the clone, just simple python
code.

If you can't run the full tests set, you could also find some small
python example which crashes when it tries to connect to https. That
would be enough.

Meanwhile, if you need to use mercurial, try with ssh:// repos and avoid
the https:// ones.


On Sat, May 19, 2018 at 01:48:30PM -0700, Nick Owens wrote:
> my ERL is very sad and slow with a 500mhz cpu/512M ram and the usb drive is
> very sad and slow at around 1-2MB/s throughput.
> 
> i will see about getting ports going on it, but it may take a while, if it
> even works.
> 
> 
> On Sat, May 19, 2018 at 12:41 PM, Juan Francisco Cantero Hurtado <
> [email protected]> wrote:
> 
> > The segfault is in:
> > httppeer.py(901):         resp.close()
> >
> > (the line number is not the same because I'm using a different version)
> >
> > Can you run "make test" within /usr/ports/lang/python/2.7 ?
> >
> > At the end of the long list of tests, it will run a few tests against
> > the SSL library. You should see some segfaults there.
> >
> >
> >
> > On Sat, May 19, 2018 at 10:19:17AM -0700, Nick Owens wrote:
> > > no, that's working fine. it does not crash and i see the HTML content
> > from
> > > the webserver.
> > >
> > > i've discovered python has a tracing module and tried it out, but it's
> > not
> > > making the fault any clearer.
> > >
> > > python2.7 -m trace --trace `which hg` clone
> > > https://www.mercurial-scm.org/repo/hello
> > >
> > > here's the last 40 or so lines.
> > >
> > >  --- modulename: socket, funcname: readline
> > > socket.py(411):         buf = self._rbuf
> > > socket.py(412):         buf.seek(0, 2)  # seek end
> > > socket.py(413):         if buf.tell() > 0:
> > > socket.py(415):             buf.seek(0)
> > > socket.py(416):             bline = buf.readline(size)
> > > socket.py(417):             if bline.endswith('\n') or len(bline) ==
> > size:
> > > socket.py(418):                 self._rbuf = StringIO()
> > > socket.py(419):                 self._rbuf.write(buf.read())
> > > socket.py(420):                 return bline
> > > keepalive.py(462):             if not line:
> > > keepalive.py(466):             if line == '\r\n':
> > > keepalive.py(467):                 break
> > > keepalive.py(470):         self.close()
> > >  --- modulename: keepalive, funcname: close
> > > keepalive.py(386):         if self.fp:
> > > keepalive.py(387):             self.fp.close()
> > >  --- modulename: socket, funcname: close
> > > socket.py(281):         try:
> > > socket.py(282):             if self._sock:
> > > socket.py(283):                 self.flush()
> > >  --- modulename: socket, funcname: flush
> > > socket.py(297):         if self._wbuf:
> > > socket.py(285):             if self._close:
> > > socket.py(286):                 self._sock.close()
> > >  --- modulename: ssl, funcname: close
> > > ssl.py(815):         if self._makefile_refs < 1:
> > > ssl.py(819):             self._makefile_refs -= 1
> > > socket.py(287):             self._sock = None
> > > keepalive.py(388):             self.fp = None
> > >  --- modulename: socket, funcname: __del__
> > > socket.py(290):         try:
> > > socket.py(291):             self.close()
> > >  --- modulename: socket, funcname: close
> > > socket.py(281):         try:
> > > socket.py(282):             if self._sock:
> > > socket.py(285):             if self._close:
> > > socket.py(286):                 self._sock.close()
> > > socket.py(292):         except:
> > > socket.py(294):             pass
> > > keepalive.py(389):             if self._handler:
> > > keepalive.py(390):                 self._handler._request_closed(self,
> > > self._host,
> > > keepalive.py(391):
> > > self._connection)
> > >  --- modulename: keepalive, funcname: _request_closed
> > > keepalive.py(199):         self._cm.set_ready(connection, 1)
> > >  --- modulename: keepalive, funcname: set_ready
> > > keepalive.py(146):         try:
> > > keepalive.py(147):             self._readymap[connection] = ready
> > > keepalive.py(472):         return ''.join(parts)
> > > keepalive.py(416):         self._rbuf = ''
> > > keepalive.py(417):         return s
> > > Segmentation fault (core dumped)
> > >
> > >
> > >
> > > On Sat, May 19, 2018 at 7:55 AM, Juan Francisco Cantero Hurtado <
> > > [email protected]> wrote:
> > >
> > > > Try this:
> > > >
> > > > python2.7 -c 'import urllib2; web = urllib2.urlopen("https://www.
> > > > mercurial-scm.org/repo/hello"); print web.read()'
> > > >
> > > > Does python crash?
> > > >
> > > >
> > > > On Fri, May 18, 2018 at 02:18:13PM -0700, Nick Owens wrote:
> > > > > it looks like that's working. with this test mercurial prints
> > (falling
> > > > back
> > > > > to static-http) whereas in the mercurial 'hello' repo it does not. i
> > > > wonder
> > > > > if it has something todo with the web server/http protocol.
> > > > >
> > > > > erl$ pwd
> > > > > /home/mischief
> > > > > erl$ df -h
> > > > > Filesystem     Size    Used   Avail Capacity  Mounted on
> > > > > /dev/sd0a     13.9G    923M   12.3G     7%    /
> > > > > erl$ uname -a
> > > > > OpenBSD erl.house.lan 6.3 GENERIC#0 octeon
> > > > > erl$ hg -v clone http://juanfra684.blinkenshell.org/tmp/hello
> > > > > (falling back to static-http)
> > > > > destination directory: hello
> > > > > requesting all changes
> > > > > 2 changesets found
> > > > > uncompressed size of bundle content:
> > > > >      464 (changelog)
> > > > >      335 (manifests)
> > > > >      143  Makefile
> > > > >      388  hello.c
> > > > > adding changesets
> > > > > adding manifests
> > > > > adding file changes
> > > > > added 2 changesets with 2 changes to 2 files
> > > > > new changesets 0a04b987be5a:82e55d328c8c
> > > > > updating to branch default
> > > > > resolving manifests
> > > > > getting Makefile
> > > > > getting hello.c
> > > > > 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
> > > > >
> > > > > On Fri, May 18, 2018 at 1:49 PM, Juan Francisco Cantero Hurtado <
> > > > > [email protected]> wrote:
> > > > >
> > > > > > On Fri, May 18, 2018 at 07:50:03AM -0700, [email protected]
> > wrote:
> > > > > > > >Synopsis:    hg clone segmentation fault on octeon
> > > > > > > >Category:    user mips64
> > > > > > > >Environment:
> > > > > > >       System      : OpenBSD 6.3
> > > > > > >       Details     : OpenBSD 6.3 (GENERIC) #0: Sun Mar 25
> > 19:48:22 UTC
> > > > > > 2018
> > > > > > >                        visa@octeon:/usr/src/sys/arch/
> > > > > > octeon/compile/GENERIC
> > > > > > >
> > > > > > >       Architecture: OpenBSD.octeon
> > > > > > >       Machine     : octeon
> > > > > > > >Description:
> > > > > > >       mercurial core dumps when executing clone
> > > > > > > >How-To-Repeat:
> > > > > > >       install openbsd/octeon on edgerouter lite
> > > > > > >       single / partition with wxallowed
> > > > > > >       erl# pkg_add mercurial
> > > > > > >       erl$ hg clone https://www.mercurial-scm.org/repo/hello
> > > > > > >       destination directory: hello
> > > > > > >       requesting all changes
> > > > > > >       Segmentation fault (core dumped)
> > > > > > >
> > > > > > > >Fix:
> > > > > > >       no clue how to fix it. gdb output:
> > > > > >
> > > > > > Hi, I don't have an Octeon system to test mercurial but it's
> > working
> > > > > > fine on mips64el. Can you test this command?
> > > > > >
> > > > > > hg -v clone http://juanfra684.blinkenshell.org/tmp/hello
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Juan Francisco Cantero Hurtado http://juanfra.info
> > > > > >
> > > >
> > > > --
> > > > Juan Francisco Cantero Hurtado http://juanfra.info
> > > >
> >
> > --
> > Juan Francisco Cantero Hurtado http://juanfra.info
> >

-- 
Juan Francisco Cantero Hurtado http://juanfra.info

Reply via email to