Re: 1.12.5 pserver core dump pid-11993

Todd Denniston <[email protected]>
Newsgroups gmane.comp.version-control.cvs.general,gmane.comp.version-control.cvs.bugs
Organization Code 6067, NSWC Crane
Message-ID <[email protected]>
Yep, your getting through. But it is a fun question you ask. 8)

Mark wrote:
> 
> I have tested this. It is repeatable on solaris 2.8. I setup two
> workareas from the same repo/module and commited at the same time,
> one proceeded one got the waiting on lock. Once the one waiting on
> lock gets the lock, it core dumps.
> 
> Please take a look at this. Our integration with another tool
> fails and the integration process is left in a uncertain state of
> reliability.
> 
> cvs 1.12.5 non-root pserver, solaris 2.8, compiled with workshop
> 6.1, MMAP commented out in config.h
> 
> Thanks,
> 
> Mark

>From the debuger output showing the death at a (x)malloc, I think we may be
back to Larry's call that you may be running out of virtual memory.

you might try your test and with both machines (assuming client is a different
machine) run something like

while true;do df -h /tmp ;sleep 1;done

while at the same time running your test. If the machine drops to very little
space that is probably the problem.

BTW, How big is 
CE-cqtool.lock
/tmp on your server
the free space on /tmp on your server
ram on your server
free ram on your server
/cvsroot/baseline/
the free space on /cvsroot/baseline/
the free space in the directory where you are doing the checkout.



> 
> --- Mark <[email protected]> wrote:
> >
> > I have 4 other core files that trace back to the same line of
> > code, 2 others can confirm happen during a commit that is
> > waiting
> > on a lock, to commit one file. No locks needed cleaning up......
> >
> > Mark
> >
> > --- Mark <[email protected]> wrote:
> > >
> > > cvs 1.12.5 non-root pserver, solaris 2.8, workshop 6.1
> > >
> > > We had a pserver core dump during a commit. The command and
> > core
> > > trace output is below.
> > >
> > > Thanks,
> > >
> > > Mark
> > >
> > >
> > ================================================================
> > >
> > > > cvs commit -m "datarepolockhelp commit" CE-cqtool.lock
> > > cvs commit: [18:13:07] waiting for cvspserv's lock in
> > > /cvsroot/baseline/CarApp
> > > Terminated with fatal signal 11
> > > Core dumped; preserving /cvstmp/pserver/cvs-serv11993 on
> > server.
> > > CVS locks may need cleaning up.
> > >
> > >
> >
> =============================================================================
> > >
> >
> =============================================================================
> > > Workshop Stack Trace: (line with arrow marked below)
> > >
> >
> =============================================================================
> > >
> >
> =============================================================================
> > >    main(argc = 1, argv = 0xffbef360)
> > >    server(argc = 1, argv = 0xffbef360)
> > >    serve_ci(arg = 0x1bb3ca "")
<SNIP>
> > >    Promotable_Lock(list = 0x1e2008)
> > >    walklist(list = 0x1e2008, proc = 0x76de8 =
> > > &`cvs`lock.c`set_promotablelock_proc(Node *p, void *closure),
> > >  closure = (nil))
> > >    set_promotablelock_proc(p = 0x1b2e80, closure = (nil))
> > >    promotable_lock(lock = 0x1b87a8)
> > >    set_lock(lock = 0x1b87a8, will_wait = 0)
> > > (ARROW==>)  lock_name(repository = (nil), name = 0x1740f8
> > > "#cvs.lock")
> > >    strlen(0x0, 0x0, 0x0, 0x7efefeff, 0x81010100, 0xff1c2ac4)
> =============================================================================
> =============================================================================
> > > Workshop dbx commands
> > >
> >
> =============================================================================
> > >
> >
> =============================================================================
> > > (dbx) debug cvs /tmp/core
> > > Reading cvs
> > > core file header read successfully
<SNIP>
> > > program terminated by signal SEGV (no mapping at the fault
> > > address)
> > > Current function is lock_name
> > > (dbx)
> > >
> > >
> > >
> >
> =============================================================================
> > >
> >
> =============================================================================
> > > lock.c code section provided by workshop: (line with arrow
> > > marked
> > > below)
> > >
> >
> =============================================================================
> > >
> >
> =============================================================================
> > > static char *
> > > lock_name (const char *repository, const char *name)
> > > {
> > >     char *retval;
> > >     const char *p;
> > >     char *q;
> > >     const char *short_repos;
> > >     mode_t save_umask = 0000;
> > >     int saved_umask = 0;
> > >
> > >     TRACE (TRACE_FLOW, "lock_name (%s, %s)", repository,
> > name);
> > >
> > >     if (lock_dir == NULL)
> > >     {
> > >         /* This is the easy case.  Because the lock files go
> > > directly
> > >            in the repository, no need to create directories or
> > > anything.  */
> > > (ARROW==>)        retval = xmalloc (strlen (repository) +
> > strlen
> > > (name) + 10);
> > >         (void) sprintf (retval, "%s/%s", repository, name);
> > >     }
> > >     else
<SNIP>
-- 
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane) 
Harnessing the Power of Technology for the Warfighter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.