Current-Users archive

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

Re: mail/sendmail not relaying on netbsd-9/sparc, problem with OpenSSL update?

On Tue, 6 Apr 2021, John Nemeth wrote:

>      What happens if you do 'sudo sendmail -odi -q -v'.

Finally had a chance to check this.  With OpenSSL 1.1.1k as pulled up
to netbsd-9, I see the following:

$ sudo sendmail -odi -v -q       

Running /var/spool/mqueue/137FSpnA000465 (sequence 1 of 1)
<>... Connecting to port 587 via relay...
220 ESMTP Sendmail 8.14.9 ready at Wed, 7 Apr 2021 15:30:05 +0000
>>> EHLO <local FQDN> Hello <public FQDN> [<public IP addr>], pleased to meet you
250-SIZE 52428800
250-AUTH <mechanism>
250 HELP
220 Ready to start TLS
Illegal instruction 

With OpenSSL rolled back to before the pullup, there is no "Illegal
instruction" message and it proceeds to relay the mail.

'ktrace' the program getting SIGILL, but wasn't otherwise helpful.

Running under 'gdb' showed:

(gdb) run -odi -v -q
Starting program: /usr/sbin/sendmail -odi -v -q
process 867 is executing new program: /usr/pkg/libexec/sendmail/sendmail

Program received signal SIGILL, Illegal instruction.
0xedd6d40c in _sparcv9_vis1_probe () from /usr/lib/
(gdb) bt
#0  0xedd6d40c in _sparcv9_vis1_probe () from /usr/lib/
#1  0xedd173e8 in OPENSSL_cpuid_setup ()
    at /x/netbsd-9/src/crypto/external/bsd/openssl/dist/crypto/sparcv9cap.c:239
#2  0xedc2ef48 in _init () from /usr/lib/
#3  0xeded45d8 in _rtld_call_function_void (obj=0xedefdc00, 
    addr=<optimized out>) at /x/netbsd-9/src/libexec/ld.elf_so/rtld.h:490
#4  _rtld_call_initfini_function (obj=<optimized out>, mask=<optimized out>, 
    func=<optimized out>) at /x/netbsd-9/src/libexec/ld.elf_so/rtld.c:143
#5  _rtld_call_init_function (cur_objgen=1, mask=0xeffff8c0, obj=0xedefdc00)
    at /x/netbsd-9/src/libexec/ld.elf_so/rtld.c:242
#6  _rtld_call_init_functions (mask=mask@entry=0xeffff8c0)
    at /x/netbsd-9/src/libexec/ld.elf_so/rtld.c:327
#7  0xeded4f2c in _rtld (sp=<optimized out>, relocbase=<optimized out>)
    at /x/netbsd-9/src/libexec/ld.elf_so/rtld.c:782
#8  0xeded0e20 in _rtld_start () from /usr/libexec/ld.elf_so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

I can't 'list' the address in frame #0.  The 'gdb' prompt simply
returns immediately.  I can list the address in frame #1:

(gdb) list *0xedd173e8
0xedd173e8 is in OPENSSL_cpuid_setup (/x/netbsd-9/src/crypto/external/bsd/openssl/dist/crypto/sparcv9cap.c:240).
235             OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED;
236         }
238         if (sigsetjmp(common_jmp, 1) == 0) {
239             _sparcv9_vis1_probe();
240             OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK;
241             /* detect UltraSPARC-Tx, see sparccpud.S for details... */
242             if (_sparcv9_vis1_instrument() >= 12)
243                 OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU);
244             else {

I can arrange to boot -current on this machine and see how it behaves.

>      Also are you using host status?

I guess not, since I don't know what that is.

|/"\ John D. Baker, KN5UKS               NetBSD     Darwin/MacOS X
|\ / jdbaker[snail]consolidated[flyspeck]net  OpenBSD            FreeBSD
| X  No HTML/proprietary data in email.   BSD just sits there and works!
|/ \ GPGkeyID:  D703 4A7E 479F 63F8 D3F4  BD99 9572 8F23 E4AD 1645

Home | Main Index | Thread Index | Old Index