English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] segfault in Unix.gethostbyname
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-03-26 (18:22)
From: Kenneth Knowles <kknowles@b...>
Subject: [Caml-list] segfault in Unix.gethostbyname
Hi all,

I get a segfault from Unix.gethostbyname whenever I have wins enabled in my
nsswitch.conf, but with wins removed everything is fine.  I'm hoping someone
with more unix/ocaml-C experience will have a clue.  This was actually working a
week ago, but I had to "flatten and reinstall" my system.

$ grep wins /etc/nsswitch.conf
hosts:       files wins dns 

$ gdb ocamlrun
(gdb) run /usr/local/bin/ocaml unix.cma
Starting program: /usr/local/bin/ocamlrun /usr/local/bin/ocaml unix.cma
        Objective Caml version 3.07+2

# Unix.gethostbyname "dbdev";;

Program received signal SIGSEGV, Segmentation fault.
0x080536c3 in string_set ()
(gdb) bt
#0  0x080536c3 in string_set ()
#1  0x4034b971 in _nss_wins_gethostbyname2_r () from /lib/libnss_wins.so.2
#2  0x403cb42c in bLoaded () from /lib/libnss_wins.so.2
#3  0x4039bb5b in ?? () from /lib/libnss_wins.so.2
#4  0x00000294 in ?? ()

Now I can see it is some kind of string error, and it occurs in the WINS
library, but I'm sure it traces back somehow to the ocaml String_val(..)

On my system, WINS has no other problems (ping, samba sharing, etc):

$ ping dbdev
PING dbdev ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=128 time=28.5 ms
64 bytes from icmp_seq=2 ttl=128 time=28.0 ms

Any ideas what could cause this?  I'm about to dive into the winbind code for
clues but that sounds awful.  It is samba 3.02a (also with samba 2.2.8) and
ocaml 3.07+2


p.s.  This was a pain to track down because it first showed up as a segfault in
my binding to the FreeTDS library and I figured I had just made any of a million
possible mistakes in C.

To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners