Skip to content

Stack overflow on FreeBSD #100

@oscarcarlsson

Description

@oscarcarlsson

Hi,

I'm using dma on a FreeBSD 13 machine with a smarthost (smtp.migadu.com), but dma crashes with a stack overflow after consuming 100% cpu for a few minutes. I've seen this on two machines, on older releases of FreeBSD as well.

I've tried both with the dma in the base system, and installing the latest dma from pkg. I'm not too familiar with how this is really used, but I can reproduce the issue like this (or by just trying to use mail):

echo "test!" |/usr/local/libexec/dma -D -r 'test@prutt.party' 'oscar@prutt.party'

If I try to press ctrl-t in FreeBSD when running the above, I get some minor useful data:

# Removed a bunch of these: load: 1.82  cmd: dma 91917 [running] 230.39r 58.55u 111.70s 100% 5884k
mac_socket_check_receive+0x7a soo_read+0x19 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
amd64_syscall+0x10c fast_syscall_common+0xf8 
soreceive_generic+0xe7 soreceive+0x44 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
soreceive_generic+0xe7 soreceive+0x44 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
soo_read+0x19 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
soreceive_generic+0xe7 soreceive+0x44 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
soreceive_generic+0xe7 soreceive+0x44 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
sys_read+0x99 amd64_syscall+0x10c fast_syscall_common+0xf8 
soreceive_generic+0xe7 soreceive+0x44 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 
dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c fast_syscall_common+0xf8 

Any ideas?

This is a typical case, from /var/log/maillog:

Jun 30 13:13:50 hilda dma[181e2][60585]: new mail from user=root uid=26 envelope_from=<root@hilda>
Jun 30 13:13:50 hilda dma[181e2][60585]: mail to=<oscar@prutt.party> queued as 181e2.800e48050
Jun 30 13:13:50 hilda dma[181e2.800e48050][61054]: <oscar@prutt.party> trying delivery
Jun 30 13:13:50 hilda dma[181e2.800e48050][61054]: using smarthost (smtp.migadu.com:465)
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: trying remote delivery to smtp.migadu.com [2001:41d0:2:863f::] pref 0
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: connect to smtp.migadu.com [2001:41d0:2:863f::] failed: No route to host
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: trying remote delivery to smtp.migadu.com [2001:41d0:2:aacc::] pref 0
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: connect to smtp.migadu.com [2001:41d0:2:aacc::] failed: No route to host
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: trying remote delivery to smtp.migadu.com [2001:41d0:2:267::] pref 0
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: connect to smtp.migadu.com [2001:41d0:2:267::] failed: No route to host
Jun 30 13:13:51 hilda dma[181e2.800e48050][61054]: trying remote delivery to smtp.migadu.com [94.23.1.103] pref 0
# snip
Jun 30 13:18:51 hilda dma[181e2.800e48050][61054]: stack overflow detected; terminated

Here's my /etc/dma/dma.conf:

SMARTHOST smtp.migadu.com
PORT 465
AUTHPATH /etc/dma/auth.conf
SECURETRANSFER
STARTTLS

My /etc/dma/auth.conf looks valid, user@domain.tld|smtp.migadu.com:password.

My /usr/local/etc/mail/mailer.conf looks like this, currently configured for the dma from pkg:

sendmail      /usr/local/libexec/dma
mailq         /usr/local/libexec/dma
newaliases    /usr/local/libexec/dma
rmail         /usr/local/libexec/dma

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions