NetBSD-Users archive

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

Re: updating direct from 5 to 9?



Thanks again for all the comments/hints.

I have found, and Brad Spencer has replicated, a COMPAT bug.  This note
attempts to restate all useful information so previous ones can be
deleted.

First, I'm talking about:

  i386

  wanting full system operation with new kernel and old userland, such
  as when upgrading a remote machine where the console is not
  accessible, where that means it comes up multiuser, configures the
  network, supports remote login over ssh and can be further upgraded


Given a machine with netbsd-5 kernel and userland:
  6 kernel works
  7 kernel works
  8 kernel ifconfig fails
  9 kernel ifconfig fails

The failure appears to be the same for /sbin/ifconfig and
/rescue/ifconfig, suggesting that the problem is that the kernel doesn't
respond correctly to something, rather than shlib issues.

I ran ktrace of ifconfig(netbsd5) on 7 and on 9.  I append the 9 trace;
the 7 trace has a vast number of lines between the last two lines her.
So it seems something is going wrong with these two sysctls.  I'm
unclear on how they are versioned vs ioctl/etc.

   PID      1 ktrace   EMUL  "netbsd"
   PID      1 ktrace   CALL  execve(0xbfb6ea67,0xbfb6e548,0xbfb6e554)
   PID      1 ktrace   NAMI  "/usr/home/gdt/NETBSD5/./ifconfig"
   PID      1 ifconfig EMUL  "netbsd"
   PID      1 ifconfig RET   execve JUSTRETURN
   PID      1 ifconfig CALL  __sysctl(0xbfb6b514,2,0x87077a0,0xbfb6b51c,0,0)
   PID      1 ifconfig RET   __sysctl 0
   PID      1 ifconfig CALL  __sysctl(0xbfb6ac88,2,0x8700274,0xbfb6ac90,0,0)
   PID      1 ifconfig RET   __sysctl 0
   PID      1 ifconfig CALL  __sysctl(0xbfb6abdc,2,0x870207c,0xbfb6abe4,0,0)
   PID      1 ifconfig RET   __sysctl 0
   PID      1 ifconfig CALL  readlink(0x8464565,0xbfb6ac95,0x400)
   PID      1 ifconfig NAMI  "/etc/malloc.conf"
   PID      1 ifconfig RET   readlink -1 errno 2 No such file or directory
   PID      1 ifconfig CALL  break(0x8800000)
   PID      1 ifconfig RET   break 0
   PID      1 ifconfig CALL  mmap(0,0x100000,PROT_READ|PROT_WRITE,0x14001002<PRIVATE,ANONYMOUS,ALIGN=1MB>,0xffffffff,0,0,0)
   PID      1 ifconfig RET   mmap -1371537408/0xae400000
   PID      1 ifconfig CALL  __sysctl(0xbfb6aab0,6,0,0xbfb6aac8,0,0)
   PID      1 ifconfig RET   __sysctl 0
   PID      1 ifconfig CALL  __sysctl(0xbfb6aab0,6,0xae407800,0xbfb6aac8,0,0)
   PID      1 ifconfig RET   __sysctl 0
   PID      1 ifconfig CALL  exit(0)

Probably nobody wants to fix this.

So I upgraded my test clone to 7, and then the real system to 7, with no
issues.

The next step was to test the 8 and 9 kernels with 7 userland.
Both were ok.


Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index