Re: [ocamlnet 3.6] SOLVED Netplex broken on Mac OS X 10.4 PPC

Gerd Stolpmann <[email protected]> Sun, 30 Sep 2012 14:22:26 +0200
Newsgroups gmane.comp.lang.ocaml.lib.net.devel
Message-ID <1349007746.3117.1@samsung>
Am 28.09.2012 21:55:39 schrieb(en) Mat=EDas Giovannini:
> Well, after a long detour I found and *fixed* the issue. After many  =

> hours
> trying to backport to Ocamlnet 2.x, I found that the root cause is  =

> the one
> identified by Joel Reymont back in 2007:
> http://caml.inria.fr/pub/ml-archives/caml-list/2007/05/0a6a0d3113993e5eef=
ccb7cc3aa3eebe.en.html
> =

> Here are my diffs against 3.6:
> ~/src/ocamlnet-3.6/src/netsys> diff netsys.ml  =

> netsys.ml.orig125,127d124
> <     | Unix.Unix_error(Unix.EAFNOSUPPORT,_,_) ->
> <     (* On older Mac OS X, getpeername on a pipe return EAFNOSUPPORT;
> assume *)
> < `Read_write

No, returning `Recv_send_implied is not wrong: We are not using a pipe  =

here, but a socketpair. The error is in Uq_engines, where at one point  =

`Recv_send_implied is not supported where it should be.

My tentative fix is in svn.

Gerd

> ~/src/ocamlnet-3.6/src/equeue> diff uq_engines.ml uq_engines.ml.orig
> 3132c3132
> <   try match Netsys.getpeername s with
> ---
> >   match Netsys.getpeername s with
> 3137,3138d3136
> <   with Unix.Unix_error (Unix.EAFNOSUPPORT, _, _)
> <     `Sock_unix(stype, "")
> 3143c3141
> <   try match Netsys.getpeername s with
> ---
> >   match Netsys.getpeername s with
> 3148,3149d3145
> <   with Unix.Unix_error (Unix.EAFNOSUPPORT, _, _)
> < None
> =

> =

> On Wed, Sep 26, 2012 at 9:15 PM, Mat=EDas Giovannini  =

> <[email protected]>wrote:
> =

> > Hi,
> >
> > I send out in the hopes that, despite the ancient software and  =

> platform
> > I'm having problems with, someone could shed some light on this.  =

> Currently
> > netplex is broken on this machine, failing with errors of the  =

> following
> > sort:
> >
> > fd style: Recv_send_implied
> > fd style: Recv_send_implied
> > Netplex Catastrophic Error: Unable to send log message - exception
> > Rpc_client.Communication_error(File "uq_engines.ml", line 2576,
> > characters 6-12: Assertion failed)
> > Log message is: poll: Exception Rpc_client.Communication_error(File  =

> "
> > uq_engines.ml", line 2576, characters 6-12: Assertion failed)
> > [Wed Sep 26 21:10:39 2012] [netplex.controller] [alert] Disabling  =

> service
> > after 10 startup failures
> >
> > (the "fd_style" line is a strategically placed print statement). I  =

> am at a
> > loss in following uq_engines.ml, so I don't know where to look.
> >
> > I configured ocamlnet with:
> >
> > ./configure -with-nethttpd -enable-zip -disable-tcl -prefer-netcgi2
> > -enable-pcre
> >
> > and the result is:
> >
> > able-tcl -prefer-netcgi2 -enable-pcre
> > Welcome to Ocamlnet version 3.6
> > Checking operating system... Generic
> > Checking for findlib... found
> > Checking multi-threading support... posix (ok)
> > Checking word size... 32 bit
> > Checking endianess... big
> > Checking for GPROF... found
> > Checking for PCRE... found
> > Checking for win32... no
> > Checking whether Ocaml has Printexc.register_printer... found
> > Checking for POSIX pthread... found
> > Checking whether Ocaml has fancy page tables... found
> > Checking for POSIX shared memory... found
> > Checking for POSIX semaphores (anonymous)... not found
> > Checking for POSIX semaphores (named)... found
> > Checking for POSIX spawn... not found
> > Checking for POSIX fadvise... not found
> > Checking for POSIX fallocate... not found
> > Checking for POSIX memalign... not found
> > Checking for syslog... found
> > Checking for POSIX functions like openat... not found
> > Checking for fchdir... found
> > Checking for fdopendir... not found
> > Checking for realpath... not found
> > Checking for grantpt (System V style PTYs)... found
> > Checking for posix_openpt (System V style PTYs)... found
> > Checking for initgroups...found
> > Checking for POSIX clocks...not found
> > Checking for POSIX timers...not found
> > Checking for eventfd (Linux)...not found
> > Checking for timerfd (Linux)...not found
> > Checking for epoll (Linux)...not found
> > Checking for compare_and_swap (GCC)...not found
> > Checking for GPROF... found
> > Checking for O_SHARE_DELETE... yes
> > Checking for getpeereid... found
> > Checking for getpeerucred... not found
> > Checking for camlzip... found
> > Preprocessor for ocamlrpcgen: cpp
> >
> > Effective options:
> >     -enable-pcre
> >     -disable-gtk
> >     -disable-gtk2
> >     -disable-tcl
> >     -disable-ssl
> >     -enable-zip
> >     -disable-crypto
> >     -disable-apache
> >     -with-nethttpd
> >     -without-rpc-auth-dh
> >     -bindir /opt/ocaml/bin
> >     -datadir /opt/ocaml/lib/site-lib/netstring
> >     -cpp cpp
> >
> > uname -a is "Darwin Blue.local 8.11.0 Darwin Kernel Version 8.11.0:  =

> Wed
> > Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power  =

> Macintosh
> > powerpc", ocaml -version is "The OCaml toplevel, version 4.00.0"  =

> and gcc
> > --version gives:
> >
> > powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.  =

> build
> > 5370)
> > Copyright (C) 2005 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.   =

> There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR  =

> PURPOSE.
> >
> > (prehistoric, I know). If anyone has any ideas, I'd be grateful  =

> (except
> > for suggestions to run Linux! ;-)
> >
> > Best regards,
> > Mat=EDas.
> >
> =


------Zitierte Anlage------
> -------------------------------------------------------------------------=
-----
> Got visibility?
> Most devs has no idea what their production app looks like.
> Find out how fast your code is with AppDynamics Lite.
> http://ad.doubleclick.net/clk;262219671;13503038;y?
> http://info.appdynamics.com/FreeJavaPerformanceDownload.html

------Zitierte Anlage------
> _______________________________________________
> Ocamlnet-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ocamlnet-devel
> =




-- =

------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    [email protected]
Creator of GODI and camlcity.org.
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
------------------------------------------------------------
---------------------------------------------------------------------------=
---
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html