Re: 1.12.5 pserver core dump pid-11993

Mark <[email protected]>
Newsgroups gmane.comp.version-control.cvs.general,gmane.comp.version-control.cvs.bugs
Message-ID <[email protected]>
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

--- 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 "")
> >    do_cvs_command(cmd_name = 0x1a6998 "commit", command =
> > 0x56550
> > = &commit(int argc, char **argv))
> >    commit(argc = 1, argv = 0x1b2cb0)
> >    lock_tree_promotably(argc = 1, argv = 0x1b2cb0, local = 0,
> > which = 1, aflag = 0)
> >    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
> > Reading ld.so.1
> > Reading libxnet.so.1
> > Reading libnsl.so.1
> > Reading libc.so.1
> > Reading libdl.so.1
> > Reading libmp.so.2
> > Reading libc_psr.so.1
> > Reading libsocket.so.1
> > Reading nss_files.so.1
> > Reading nss_nisplus.so.1
> > Reading libdoor.so.1
> > 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
> >     {
> >         struct stat sb;
> >         mode_t new_mode = 0;
> > 
> >         /* The interesting part of the repository is the part
> > relative
> >            to CVSROOT.  */
> >         assert (current_parsed_root != NULL);
> >         assert (current_parsed_root->directory != NULL);
> >         assert (strncmp (repository,
> > current_parsed_root->directory,
> >                          strlen
> > (current_parsed_root->directory))
> > == 0);
> >         short_repos = repository + strlen
> > (current_parsed_root->directory) + 1;
> > 
> >         if (strcmp (repository,
> current_parsed_root->directory)
> > ==
> > 0)
> >             short_repos = ".";
> > 
> > 
> > 
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
> > http://hotjobs.sweepstakes.yahoo.com/signingbonus
> > 
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
> http://hotjobs.sweepstakes.yahoo.com/signingbonus


__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus
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.