[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: openldap on alpha



"Christopher C. Chimelis" <chris@debian.org> writes:

> On Thu, 8 Jun 2000 dan@mid-hudson.com wrote:
> 
> > I've installed openldap 1.2.10 on my alpha ds-10s and it seems to run, but
> > every time I query it, it logs a few messages:
> > 
> > slapd(5341): unaligned trap at 0000000120038d6c: 000003ffffbffc04 2d 2
> > slapd(5341): unaligned trap at 0000000120038d6c: 000003ffffbffc0c 2d 2
> > 
> > Everything seems to function, but I plan on using the database for a
> > number of things, so a few lines of errors on each query is going to be a
> > mess.  Any suggestions or pointers?
> 
> Ok...first off, their not errors, but rather warnings that some memory
> accesses are being performed on data that's not perfectly aligned on the
> proper boundaries.  I'll see if I can figure out what's going on, but if

Worse than that, this is also a memory corruption bug (see #63185).
BenC: should I raise the severity to Important?

> you're handy with gdb, you can probably figure it out as well and point me
> in the right direction :-)

Don't bother tracking this, as I've already submitted a patch.  In the
future, the attached program (which gives you a shell from which any
programs you run will die with SIGBUS immediately on unaligned traps)
should prove useful.  (that is, if Gnus decides not to eat the
attachment :P)

/****
 From: "Christian Groessler" <cpg@aladdin.de>
 To: axp-list@redhat.com
 Date: Thu, 19 Aug 1999 10:52:55 +0100
 Subject: Re: Unaligned traps et al


 The following program creates a subshell and all programs
 started from therein will SIGBUS on unaligned accesses.
***/
/* 28-May-98, chris */


#ifndef __linux__
#include <sys/sysinfo.h>
#else
#include <asm/sysinfo.h>
#include <asm/unistd.h>

static int setsysinfo(unsigned long op, void *buffer, unsigned long size,
                      int *start, void *arg, unsigned long flag)
{
  syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
}
#endif

void trap_unaligned(void)
{
  unsigned int buf[2];
  buf[0] = SSIN_UACPROC;
  buf[1] = UAC_SIGBUS | UAC_NOPRINT;
  setsysinfo(SSI_NVPAIRS, buf, 1, 0, 0, 0);
}

#include <stdio.h>

int main()
{
  trap_unaligned();
  printf("creating subshell with SIGBUS setting!\n");
  execl("/bin/bash","/bin/bash",(char *)0);
  return(0); /* not reached */
}
-- 
David Huggins-Daines - dhd@debian.org

Reply to: