[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: gdb shows segfault on reading passwd.db

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2005-03-23 05:15:42 CET

Daniel Kehoe wrote:

> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1024 (LWP 27913)]
> 0x00000000 in __strtol_internal (nptr=0x4041d4a0 "/var/db/passwd.db",
> endptr=0x1, base=16, group=0) at eval.c:35
> 35 eval.c: No such file or directory.
> in eval.c
> (gdb) backtrace
> #0 0x00000000 in __strtol_internal (nptr=0x4041d4a0 "/var/db/passwd.db",
> endptr=0x1, base=16, group=0) at eval.c:35
> #1 0x4039af9e in db_open () from /lib/libnss_db.so.2
> #2 0x4039b050 in internal_setent () from /lib/libnss_db.so.2
> #3 0x40399943 in _nss_db_endpwent () from /lib/libnss_db.so.2
> #4 0x40399d6f in _nss_db_getpwuid_r () from /lib/libnss_db.so.2
> #5 0x402e8d9f in __getpwuid_r (uid=0, resbuf=0xbffff010,
> buffer=0xbfffee10
> "\004\005\006\a\b\t\n\013\f\r\016\017\020\021\022\023\024\025\026\027L?
> \006\b?\205", buflen=512, result=0xbfffee0c)
> at ../nss/getXXbyYY_r.c:200
> #6 0x4019c710 in apr_uid_name_get (username=0xbffff05c, userid=0,
> p=0x8058f78)
> at userinfo.c:117
> #7 0x40089144 in svn_config__user_config_path (config_dir=0x0,
> path_p=0xbffff0a0, fname=0x4009dbc1 "servers", pool=0x8058f78)
> at subversion/libsvn_subr/config_file.c:324

Thanks for the backtrace. Whatever the problem is, it looks like
something wrong with with your system libraries, not Subversion.

Working backwards: Subversion is trying to read your ~/.subversion/
run-time config files -- that's call #7 there. In order to do that, it
  needs to find your username, so it can find the path to your home
directory.

So it calls #6, apr_uid_name_get(), which is supposed to portably return
your username. On unix-y/posix-y systems, that calls getpwuid(), a
standard system call to get user/password information from the system
password database (usually /etc/passwd). In this case, it's
__getpwuid_r(), call #5.

 From there, it's all a mystery. That system call is calling functions
in /lib/libnss_db.so, and I have no idea what that is. Whatever it is,
it looks like it's trying to open a specific password database and
segfaulting.

Honestly, it looks like there's something wrong with your system
libraries. Why would a getpwuid() call *possibly* cause a segfault?
Bad OS install? Bad OS libs? Misconfigured system?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Mar 23 05:18:24 2005

This is an archived mail posted to the Subversion Users mailing list.