Date: Fri, 10 Apr 2015 14:18:09 -0700 From: Mark Millard <markmi@dsl-only.net> To: Nathan Whitehorn <nwhitehorn@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: FYI: Some problems with powerpc (non-64) 11.0-CURRENT -r280867: sendmail stack corruption; PRNG not seeded Message-ID: <85C392FA-7B2F-4924-9FF3-FBFF9FDCA614@dsl-only.net> In-Reply-To: <3C815370-6DAF-42C7-9CC5-2334F07C9E60@dsl-only.net> References: <3C815370-6DAF-42C7-9CC5-2334F07C9E60@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Updating to -r281236 with Justin Hibbits=E2=80=99 -r281243 applied (3 = *setjmp.S files updated) fixed both of the following powerpc (non-64) = 11.0-CURRENT problems that I=E2=80=99d FYI'd earlier: A) /usr/libexec/sendmail/sendmail crashing B) "PRNG is not seeded=E2=80=9D status for sshd. Side note: 11.0-CURRENT=E2=80=99s modern powerpc (non-64) is still limited to = (PowerMac) G4=E2=80=99s for my context. The iMac G3 and the PowerMac G5 = boot behaviors are essentially unchanged. ( = https://lists.freebsd.org/pipermail/freebsd-ppc/2015-March/007563.html ) =3D=3D=3D Mark Millard markmi at dsl-only.net Just for reference... On 2015-Apr-6, at 06:39 AM, Mark Millard <markmi at dsl-only.net> wrote: In my exploring of FreeBSD 11.0-CURRENT on PowerMac's I've noted before = that modern vintages of the powerpc (non-64) do not boot the G5's or the = iMac 3 that I have access to but do boot the G4s that historically = worked. But I've noticed a couple of things that are note working right for the = G4's. I do not know what to attribute them to, unfortunately. Still for = (A) below I've got the evidence about where the segmentation fault is = happening in sendmail. I report on -r280867 specifically just because I've used it a lot more = than somewhat older variants that I'd built before. I doubt that the = issues are unique to -r280867. A) /usr/libexec/sendmail/sendmail is leaving .core files in /var/crash/ = periodically. (Details later below.) B) The attempt to start sshd before login reports that "PRNG is not = seeded". (Details later below.) Basic context: > # freebsd-version -ku; uname -apKU > 11.0-CURRENT > 11.0-CURRENT > FreeBSD FBSDG3C0 11.0-CURRENT FreeBSD 11.0-CURRENT #8 r280867M: Mon = Apr 6 02:12:28 PDT 2015 = root@FBSDG5S1:/usr/obj/powerpc.powerpc/usr/srcC/sys/GENERICvtsc-NODEBUG = powerpc powerpc 1100067 1100067 (A few files have to have more recent versions in order to build what is = generally -r280867.) This is a gcc 4.2.1 based build. A) /usr/libexec/sendmail/sendmail is leaving .core files in /var/crash/ = periodically (segmentation fault). (I only have the automatic/default sendmail activity: I never turned it = off but do not use it on the PowerMac's.) As I understand the following: It gets the segmentation fault from r29=3D0= during the code sequence for checking the stack (so the bl to = __stack_chk_fail@plt is not reached). > # gdb /usr/libexec/sendmail/sendmail /var/crash/sendmail.728.core > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and = you are > welcome to change it and/or distribute copies of it under certain = conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for = details. > This GDB was configured as "powerpc-marcel-freebsd"... > Core was generated by `sendmail'. > Program terminated with signal 11, Segmentation fault. > Reading symbols from /lib/libutil.so.9...Reading symbols from = /usr/lib/debug//lib/libutil.so.9.debug...done. > done. > Loaded symbols for /lib/libutil.so.9 > Reading symbols from /usr/lib/libwrap.so.6...Reading symbols from = /usr/lib/debug//usr/lib/libwrap.so.6.debug...done. > done. > Loaded symbols for /usr/lib/libwrap.so.6 > Reading symbols from /usr/lib/libssl.so.7...Reading symbols from = /usr/lib/debug//usr/lib/libssl.so.7.debug...done. > done. > Loaded symbols for /usr/lib/libssl.so.7 > Reading symbols from /lib/libcrypto.so.7...Reading symbols from = /usr/lib/debug//lib/libcrypto.so.7.debug...done. > done. > Loaded symbols for /lib/libcrypto.so.7 > Reading symbols from /lib/libgcc_s.so.1...Reading symbols from = /usr/lib/debug//lib/libgcc_s.so.1.debug...done. > done. > Loaded symbols for /lib/libgcc_s.so.1 > Reading symbols from /lib/libc.so.7...Reading symbols from = /usr/lib/debug//lib/libc.so.7.debug...done. > done. > Loaded symbols for /lib/libc.so.7 > Reading symbols from /libexec/ld-elf.so.1...Reading symbols from = /usr/lib/debug//libexec/ld-elf.so.1.debug...done. > done. > Loaded symbols for /libexec/ld-elf.so.1 > (gdb) bt > #0 0x4191cac0 in hosts_ctl (daemon=3D<value optimized out>, = name=3D<value optimized out>, addr=3D<value optimized out>, user=3D<value = optimized out>) > at /usr/srcC/lib/libwrap/../../contrib/tcp_wrappers/hosts_ctl.c:38 > #1 0x4191cabc in hosts_ctl (daemon=3D<value optimized out>, = name=3D<value optimized out>, addr=3D<value optimized out>, user=3D<value = optimized out>) > at /usr/srcC/lib/libwrap/../../contrib/tcp_wrappers/hosts_ctl.c:32 > #2 0x018322f8 in main (argc=3D6, argv=3D0x6f776e00, envp=3D<value = optimized out>) at = /usr/srcC/usr.sbin/sendmail/../../contrib/sendmail/src/main.c:2649 > #3 0x01804a24 in _start () > #4 0x418c0fa0 in .text () at = /usr/srcC/libexec/rtld-elf/powerpc/rtld_start.S:112 > (gdb) x/64i 0x4191ca40 > 0x4191ca40 <percent_m+284>: lwz r0,0(r3) > 0x4191ca44 <percent_m+288>: mr r3,r29 > 0x4191ca48 <percent_m+292>: rlwinm r0,r0,2,0,29 > 0x4191ca4c <percent_m+296>: lwzx r4,r25,r0 > 0x4191ca50 <percent_m+300>: bl 0x41931890 <strcpy@plt> > 0x4191ca54 <percent_m+304>: b 0x4191ca10 <percent_m+236> > 0x4191ca58 <hosts_ctl>: stwu r1,-864(r1) > 0x4191ca5c <hosts_ctl+4>: mflr r0 > 0x4191ca60 <hosts_ctl+8>: bl 0x41931594 <.got+548> > 0x4191ca64 <hosts_ctl+12>: mr r9,r5 > 0x4191ca68 <hosts_ctl+16>: stw r30,856(r1) > 0x4191ca6c <hosts_ctl+20>: mflr r30 > 0x4191ca70 <hosts_ctl+24>: stw r6,8(r1) > 0x4191ca74 <hosts_ctl+28>: mr r7,r4 > 0x4191ca78 <hosts_ctl+32>: stw r29,852(r1) > 0x4191ca7c <hosts_ctl+36>: mr r5,r3 > 0x4191ca80 <hosts_ctl+40>: stw r0,868(r1) > 0x4191ca84 <hosts_ctl+44>: li r4,2 > 0x4191ca88 <hosts_ctl+48>: lwz r29,-36(r30) > 0x4191ca8c <hosts_ctl+52>: li r6,4 > 0x4191ca90 <hosts_ctl+56>: li r8,5 > 0x4191ca94 <hosts_ctl+60>: li r10,3 > 0x4191ca98 <hosts_ctl+64>: lwz r0,0(r29) > 0x4191ca9c <hosts_ctl+68>: stw r0,844(r1) > 0x4191caa0 <hosts_ctl+72>: li r0,0 > 0x4191caa4 <hosts_ctl+76>: addi r3,r1,16 > 0x4191caa8 <hosts_ctl+80>: stw r0,12(r1) > 0x4191caac <hosts_ctl+84>: crclr 4*cr1+eq > 0x4191cab0 <hosts_ctl+88>: bl 0x41931870 <request_init@plt> > 0x4191cab4 <hosts_ctl+92>: crclr 4*cr1+eq > 0x4191cab8 <hosts_ctl+96>: bl 0x419317b0 <hosts_access@plt> > 0x4191cabc <hosts_ctl+100>: lwz r0,844(r1) > 0x4191cac0 <hosts_ctl+104>: lwz r9,0(r29) > 0x4191cac4 <hosts_ctl+108>: xor. r0,r0,r9 > 0x4191cac8 <hosts_ctl+112>: li r9,0 > 0x4191cacc <hosts_ctl+116>: bne- 0x4191cae8 <hosts_ctl+144> > 0x4191cad0 <hosts_ctl+120>: lwz r0,868(r1) > 0x4191cad4 <hosts_ctl+124>: lwz r29,852(r1) > 0x4191cad8 <hosts_ctl+128>: lwz r30,856(r1) > 0x4191cadc <hosts_ctl+132>: mtlr r0 > 0x4191cae0 <hosts_ctl+136>: addi r1,r1,864 > 0x4191cae4 <hosts_ctl+140>: blr > 0x4191cae8 <hosts_ctl+144>: bl 0x41931810 = <__stack_chk_fail@plt> > 0x4191caec <fix_options>: stwu r1,-896(r1) > 0x4191caf0 <fix_options+4>: mflr r0 > 0x4191caf4 <fix_options+8>: bl 0x41931594 <.got+548> > 0x4191caf8 <fix_options+12>: li r9,128 > 0x4191cafc <fix_options+16>: stw r30,888(r1) > 0x4191cb00 <fix_options+20>: mflr r30 > 0x4191cb04 <fix_options+24>: stw r0,900(r1) > 0x4191cb08 <fix_options+28>: addi r4,r1,712 > 0x4191cb0c <fix_options+32>: stw r25,868(r1) > 0x4191cb10 <fix_options+36>: addi r5,r1,20 > 0x4191cb14 <fix_options+40>: stw r27,876(r1) > 0x4191cb18 <fix_options+44>: lwz r25,-36(r30) > 0x4191cb1c <fix_options+48>: lwz r27,0(r3) > 0x4191cb20 <fix_options+52>: stw r28,880(r1) > 0x4191cb24 <fix_options+56>: lwz r0,0(r25) > 0x4191cb28 <fix_options+60>: stw r0,844(r1) > 0x4191cb2c <fix_options+64>: li r0,0 > 0x4191cb30 <fix_options+68>: mr r28,r3 > 0x4191cb34 <fix_options+72>: stw r23,860(r1) > (gdb) info registers > r0 0xb3a7e38 188382776 > r1 0xffffbb40 -17600 > r2 0x418e4708 1099843336 > r3 0x1 1 > r4 0x41932264 1100161636 > r5 0x0 0 > r6 0x1 1 > r7 0x61 97 > r8 0x0 0 > r9 0x418e4708 1099843336 > r10 0xffffbb20 -17632 > r11 0x4191ed60 1100082528 > r12 0x44000048 1140850760 > r13 0x0 0 > r14 0x6 6 > r15 0x0 0 > r16 0x0 0 > r17 0x1 1 > r18 0x0 0 > r19 0x0 0 > r20 0x18c703c 25980988 > r21 0xffffffff -1 > r22 0x18f2984 26159492 > r23 0x0 0 > r24 0x0 0 > r25 0x1 1 > r26 0x1896608 25781768 > r27 0x0 0 > r28 0x0 0 > r29 0x0 0 > r30 0x41931598 1100158360 > r31 0x0 0 > pc 0x4191cac0 1100073664 > ps 0x0 0 > cr 0x44000048 1140850760 > lr 0x4191cabc 1100073660 > ctr 0x41bd1ad0 1102912208 > xer 0x20000000 536870912 > fpscr 0x0 0 > vscr 0x0 0 > vrsave 0x0 0 My powerpc64 -r280867 build does not have this problem. (But it is a = powerpc64-xtoolchain-gcc based build. I should probably also build and = keep a normal gcc 4.2.1 one at some point.) I listed the above issue first because I had far more detailed/specific = evidence than the below. B) The attempt to start sshd before login reports: > Performing sanity check on sshd configuration. > PRNG is not seeded > /etc/rc: WARNING: failed precmd routine for sshd A "sshd -T" or other such command also reports "PRNG is not seeded". Looking at sysctl output... > kern.random.harvest.mask_symbolic: = UMA_ALLOC,SWI,INTERRUPT,NET_NG,NET_ETHER,NET_TUN,MOUSE,KEYBOARD,ATTACH,CAC= HED > kern.random.harvest.mask_bin: 1111111111 > kern.random.harvest.mask: 1023 > kern.random.yarrow.slowoverthresh: 2 > kern.random.yarrow.slowthresh: 128 > kern.random.yarrow.fastthresh: 96 > kern.random.yarrow.bins: 10 > kern.random.yarrow.gengateinterval: 10 > kern.random.live_entropy_sources:=20 > kern.random.active_adaptor: yarrow > kern.random.adaptors: yarrow(90),dummy(1) does not seem odd to me for 11.0-CURRENT or in comparison to my = powerpc64 build's output. As for what all is non-default for my configuration files (not much)... My use of networking is minimal and the configuration changes for that = are limited to rc.conf: > # more /etc/rc.conf > hostname=3D"FBSDG5C0" > ifconfig_bge0=3D"DHCP" > ifconfig_bge0_ipv6=3D"inet6 accept_rtadv" > ifconfig_gem0=3D"DHCP" > ifconfig_gem0_ipv6=3D"inet6 accept_rtadv" > sshd_enable=3D"YES" > #ntpd_enable=3D"YES" > #ntpd_sync_on_start=3D"YES" > # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable > dumpdev=3D"AUTO" > hald_enable=3D"YES" > dbus_enable=3D"YES" I also fiddle with /boot/loader.conf, /etc/fstab, /etc/make.conf, and = /etc/src.conf primarily. /etc/sysctl.conf for dump issues. = /usr/local/etc/sudoers . The rest of the configuration files are at the default/installation = status. My powerpc64 -r280867 build does not have this issue. (But it is a = powerpc64-xtoolchain-gcc based build.) Context details: # svnlite st /usr/srcC/ --no-ignore ? /usr/srcC/.snap ? /usr/srcC/restoresymtable M /usr/srcC/sys/ddb/db_main.c M /usr/srcC/sys/ddb/db_script.c ? /usr/srcC/sys/powerpc/conf/GENERIC64vtsc ? /usr/srcC/sys/powerpc/conf/GENERIC64vtsc-NODEBUG ? /usr/srcC/sys/powerpc/conf/GENERICvtsc ? /usr/srcC/sys/powerpc/conf/GENERICvtsc-NODEBUG M /usr/srcC/sys/powerpc/ofw/ofw_machdep.c M /usr/srcC/sys/powerpc/ofw/ofwcall64.S These are long standing changes associated with my finding a way for = PowerMac G5's to boot reliably (ofw_machdep.c) and getting some evidence = from early boot crashes in case they happen. Also the GENERIC*'s disable = ps3 in order to enable both vt and sc. They do include the standard = GENERIC*'s. Used for building the plain powerpc 11.0-CURRENT -r280867 variant that = produced the backtrace above: # more /etc/src.conf=20 #CFLAGS+=3D-DELF_VERBOSE WITH_DEBUG=3D WITH_DEBUG_FILES=3D # more /etc/make.conf=20 WRKDIRPREFIX=3D/usr/obj/portswork #WITH_DEBUG=3D #MALLOC_PRODUCTION=3D =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?85C392FA-7B2F-4924-9FF3-FBFF9FDCA614>